Acces Formulaire combo box condition if

Bonjour, j'ai une question par rapport à un formulaire Access:
Je choisis dans une 1ère combo box une région à partir d'une table
Ensuite suivant la région sélectionnée une 2ème combo box permet de choisir la ville à partir d'une requête.
Ainsi dans la 2ème combo box seulement les villes de la région sélectionnée apparaissent.
Maintenant je voudrais pouvoir sélectionner toutes les régions et donc dans la 2ème combo box avoir toutes les villes.
Je pensais ajouter un champs "Toutes les Régions" dans la table et faire une condition IF pour ma 2ème combo Box mais je n'y parviens pas.
Pouvez vous m'aider?

Merci par avance.

7 réponses

  • Votes
  • Date
  • Date décroissante
  1. Bonjour,

    En fait, c'est dans la requête source de ta deuxième combobox que ça doit se passer.
    Si tu as déjà un critère du type =[Formulaires]![NomDeTonFormulaire]![NomDeCombobox1], tu enlèves le critère, puis tu ajoute, toujours dans ta requête, une colonne ainsi :

    Champs (à adapter) :
    VraiFaux(EstNull([Formulaires]![NomDeTonFormulaire]![NomDeCombobox1]);1;VraiFaux([Champs_Région_de_la_ville]=[Formulaires]![NomDeTonFormulaire]![NomDeCombobox1];1;0))
    Opération : Où
    Critère : 1

    Ainsi, ta formule fait :
    si Combobox est null, renvoie la valeur 1 (donc répond au critère et affiche la ville)
    Si Combobox est pas null :
    - Si la région de ta ville est égale à celle choisie dans ton combobox1, renvoie la valeur 1, donc répond au critère et affiche ta ville,
    - Si la région de la ville est différente de celle choisie dans ton Combobox1, renvoie 0, donc ne répond pas au critère, et n'affiche pas la ville.

    ça semble compliqué, à première vue, mais c'est très efficace !

    Manu
    1. désolée mais je ne comprend pas; ma combobox1 n'est jamais nulle, je dois la compléter soit par la région choisie soit (ce que je veux ajouter) par toutes les régions
      et si on demande toutes les régions alors dans la 2ème combobox apparaissent toutes les villes

      j'ai quand même essayé votre solution mais je fonctionne avec une version anglaise, j'ai donc remplacé votre VraiFaux par TrueFalse (j'ai aussi essayé RightWrong) et il ne connait pas ca, vous connaissez la version anglaise?

      merci
      1. Bonjour sarah3854,

        J'ai déposé un tutoriel ACCESS [En anglais] sur Ci-joint.com.
        Vous le trouverez à cette adresse :

        http://www.cijoint.fr/cjlink.php?file=cj201005/cijPJ1YMLX.zip

        Le formulaire : How One List Box Changes Another With a Query
        traite de votre problématique.
        Il devrait vous profiter ....

        Cordialement
        1. * ne fonctionne pas, non
          Pour votre tutorial Jean Jacques, comment feriez vous si vous voudriez visualiser tous les état en même temps?il ne me semble pas que votre formulaire le permette
          1. En fait j'ai remplacé VraiFaux par IIf et ca marche!

            Merci à tous pour votre aide
            1. autre possibilite

              table region - ville

              Region1 Ville1
              Region1 Ville2
              Region2 Ville3
              Region2 Ville4
              Toutes Ville1
              Toutes Ville2
              Toutes Ville3
              Toutes Ville4

              de la ta premiere liste deroulante se base sur une requete regroupement des Region

              la deuxieme sur une requete regroupement des villes et region ou region = la valeur de ta premiere liste. tu devrait avoir toutes les villes dans ta deuxieme liste si tu choisis "toutes"

              j'espere avoir ete clair

              Rhyton