Macro sous MS ACCESS 2003
Résolu
marcbaertschi
Messages postés
24
Statut
Membre
-
marcbaertschi -
marcbaertschi -
Bonjour à tous,
Je suis au boulot et dois modifié une BDD sous access 2003,
J'ai besoin de faire une macro qui récupère la valeur d'une liste déroulante qui se situe dans un formulaire et qui va mettre cette valeur dans le critère d'un requête utilisée pour afficher un état par nom.
J'ai donc utilisé l'action DéfinirValeur et comme expression j'ai mis: [QryEtatTravauxParImmeuble]![NOM]=[Formulaires]![FrmListeChoixImmeuble]![Modifiable1]![NOM]
QryEtat... = La requête
NOM = Nom de l'immeuble
FrmListeChoixImmeuble = Mon form où se trouve la liste déroulante
Modifiable1 = ma liste déroulante
MAIS:
Le problème vient (je le sais très bien) dans cette expression ci-dessus. Je n'ai aucune idée de l'expression à mettre car ça faisait longtemps que je ne touchais plus à ACCESS et je n'ai pas envie de faire ça en VBA.
Pouvez-vous m'aider à trouver cette "Expression" dont j'ai cruellement besoin?
J'attend vos réponses!
D'avance merci!
Je suis au boulot et dois modifié une BDD sous access 2003,
J'ai besoin de faire une macro qui récupère la valeur d'une liste déroulante qui se situe dans un formulaire et qui va mettre cette valeur dans le critère d'un requête utilisée pour afficher un état par nom.
J'ai donc utilisé l'action DéfinirValeur et comme expression j'ai mis: [QryEtatTravauxParImmeuble]![NOM]=[Formulaires]![FrmListeChoixImmeuble]![Modifiable1]![NOM]
QryEtat... = La requête
NOM = Nom de l'immeuble
FrmListeChoixImmeuble = Mon form où se trouve la liste déroulante
Modifiable1 = ma liste déroulante
MAIS:
Le problème vient (je le sais très bien) dans cette expression ci-dessus. Je n'ai aucune idée de l'expression à mettre car ça faisait longtemps que je ne touchais plus à ACCESS et je n'ai pas envie de faire ça en VBA.
Pouvez-vous m'aider à trouver cette "Expression" dont j'ai cruellement besoin?
J'attend vos réponses!
D'avance merci!
Configuration: Windows XP Internet Explorer 7.0
10 réponses
-
Dans ta requête, tu mets un critère sur le champ concerné:
Forms!NomDuFormulaire!NomDeLaListe Modifiable.
Tu peux faire un clic droit et choisir "Créer" si tu veux être sûr de ne pas faire d'erreur de syntaxe... -
Dans ta requête, tu mets un critère sur le champ concerné:
Forms!NomDuFormulaire!NomDeLaListe Modifiable.
"Ok c'est fait, mais ça ne marche pas.
Est-ce que je dois quand même passer par la requête? "
On a du mal se comprendre. Oui, tu dois "passer par la requête"... -
Non, pas de macro.
Dans ton formulaire, tu choisis l'immeuble, et tu lances la requête qui elle-même contient un critère faisant référence à ce choix d'immeuble! -
-
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question -
Tu cliques sur le bouton générateur (3 points) qui se trouve à droite de la flêche te donnant accès aux macros.
Tu choisis "générateur de code"
Et entre le Sub et le End sub tu écris DoCmd.OpenQuery ("NomDeTaRequête")
-
Tes deux posts se contredisent, merci d'essayer d'être un peu précis, que je ne réponde pas 15 fois à côté de la plaque...
Tu veux que ça lance la requête, et ensuite le problème c'est que ça la lance!!!!!!!
-
-
Je réexplique:
De base mon petit formulaire avec la liste déroulante (ci-dessous) n'existait pas et je l'ai créer car auparavant lorsqu'on voulait afficher L'Etat par immeuble on devait écrire le nom exacte de l'immeuble, Et le but et qu'on puisse maintenant séléctionné les immeubles dans une liste déroulante.
J'ai: (en vrai il y a beauoup plus mais je donne le nécessaire)
- un formulaire "FrmChoixImmeuble" qui contient: Une liste déroulante "LstChoixImmeuble", et un bouton Afficher "BtnShow".
- un état qui doit être filtrer par la requête. "EtatTravauxParImmeuble"
- et une requête "QryEtatTravauxParImmeuble"
Exemple:
Je choisis un des immeubles (ImmeubleX) dans la liste déroulante ensuite je clique sur Afficher, et la sa doit m'afficher dans l'état toutes les travaux engendrés sur l'ImmeubleX.
-
-
Effectivement ça n'a pas grand chose à voir avec la question initiale!!!!!
Ta requête "QryEtatTravauxParImmeuble" doit donc avoir un critère basé sur la liste de choix comme je te l'ai dit. Et si ça, c'est OK, et que l'état "EtatTravauxParImmeuble" est basé sur cette requête, le bouton doit avoir comme code DoCmd.OpenReport "EtatTravauxParImmeuble"
Remarque: Si l'état vient en aperçu, et que tu veux faire une autre sélection, tu dois absolument refermer l'état avant de retourner au formulaire sinon il ne sera pas actualisé. -
Si j'ai bien compris :
Critéres de la requête: Forms!FrmListeChoixImmeuble!ListChoixImmeuble!NOM
Source de l'état: QryEtatTravauxParImmeuble
et Bouton code VBA: DoCmd.OpenReport "EtatTravauxParImmeuble"
Je fais sa? -
Si tu le veux en aperçu il faut écrire - pardon - DoCmd OpenReport "EtatTravauxParImmeuble",, acPreview
Par contre, si ça n'affiche rien, c'est qu'il y a un prblème au niveau de la requête, je présume. Est ce que la requête elle-même te donne un résultat>?
Ah non, chuis bête, tu as déjà dit que ça t'ouvrait "une jolie table vide" (En fait c'est une feuille de données vide, mais bon)
Et si tu ne mets pas de critères, ça donne qqchose? Si oui, le problème vient de ton critère, si non il vient de la requête. Essaye et tiens moi au courant!
-
Si ta liste de choix contient le nom de l'immeuble il est inutile de rajouter ![Nom]
Essaye juste comme ça:
[Forms]![FrmListeChoixImmeuble]![ListBoxImmeuble]