Access 2 listes déroulantes dans formulaire

nicooooolas Messages postés 6 Date d'inscription   Statut Membre Dernière intervention   -  
blux Messages postés 27140 Date d'inscription   Statut Modérateur Dernière intervention   -
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 27140 Date d'inscription   Statut Modérateur Dernière intervention   3 362
 
0
nicooooolas Messages postés 6 Date d'inscription   Statut Membre Dernière intervention  
 
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 27140 Date d'inscription   Statut Modérateur Dernière intervention   3 362
 
.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   Statut Membre Dernière intervention  
 
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 27140 Date d'inscription   Statut Modérateur Dernière intervention   3 362
 
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   Statut Membre Dernière intervention  
 
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 27140 Date d'inscription   Statut Modérateur Dernière intervention   3 362
 
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   Statut Membre Dernière intervention  
 
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 27140 Date d'inscription   Statut Modérateur Dernière intervention   3 362
 
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   Statut Membre Dernière intervention  
 
Salut Blux,

Puis je te joindre à un numéro? une adresse mail?
0
blux Messages postés 27140 Date d'inscription   Statut Modérateur Dernière intervention   3 362
 
un MP éventuellement...
0