Access 2 listes déroulantes dans formulaire

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

6 réponses

  1. 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
    1. Modérateur
      .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
  2. 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
    1. Modérateur
      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
  3. Oui, ok pour les points 1 et 3. J'ai justement besoin d'aide pour les points 2 et 4...
    0
    1. Modérateur
      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
  4. 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
    1. Modérateur
      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
  5. Salut Blux,

    Puis je te joindre à un numéro? une adresse mail?
    0
    1. Modérateur
      un MP éventuellement...
      0