Lassen Sie uns zunächst sicherstellen, dass wir das Konzept hinter "kaskadierenden Kombinationsfeldern" verstehen. Die Logik läuft so ab, dass sich die in Combo2 verfügbaren Optionen ändern, nachdem Sie eine Auswahl aus Combo1 getroffen haben, sodass es sich nur um Elemente handelt, die sich auf Combo1 beziehen. Ebenso sind die Elemente in Combo3, nachdem wir ein Element aus Combo2 ausgewählt haben, nur Elemente, die sich auf das beziehen, was der Benutzer in Combo2 ausgewählt hat.
Daher sollte zunächst jedes Kombinationsfeld außer Combo1 leer sein oder sich auf den Standardwert von Combo1 beziehen. Sie könnten es so oder so tun.
Als nächstes sollten Sie im AfterUpdate-Ereignis von Combo1 so etwas haben:
Me.cboCombo2.RowSource = "SELECT MyFieldNames " & _
"FROM tblMyTable " & _
"WHERE SomeID = " & Nz(Me.cboCombo1) & _
"ORDER BY SomeValue"
Me.cboCombo2.Requery
Offensichtlich hängen MyFieldNames, tblMyTable und all diese anderen Werte davon ab, wonach Sie tatsächlich suchen, Ihren Quelltabellen-/Abfragenamen und Feldnamen usw.
OK, Combo2 sollte sich jetzt mit Daten füllen, die nur für das relevant sind, was Sie in Combo1 ausgewählt haben, da wir Combo1 als Filter in der obigen SQL verwenden.
Wenn das OK aussieht, machen Sie mehr oder weniger genau dasselbe für Combo3. Abhängig von Ihrem Datensatz müssen Sie möglicherweise nach Werten aus beiden Kombinationen filtern, oder Sie kommen möglicherweise damit davon, nur diesen Wert in Combo2 zu verwenden.
Aufschäumen, ausspülen, wiederholen. Ich schätze, Sie müssen das 50 Mal machen, wenn Sie 50 Combos haben, aber so wird es gemacht.
Weitere Informationen finden Sie in diesem Artikel:http://www.fmsinc .com/microsoftaccess/forms/combo-boxes/cascading.html