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

Lancer une requête avec condition en VBA ?

6 réponses
Avatar
Gillou
Bonjour,
J'ai une requête que je dois lancer en VBA dans deux situations différentes.
La 1ère je dois la lancer avec une condition C1, et la 2ème une condition
différente C2.

Je ne peux donc pas spécifier la condition "en dur" dans la ligne
correspondante de la requête en mode création, il faut que je spécifie celle
que je veux utiliser (entre C1 et C2) lors de l'appel de la requête.

Or la fonction docmd.openquery ne prend comme arguments que le nom de la
requête, l'affichage et le mode de données. Nulle part on ne peut spécifier
de condition :-(

Comment puis-je faire ?

Merci d'avance

6 réponses

Avatar
ST
Une boite de dialogue du type InputBox qui te demande de choisir la
condition.

ST


"Gillou" a écrit dans le message de
news:
Bonjour,
J'ai une requête que je dois lancer en VBA dans deux situations
différentes.

La 1ère je dois la lancer avec une condition C1, et la 2ème une condition
différente C2.

Je ne peux donc pas spécifier la condition "en dur" dans la ligne
correspondante de la requête en mode création, il faut que je spécifie
celle

que je veux utiliser (entre C1 et C2) lors de l'appel de la requête.

Or la fonction docmd.openquery ne prend comme arguments que le nom de la
requête, l'affichage et le mode de données. Nulle part on ne peut
spécifier

de condition :-(

Comment puis-je faire ?

Merci d'avance


Avatar
Gillou

Une boite de dialogue du type InputBox qui te demande de choisir la
condition.


Salut
Merci de ta réponse mais le déroulement doit être transparent pour
l'utilisateur, ce n'est pas à lui de choisir la condition. Une boite de
dialogue est donc à proscrire, de même que tout ce qui demande une
intervention de la part de l'utilisateur... :-S

Avatar
ST
Comment veux tu ne pas solliciter l'utilisateur si tu me dis ne pas pouvoir
spécifier la condition en dur.

Quelles sont les conditions à vérifier ? Je pense qu'il est possible de les
coder en VB.

ST

"Gillou" a écrit dans le message de
news:

Une boite de dialogue du type InputBox qui te demande de choisir la
condition.


Salut
Merci de ta réponse mais le déroulement doit être transparent pour
l'utilisateur, ce n'est pas à lui de choisir la condition. Une boite de
dialogue est donc à proscrire, de même que tout ce qui demande une
intervention de la part de l'utilisateur... :-S



Avatar
Eric
Bonjour Gillou,

Une idée ?
Ecrire en vba : le sql des requêtes avec leur propre condition,
créer la requête, la faire exécuter sur l'évènement de ton choix, puis
la supprimer.


Exemple très sobre:
Situation1 sur un évènement à définir (clic bouton ou autre)
Dim strSQL as String, qry As DAO.QueryDef
strSQL = "Select ... From ... Where condition1;"
Set qry= CurrentDB.CreateQuerydef("tmp", strSQL)
DoCmd.Openquery "tmp"
Currentdb.Querydefs.Delete "tmp"

Idem pour la situation2, seule la condition est modifiée

A+
Eric





Une boite de dialogue du type InputBox qui te demande de choisir la
condition.



Salut
Merci de ta réponse mais le déroulement doit être transparent pour
l'utilisateur, ce n'est pas à lui de choisir la condition. Une boite de
dialogue est donc à proscrire, de même que tout ce qui demande une
intervention de la part de l'utilisateur... :-S



Avatar
Gillou

Bonjour Gillou,

Une idée ?
Ecrire en vba : le sql des requêtes avec leur propre condition,
créer la requête, la faire exécuter sur l'évènement de ton choix, puis
la supprimer.


Salut
Effectivement cela doit marcher. Si je ne trouve rien de plus simple
(idéalement, openquery avec condition d'entrée !) je ferai ça !
Merci

Avatar
Gillou

Comment veux tu ne pas solliciter l'utilisateur si tu me dis ne pas pouvoir
spécifier la condition en dur.


Je ne peux pas la spécifier en dur dans le mode création de la requête, je
veux pouvoir la spécifier en dur lors de l'appel VBA de la requête.

Quelles sont les conditions à vérifier ? Je pense qu'il est possible de les
coder en VB.


En fait la condition dépend du formulaire sur lequel l'utilisateur se trouve :
- si l'utilisateur est sur le formulaire F1, alors le clic sur un bouton
doit lancer la requête R avec une condition C1
- si l'utilisateur est sur le formulaire F2, alors le clic sur un bouton
doit lancer la requête R avec une condition C2

Dans les deux cas la requête R est la même (exactement la même action à
mener) mais avec une condition d'entrée différente.

Pour faire ça, je cherchais tout bêtement une alternative à openquery qui
accepterait une condition d'entrée, ça n'existe pas ?

Merci