Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Exécuter deux requêtes access en une seule

2 réponses
Avatar
TopJB
Bonjour,

Je voudrais savoir si il existe un moyen en Access d'exécuter deux
requêtes sql à la suite et ce dans une même instruction (Requete).

Je m'explique, j'ai deux requêtes :
- une qui créé une table temporaire (TbTemp) avec des données qui
peuvent varier selon les saisies faites sur la base.
- une qui reprend les données d'un champ de la première afin de mettre
à jour les données d'un champ d'une table (TbTable).

Donc manuellement, j'exécute la première requête (Création de la table
TbTemp) afin de mettre à jour les données de cette table avec les
dernières données saisies.

ensuite je lance ma seconde requête (Mise à jour sur la table TbTable)

Ce que je souhaiterais avoir c'est que lors de l'exécution de la seconde
requête, celle-ci me créé la table TbTemp en exécutant la première
requete. Mais cela à partir du concepteur SQL d'Access. (Je sais le
faire en macro et en code mais cela risque de compliquer un peu
l'utilisation par le client) (N.B.: Car le client dois modifier certains
critères selon ses besoins dans la requête de mise à jour de la table
TbTable)

donc je souhaiterais savoir si je peux avoir un truc dans le concepteur
SQL, qui ressemblerait à cela :

SELECT Champ, Champ FROM TbUN;
SELECT Champ1, Champ2 FROM TbDEUX;

et cela dans une seule requête Access. Ce qui fonctionnerait au
lancement de cette requête unique, de la façon suivante, lancerment de
la requête "SELECT Champ, Champ FROM TbUN;" puis lancement de la requête
"SELECT Champ1, Champ2 FROM TbDEUX;"

Cordialement

TopJB

2 réponses

Avatar
3stone
Salut,

TopJB wrote:
Bonjour,

Je voudrais savoir si il existe un moyen en Access d'exécuter deux
requêtes sql à la suite et ce dans une même instruction (Requete).

Je m'explique, j'ai deux requêtes :
- une qui créé une table temporaire (TbTemp) avec des données qui
peuvent varier selon les saisies faites sur la base.
- une qui reprend les données d'un champ de la première afin de mettre
à jour les données d'un champ d'une table (TbTable).

Donc manuellement, j'exécute la première requête (Création de la table
TbTemp) afin de mettre à jour les données de cette table avec les
dernières données saisies.

ensuite je lance ma seconde requête (Mise à jour sur la table TbTable)

Ce que je souhaiterais avoir c'est que lors de l'exécution de la
seconde requête, celle-ci me créé la table TbTemp en exécutant la
première requete. Mais cela à partir du concepteur SQL d'Access. (Je
sais le faire en macro et en code mais cela risque de compliquer un
peu l'utilisation par le client) (N.B.: Car le client dois modifier
certains critères selon ses besoins dans la requête de mise à jour de
la table TbTable)

donc je souhaiterais savoir si je peux avoir un truc dans le
concepteur SQL, qui ressemblerait à cela :

SELECT Champ, Champ FROM TbUN;
SELECT Champ1, Champ2 FROM TbDEUX;

et cela dans une seule requête Access. Ce qui fonctionnerait au
lancement de cette requête unique, de la façon suivante, lancerment de
la requête "SELECT Champ, Champ FROM TbUN;" puis lancement de la
requête "SELECT Champ1, Champ2 FROM TbDEUX;"



Deux requêtes "Select" peuvent (éventuellement) être réunies
dans une requête "UNION"

Mais, plus haut, tu parles de création de table... ce qui ne se fait
pas avec une requête Select...

Là ou cela devient critique, c'est lorsque tu parles de "client qui
doit modifier certains critères..."

Si client il y a, tu te dois de lui donner une application!...
C'est à dire que le "client" doit travailler dans des formulaires
que tu auras créés pour utiliser la base - sans pour autant
devoir aller tripoter directement dans une requête !!

--
A+
Pierre (3stone) Access MVP
Perso: http://www.3stone.be/
MPFA: http://www.mpfa.info/ (infos générales)
Avatar
TopJB
Salut,

3stone a écrit :
Salut,

TopJB wrote:
Bonjour,

Je voudrais savoir si il existe un moyen en Access d'exécuter deux
requêtes sql à la suite et ce dans une même instruction (Requete).

Je m'explique, j'ai deux requêtes :
- une qui créé une table temporaire (TbTemp) avec des données qui
peuvent varier selon les saisies faites sur la base.
- une qui reprend les données d'un champ de la première afin de mettre
à jour les données d'un champ d'une table (TbTable).

Donc manuellement, j'exécute la première requête (Création de la table
TbTemp) afin de mettre à jour les données de cette table avec les
dernières données saisies.

ensuite je lance ma seconde requête (Mise à jour sur la table TbTable)

Ce que je souhaiterais avoir c'est que lors de l'exécution de la
seconde requête, celle-ci me créé la table TbTemp en exécutant la
première requete. Mais cela à partir du concepteur SQL d'Access. (Je
sais le faire en macro et en code mais cela risque de compliquer un
peu l'utilisation par le client) (N.B.: Car le client dois modifier
certains critères selon ses besoins dans la requête de mise à jour de
la table TbTable)

donc je souhaiterais savoir si je peux avoir un truc dans le
concepteur SQL, qui ressemblerait à cela :

SELECT Champ, Champ FROM TbUN;
SELECT Champ1, Champ2 FROM TbDEUX;

et cela dans une seule requête Access. Ce qui fonctionnerait au
lancement de cette requête unique, de la façon suivante, lancerment de
la requête "SELECT Champ, Champ FROM TbUN;" puis lancement de la
requête "SELECT Champ1, Champ2 FROM TbDEUX;"



Deux requêtes "Select" peuvent (éventuellement) être réunies
dans une requête "UNION"



Ca je le savais mais c'était plus un exemple que autre chose. C'était
pour ne pas mettre mes deux requêtes qui sont assez importantes et juste
pour visualiser un peu plus la chose.

De plus je ne veux pas avoir deux résultats "concaténées" ou "liées",
mais plus une suite d'exécution mais avec une structure du genre

[Requête 1]
["UN TRUC"](ex : "UNION","EXEC"(je sais pas si ca existe)) ou autres
choses permettant le lancement de la seconde requête une fois que la
première à fini.
[Requête 2]

Et ce dans le concepteur SQL de ACCESS

Mais, plus haut, tu parles de création de table... ce qui ne se fait
pas avec une requête Select...


Je ne passe pas par du code pour la creation de la table mais Access ne
me donne dans le générateur SQL qu'une requête "SELECT" mais dans le
menu j'ai indiqué que la requête était une requête de création de table.


Là ou cela devient critique, c'est lorsque tu parles de "client qui
doit modifier certains critères..."

Si client il y a, tu te dois de lui donner une application!...
C'est à dire que le "client" doit travailler dans des formulaires
que tu auras créés pour utiliser la base - sans pour autant
devoir aller tripoter directement dans une requête !!



Oui, je me suis mal exprimé en utilisant le mot "client". C'est bien un
client mais c'est particulier, car cette personne connait Access et créé
ses propres bases mais qu'en utilisant l'assistant. Dès que cela
devient un peu plus difficile à gérer, il me demande de faire les
modifications.

C'est à la fois un utilisateur final et un développeur, car c'est lui
qui gère les bases Access, pour le paramétrage pour les autres
utilisateurs finaux qui eux n'utilisent que les formulaires. Mais il a
besoin aussi de sortir des chiffres ou de faire des intégrations de
fichiers dans certaines bases donc il devient à ce moment là utilisateur
final des bases.

La requête en question ne sert peut être que 5 à 6 fois l'an donc aucune
utilité d'aller monter un formulaire pour avoir des stats les données
saisies. De plus, je ne connais pas vraiment le résultat final qui
souhaitent avoir (Quelles années, quelles catégories, ...) donc lui
comme il connait Access un mimimun (mais pas la partie code VBA), il
souhaite pouvoir modifier les requêtes à sa guise afin de sortir les
chiffres voulus.

J'espère que tu as un peu plus compris, je sais bien que ce
fonctionnement n'est pas conventionnel, mais il est comme ca je lui
donne même parfois des modification à faire dans les bases car je ne
peux pas accèder aux bases de production et si il faut mettre une ligne
en commentaire, c'est plus facile de lui demander (en lui indiquant ce
qu'il doit modifier exactement) de faire la modification directement en
production, que d'envoyer l'objet corriger et de risquer d'avoir d'autre
bug car lui entre temps auras modifier un autre truc que moi je n'aurais
pas pris en compte et qui serait supprimer par la mise en place de
l'objet que je livre.

Au final, je me suis dépêtrer du problème en lui expliquant le
fonctionnement ce qu'il à l'air d'avoir compris et le résultat lui
convient. Ce qui est à mon avis le principal.