Access 2 listes déroulantes dans formulaire

Fermé
nicooooolas Messages postés 6 Date d'inscription mardi 25 septembre 2012 Statut Membre Dernière intervention 26 septembre 2012 - 25 sept. 2012 à 09:36
blux Messages postés 25978 Date d'inscription dimanche 26 août 2001 Statut Modérateur Dernière intervention 19 avril 2024 - 26 sept. 2012 à 10:14
Bonjour,

Je souhaiterais obtenir un résultat issu deux 2 listes déroulantes dans un formulaire access.
Je m'explique j'ai une requete "Volume" qui contient un champ "Pays" et un champ "Quand". Dans cette requete une formule me permet de calculer des volumes par pays. J'y suis parvenu ma requete marche tres bien. Je souhaiterais maintenant créér un formulaire ou l'utilisateur choisirais un pays dans une premiere liste déroulante et une date (champs "quand") dans une seconde liste déroulante. Le résulat du pays et de la date me donnerait un volume dans une zone de texte tjs ds ce formulaire.

Qqn pourrait il m'aider sur le code VBA à écrire. J'ai lu bcp de choses sur plusieurs forums mais sans y parvenir... je suppose qu'il faut arriver à raffraichir la seconde liste deroulante à partir de la premiere >>me!requery"Nom_formulaire!" mais je dois me tromper qqe part....
Ensuite comment afficher le résultat dans une zone de texte?

Merci d'avance si quelqu'un peut me donner un coup de main

Cordialement





A voir également:

6 réponses

blux Messages postés 25978 Date d'inscription dimanche 26 août 2001 Statut Modérateur Dernière intervention 19 avril 2024 3 287
25 sept. 2012 à 11:13
0
nicooooolas Messages postés 6 Date d'inscription mardi 25 septembre 2012 Statut Membre Dernière intervention 26 septembre 2012
25 sept. 2012 à 11:40
Salut Blux,

Merci pour ta réponse

Cela ne fonctionne pas, voici le code que j'ai tapé dans l'event de ma liste déroulante 1:

Private Sub Combo8_Change()
Dim StrSql As String
StrSql = "SELECT When from Volume where Country ='"&
country.Value & "';"
When.RowSource = StrSql
End Sub


When est un champ de ma query Volume
Country est un champ de ma query volume

As tu une idée sur mon erreur?

Merci d'avance
0
blux Messages postés 25978 Date d'inscription dimanche 26 août 2001 Statut Modérateur Dernière intervention 19 avril 2024 3 287
25 sept. 2012 à 11:49
.rowsource ne s'applique qu'a un objet, en l'occurrence, ce devrait être le nom de ta deuxième liste.

Ca ne me semble pas clair dans ta tête (peut-être me trompé-je ?), on va essayer de reprendre depuis le début :

Peux-tu donner la liste des tables et les relations entre elles ainsi que le texte de la requête 'Volume' ?
0
nicooooolas Messages postés 6 Date d'inscription mardi 25 septembre 2012 Statut Membre Dernière intervention 26 septembre 2012
25 sept. 2012 à 13:32
Effectivement ce n'est pas tres clair...

Je souhaite réaliser les listes déroulantes basées sur une requete appelé : Volume.
Dans cette requete j'ai les champs suivants:
ClePrimaire.TBL_DATACOLLECTED
Country.TBL_DATACOLLECTED
When.TBL_DATACOLLECTED
Nombredemesures.TBL_DATACOLLECTED
VOLUME fruit(cm3): Sum(([Volume]/[Nombredemesures]))

Merci pour ton aide
0
blux Messages postés 25978 Date d'inscription dimanche 26 août 2001 Statut Modérateur Dernière intervention 19 avril 2024 3 287
25 sept. 2012 à 16:05
Il faut donc :

- créer une zone de liste, avec une requête simple qui va renvoyer la liste des pays
- récupérer le pays choisi et le mettre en variable d'une variable passée en .rowsource d'une autre zone de liste
- récupérer la date choisie dans la deuxième liste
- exécuter une fonction type dlookup en source d'une zone de texte pour afficher le résultat
0
nicooooolas Messages postés 6 Date d'inscription mardi 25 septembre 2012 Statut Membre Dernière intervention 26 septembre 2012
25 sept. 2012 à 16:20
Oui, ok pour les points 1 et 3. J'ai justement besoin d'aide pour les points 2 et 4...
0
blux Messages postés 25978 Date d'inscription dimanche 26 août 2001 Statut Modérateur Dernière intervention 19 avril 2024 3 287
Modifié par blux le 25/09/2012 à 18:01
C'est presque comme tu as fait. Combo8 est la zone de liste de tes pays et Combo9 est la zone de liste de tes dates.

Private Sub Combo8_Change()
Dim StrSql As String
StrSql = "SELECT When from Volume where Country ='"&
Combo8.Value & "';"
Combo9.RowSource = StrSql
End Sub

Ensuite, il faut dans le code de Combo9.change récupérer la valeur de Combo9 (celle de combo8 n'a pas du changer) et mettre à jour la zone d'affichage avec un dlookup.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
nicooooolas Messages postés 6 Date d'inscription mardi 25 septembre 2012 Statut Membre Dernière intervention 26 septembre 2012
25 sept. 2012 à 17:56
Je commence a comprendre mais pas assez pour continuer
Comment récupérer la valeur de combo_9 ?

Dim strSql2 As String
strSql2 = "SELECT Country from Volume where When = ' " & ""
??
0
blux Messages postés 25978 Date d'inscription dimanche 26 août 2001 Statut Modérateur Dernière intervention 19 avril 2024 3 287
25 sept. 2012 à 18:07
Combo9.value...

Mais attention, pas de SELECT si tu vises une zone de texte... Un dlookup suffira...

Un truc comme ça :

Private Sub Combo9_Change()
Dim StrSql As String
StrSql = "=DLookup("
StrSql = StrSql & Chr(34) & "[VOLUME fruit(cm3)]" & Chr(34)
StrSql = StrSql & "," & Chr(34) & "Volume" & Chr(34)
StrSql = StrSql & "," & Chr(34) & "country = '" & Combo8.Value & "'"
StrSql = StrSql & " and when = '" & Combo9.Value & "'" & Chr(34) & ")"
Texte8.ControlSource = StrSql
End Sub
0
nicooooolas Messages postés 6 Date d'inscription mardi 25 septembre 2012 Statut Membre Dernière intervention 26 septembre 2012
26 sept. 2012 à 09:46
Salut Blux,

Puis je te joindre à un numéro? une adresse mail?
0
blux Messages postés 25978 Date d'inscription dimanche 26 août 2001 Statut Modérateur Dernière intervention 19 avril 2024 3 287
26 sept. 2012 à 10:14
un MP éventuellement...
0