Mysql
 sql >> Base de données >  >> RDS >> Mysql

La zone de liste déroulante en cascade du formulaire d'accès n'affiche rien dans le menu déroulant

Tout d'abord, assurons-nous de comprendre le concept derrière les "zones combinées en cascade". La logique s'exécute de telle manière qu'après avoir effectué une sélection à partir de Combo1, les options disponibles dans Combo2 changeront de sorte qu'elles ne soient liées qu'à Combo1. De même, après avoir sélectionné un élément de Combo2, les éléments de Combo3 seront uniquement des éléments liés à ce que l'utilisateur a sélectionné dans Combo2.

Ainsi, tout d'abord, chaque zone de liste déroulante en dehors de Combo1 doit être vide ou doit être liée à la valeur par défaut de Combo1. Vous pouvez le faire de toute façon.

Ensuite, dans l'événement AfterUpdate de Combo1, vous devriez avoir quelque chose comme ceci :

Me.cboCombo2.RowSource = "SELECT MyFieldNames " & _
                           "FROM tblMyTable " & _
                           "WHERE SomeID = " & Nz(Me.cboCombo1) & _  
                           "ORDER BY SomeValue"
Me.cboCombo2.Requery

Évidemment, MyFieldNames, tblMyTable et toutes ces autres valeurs dépendront de ce que vous recherchez réellement, du nom de votre table source/requête et des noms de champs, etc...

OK, maintenant Combo2 devrait se remplir de données qui ne concernent que ce que vous avez sélectionné dans Combo1, car nous utilisons Combo1 comme filtre dans le SQL ci-dessus.

Si cela semble correct, faites plus ou moins exactement la même chose pour Combo3. Vous devrez peut-être filtrer les valeurs des deux combos, ou vous pourrez peut-être vous en sortir en utilisant simplement cette valeur dans Combo2, en fonction de votre ensemble de données.

Faire mousser, rincer, répéter. Je suppose que vous devrez le faire 50 fois si vous avez 50 combos, mais c'est comme ça.

Pour plus de références, consultez cet article :http://www.fmsinc .com/microsoftaccess/forms/combo-boxes/cascading.html