Ich habe zwei abhängige Kombinationsfelder in einem Formular erstellt. Wenn Sie in der ersten Box eine Category
auswählen, wird die Liste der verfügbaren Products
in der zweiten gefiltert. Ich habe die Category-Product-Auswahlen in einer Tabelle mit dem Namen Test
gespeichert, wobei Kategorien jeweils eine Zeile erhalten.Requery-Kombinationsfelder in Access 2013
Was ich tun möchte, ist, das Produkt in der Produkt-Kombinationsfeld anzuzeigen, wenn Sie eine Kategorie bereits in Test auswählen. Wenn Sie beispielsweise Kategorie = Gewürze und Produkt = Ketchup im Formular auswählen, wird es Test hinzugefügt. Wenn Sie dann das nächste Mal Kategorie = Gewürze im Formular auswählen, zeigt das Kombinationsfeld Produkte (das Feld, in das Sie eingeben, nicht das Dropdown) sofort Ketchup an. Das scheint nur zu funktionieren, wenn ich eine Zeile in Test habe. Wenn ich weitere Zeilen hinzufüge, wird ProductComboBox nicht geändert.
Hier ist, wie mein Formular aufgebaut ist.
Im RowSource für CategoryComboBox ich alles wählen
Select * From CategoryTable
Im RowSource für ProductComboBox, I Produkte filtern basierend auf der
Select * From ProductTable Where ProductTable.CategoryID=[forms]![FormTest]![Category]
Die Form Quelle ausgewählt Kategorie ist es, Produkte Kategorie verbunden links auf KategorieID.
Im On Change-Ereignisse für CategoryComboBox und die On Current-Ereignis für das Formular requery ich die ProductComboBox
ProductComboBox.Requery
jedoch nur mit ProductComboBox.Requery die verfügbaren Optionen in der Dropdown-Liste erneut abfragt. Nach Auswahl einer Kategorie, aber vor der Auswahl eines Produkts ändert sich der Wert des aktuellen Kombinationsfelds nicht. Wie wiederhole ich Daten aus der Tabelle, die mit der ControlSource verknüpft ist? Gibt es eine bessere VBA-Funktion als Requery
oder muss ich SQL in einem Makro verwenden?
Beachten Sie, dass ich weiterhin die Möglichkeit zur Eingabe von Daten über die Dropdown-Box benötigen. – jjjjjjjjjjj