PDA

Vollständige Version anzeigen : KomboBox-Auswahlliste dynamisch füllen


hdl26g
27.02.2006, 00:06
Ich möchte hier meine Lösung für folgendes Problem für alle bereitstellen:

Im Hauptformular habe ich ein Feld, welches einen bestimmten Inhalt haben kann. In einem Unterformular gibt es eine Kombobox, deren Auswahlliste nur solche Optionen anbieten soll, die dem Feld im Hauptformular zugeordnet sind.

Beispiel: Namen für Kinder
-> Im Hauptformular "frm_Namenwahl" ist ein Feld "Geschlecht" (mögl. Werte: M oder W)
-> Im Unterformular sollen Namen ausgewählt werden, die in die weitere Auswahl kommen

--> Besagte UFO-Kombobox soll nun bei Geschlecht=M nur Namen für Jungen anbieten, und wenn Geschlecht=W, sollen nur Mädchennamen gezeigt werden. Hierfür wurde eine Abfrage unterlegt, die eine Übereinstimmung der Werte aus der Quelltabelle "tbl_alleNamen" mit dem Wert des Feldes "=Formulare.frm_Namenwahl.Geschlecht" mittels einer so spezifizierten Bedingung sicherstellt. Nur: Der Wert dieses Feldes wird nur beim Laden des Hauptformulars einmal übernommen, und danach bei Änderung nicht nachvollzogen.
Wenn man also bei geladenem Hauptformular das Geschlecht ändert, aktualisiert sich die Datenquelle, die die Auswahlmöglichkeiten der Kombobox im UFO speist, nicht automatisch. Wechselt man also Geschlecht von W zu M, erhält man weiterhin nur Namen wie "Claudia", "Anna" oder "Nicole" zur Auswahl, weil weiterhin gegen den Wert W geprüft wird.
Das Feld "Geschlecht" im Hauptformular erhält also für das Ereignis "after update" folgenden Codefetzen:

Private Sub fk_Geschlecht_AfterUpdate()

Me.subf_Namen_EngereAuswahl.Form.Controls.Item("fk_Geschlecht").Requery

End Sub

Der Item-Name muß natürlich 1:1 übertragen werden. Ist nichts überragendes, hat mich aber viel Nerven gekostet. Ich hoffe, damit anderen ewiges Herumprobieren zu ersparen.

Gruß,
Stefan aus Hamburg