Zur Hauptseite ... Zum Onlinearchiv ... Zum Abonnement ... Zum Newsletter ... Zu den Tools ... Zum Impressum ... Zum Login ...

Alle Eintrge per Kombinationsfeld auswhlen

Wenn Sie den Inhalt eines Listenfeldes oder eines Formulars nach einem bestimmten Wert filtern mchten, ist das kein Problem. Sie knnen dann beispielsweise ein Kombinationsfeld zur Auswahl des Wertes verwenden, nach dem gefiltert werden soll. Schwieriger wird es, wenn durch Auswahl eines Eintrags wie beispielsweise <alle> alle Eintrge des Listenfeldes oder des Formulars angezeigt werden sollen

Beispieldatenbank

Die Beispieldatenbank verwendet die Tabellen Artikel und Kategorien aus der Nordwinddatenbank. Im Beispiel finden Sie ein Formular, dass ein Kombinationsfeld zur Auswahl von Kategorien sowie ein Listenfeld zur Anzeige aller Artikel der ausgewhlten Kategorie enthlt.

Kombinationsfeld mit Union-Abfrage

Damit das Kombinationsfeld berhaupt einen Eintrag mit dem Inhalt <alle> anzeigt, ohne dass Sie die Datenherkunft des Kombinationsfeldes anpassen mssen, verwenden Sie folgende UNION-Abfrage als Datenherkunft:

SELECT '*' AS [Kategorie-Nr], "<alle>" AS Kategoriename

FROM Kategorien

UNION

SELECT [Kategorie-Nr], Kategoriename

FROM Kategorien;

Der Inhalt des Kombinationsfeldes sieht nun etwa wie in Abbildung 1 aus.

Abbildung 1: Auswahl aller Eintrge des Listenfeldes

Die Auswahl eines neuen Eintrags des Kombinationsfeldes lst die Ereigniseigenschaft Nach Aktualisierung aus, die folgenden Code enthlt:

Private Sub cboKategorien_AfterUpdate()

    Me.lstArtikel.RowSource = "SELECT [Artikel-Nr], Artikelname FROM Artikel WHERE [Kategorie-Nr] LIKE '" & Me.cboKategorien & "'"

End Sub

Die Prozedur weist dem Listenfeld eine neue Datenherkunft zu, die alle Datenstze anzeigt, deren Feld Kategorie-Nr dem im Kombinationsfeld ausgewhlten Wert entspricht. Dabei wird der LIKE-Operator verwendet, damit im Falle des Eintrags <alle> und dem damit verbundenen Vergleichswert Sternchen (*) alle Datenstze der Tabelle Artikel angezeigt werden.

Nun sollten Sie aus kosmetischen Grnden noch dafr sorgen, dass beim Anzeigen des Formulars direkt der Eintrag <alle> im Kombinationsfeld ausgewhlt wird. Das erledigen Sie mit der folgenden Prozedur, die durch die Ereigniseigenschaft Beim Anzeigen des Formulars ausgelst wird:

Private Sub Form_Current()

    Me.cboKategorien = Me.cboKategorien.ItemData(0)

End Sub

© 2003-2015 André Minhorst Alle Rechte vorbehalten.