Formularansicht filtern

Access bietet einige Möglichkeiten, um die Daten in Formularen zu filtern – zum Beispiel die Möglichkeiten, die auftauchen, wenn Sie das Kontextmenü eines Feldes in der Formularansicht anzeigen oder die Funktionen, die über das Ribbon zur Verfügung stehen. Wir schauen uns diese Möglichkeiten in diesem Artikel einmal im Detail an und schauen, wie wir diese Funktionen per VBA aufrufen können.

Beispieldatenbank

Die Beispiele dieses Artikels finden Sie in der Datenbank 1806_FormulareFiltern.accdb.

Beispielformular

Für die Beispiele verwenden wir ein Formular namens frmArtikelFiltern, das wir mit der Tabelle tblArtikel als Datensatzquelle versehen und mit dem wir alle Felder dieser Tabelle anzeigen. Wenn wir das Formular in der Formularansicht anzeigen und dann mit der rechten Maustaste etwa auf das Textfeld Artikelname klicken, finden wir bereits verschiedene Filterfunktionen vor, die wir direkt anwählen können – zum Beispiel Ist gleich “Chai” oder Ist ungleich “Chai”. Es gibt aber auch noch das Menü Textfilter, das weitere Befehle wie Gleich…, Nicht gleich…, Beginnt mit… und so weiter anbietet (siehe Bild 1).

Formular-Entwurf unseres Beispielformulars

Bild 1: Formular-Entwurf unseres Beispielformulars

Die Einträge im Hauptmenü filtern direkt mit Ausdrücken, die den aktuellen Wert als Vergleichswert enthalten, die im Untermenü ermöglichen die Anzeige eines kleinen Eingabefeldes, mit dem der Vergleichswert für die gewählte Option ausgewählt werden können. Hier können Sie dann beispielsweise den Wert eingeben, mit dem die zu suchenden Einträge für dieses Feld beginnen (siehe Bild 2). Nach der Eingabe des Vergleichswertes und dem Betätigen der OK-Schaltfläche wird der Filter genau wie bei den Schnellfiltern aus dem ersten Menü auf alle Datensätze des Formulars angewendet.

Eingabe eines Filtervergleichswertes

Bild 2: Eingabe eines Filtervergleichswertes

Was ist passiert

Was genau haben wir durch diese Aktion erledigt Wir haben einen Filter definiert und diesen auf die Daten des Formulars angewendet. Können wir irgendwie herausfinden, welcher Filterausdruck nun genau wirkt Ja, das geht – und zwar per VBA. Wir brauchen einfach nur den Wert der Eigenschaft Filter des Formulars auszugeben. Das gelingt etwa mit dem folgenden Befehl im Direktbereich des VBA-Editors (anzuzeigen über die Tastenkombination Strg + G):

 Forms!frmArtikelFiltern.Filter
([tblArtikel].[Artikelname] Like "C*")

Der Filterausdruck vergleicht also den Inhalt des Feldes Artikelname mit der Zeichenkette C*.

Was geschieht, wenn wir einen weiteren Filter für genau das gleiche Feld definieren – beispielsweise einen, der alle Artikel liefert, die den Buchstaben A enthalten Dann wählen wir als Erstes den Kontextmenü-Eintrag Textfilter|Enthält… für das Feld Artikelname. Den resultierenden Filterausdruck ermitteln wir dann mit dem gleichen Befehl wie oben:

 Forms!frmArtikelFiltern.Filter
(([tblArtikel].[Artikelname] Like "C*")) AND                  ([tblArtikel].[Artikelname] Like "*A*")

Wenn wir einen zweiten Filter festlegen, fügt Access diesen also zum bestehenden ersten Filter hinzu – und zwar mit einer AND-Verknüpfung.

Filter entfernen

Möchten Sie weiterlesen? Dann lösen Sie Ihr Ticket!
Hier geht es zur Bestellung des Jahresabonnements des Magazins Access [basics]:
Zur Bestellung ...
Danach greifen Sie sofort auf alle rund 400 Artikel unseres Angebots zu - auch auf diesen hier!
Oder haben Sie bereits Zugangsdaten? Dann loggen Sie sich gleich hier ein:

Schreibe einen Kommentar