Macro sous MS ACCESS 2003

[Résolu/Fermé]
Signaler
Messages postés
24
Date d'inscription
lundi 31 mars 2008
Statut
Membre
Dernière intervention
13 octobre 2008
-
 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!

10 réponses

Messages postés
1712
Date d'inscription
vendredi 4 janvier 2008
Statut
Membre
Dernière intervention
16 janvier 2020
532
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...

Ok c'est fait, mais ça ne marche pas.

Est-ce que je dois quand même passer par la requête?

sinon quel évenement dois-je mettre sur mon bouton Appliquer dans le formulaire où j'ai ma liste déroulante.

SVP des réponses !

D'avance merci
Messages postés
24
Date d'inscription
lundi 31 mars 2008
Statut
Membre
Dernière intervention
13 octobre 2008

Ok c'est fais mais ça ne fonctionne toujours pas.

Dois-je continuer à passer par ma macro? (Car entre temps je l'ai changée, ma macro est maintenant une execution SQL)

Pourriez-vous me donner la démarche à effectuer le plus détailler possible SVP.

D'avance merci !
Messages postés
1712
Date d'inscription
vendredi 4 janvier 2008
Statut
Membre
Dernière intervention
16 janvier 2020
532
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"...
Messages postés
1712
Date d'inscription
vendredi 4 janvier 2008
Statut
Membre
Dernière intervention
16 janvier 2020
532
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!
Messages postés
24
Date d'inscription
lundi 31 mars 2008
Statut
Membre
Dernière intervention
13 octobre 2008

Peux-tu me dire (ou qqun d'autre) comment dois-je faire pour que quand je clique sur "Afficher" ça me lance la requête, car lorsque je vais dans les événements de mon bouton "afficher" -> "Sur clic" il me propose que des Macros et je ne peux pas choisir de requête...
Messages postés
24
Date d'inscription
lundi 31 mars 2008
Statut
Membre
Dernière intervention
13 octobre 2008

.
Messages postés
1712
Date d'inscription
vendredi 4 janvier 2008
Statut
Membre
Dernière intervention
16 janvier 2020
532
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")
Messages postés
24
Date d'inscription
lundi 31 mars 2008
Statut
Membre
Dernière intervention
13 octobre 2008

Ah ok,

C'est fait mais le problèmes c'est que sa me lance ma requète, j'ai dons une jolie table vide. mais moi j'aimerai que ça me lance l'état trié par les critères de la requête.
Messages postés
1712
Date d'inscription
vendredi 4 janvier 2008
Statut
Membre
Dernière intervention
16 janvier 2020
532
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!!!!!!!

Messages postés
24
Date d'inscription
lundi 31 mars 2008
Statut
Membre
Dernière intervention
13 octobre 2008

Excuse,

Je voulais dire Lancer un état mais qui doit être filtrer par la requête...

Dsl je suis nul en ACCESS
Messages postés
24
Date d'inscription
lundi 31 mars 2008
Statut
Membre
Dernière intervention
13 octobre 2008

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.
Messages postés
1712
Date d'inscription
vendredi 4 janvier 2008
Statut
Membre
Dernière intervention
16 janvier 2020
532
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é.
Messages postés
24
Date d'inscription
lundi 31 mars 2008
Statut
Membre
Dernière intervention
13 octobre 2008

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?
Messages postés
24
Date d'inscription
lundi 31 mars 2008
Statut
Membre
Dernière intervention
13 octobre 2008

Et quand je fais sa de 1 Sa m'affiche pas mais sa me l'imprime et de 2 ya rien sur l'état :-S
Messages postés
1712
Date d'inscription
vendredi 4 janvier 2008
Statut
Membre
Dernière intervention
16 janvier 2020
532
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!


Ouai quand je ne mets pas de critères dans la requête sous NOM, ça m'affiche l'état avec tous les travaux classé par immeuble.

Donc ça viendrai de mon critère qui est : [Forms]![FrmListeChoixImmeuble]![ListBoxImmeuble]![NOM]

Aurais-tu une idée pour le critère`?
Messages postés
1712
Date d'inscription
vendredi 4 janvier 2008
Statut
Membre
Dernière intervention
16 janvier 2020
532
Si ta liste de choix contient le nom de l'immeuble il est inutile de rajouter ![Nom]

Essaye juste comme ça:
[Forms]![FrmListeChoixImmeuble]![ListBoxImmeuble]

MAGNIFIQUE

Je te remercie vraiment beaucoup ^_^

C'est grace à des gens comme toi que les forums existent et servent à quelquechose.

Bonne fin de semaine et bon week-end!!!

Encore MERCI!!!!!!