Formularansicht filtern, Teil II

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 1901_FormulareFilternII.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.

Formularbasierte Filter

Im ersten Teil dieser Artikelreihe haben wir bereits angedeutet, dass wir uns noch die weiteren Befehle im Ribbon ansehen wollen. Wenn Sie ein Formular geöffnet und eines der gebundenen Steuer-elemente aktiviert haben, sind im Ribbon-Menü unter Start|Sortieren und Filtern|Erweitert zunächst die Befehle Alle Filter löschen, Formularbasierter Filter, Filter/Sortierung anwenden und Spezialfilter/-sortierung… aktiviert (siehe Bild 1). Noch nicht aktiviert sind die Befehle Aus Abfrage laden… und Als Abfrage speichern…. Wann diese aktiviert werden, schauen wir uns später an.

Ribbon-Befehle zum erweiterten Filtern

Bild 1: Ribbon-Befehle zum erweiterten Filtern

Klicken Sie auf den Eintrag Formularbasierter Filter, erscheint eine neue Ansicht des Formulars. Diese enthält die gleichen Steuer-elemente, aber keine Daten mehr. Die überschrift des Formulars wird mit dem Text Formularbasierter Filter erweitert (siehe Bild 2). Außerdem finden wir unten zwei Registerreiter vor, und zwar mit den Beschriftungen Suchen nach und Oder. Wir können hier nun zunächst einmal einen Filterausdruck für den Artikelnamen eingeben, zum Bespiel C* für alle Artikel, deren Name mit dem Buchstaben C beginnt, und dann den Filter aktivieren. Nach der Eingabe fragen wir uns allerdings, wie genau wir den Filter aktivieren können.

Formularbasierter Filter

Bild 2: Formularbasierter Filter

Interessant ist jedenfalls erstmal, dass der Vergleichswert nach dem Wechsel in ein anderes Steuer-element gleich in einen Vergleichsausdruck umgewandelt wird, in diesem Fall in den Ausdruck Wie “C*” (siehe Bild 3).

Umwandlung des Kriteriums in einen Vergleichsausdruck

Bild 3: Umwandlung des Kriteriums in einen Vergleichsausdruck

Um den Filter nun auszuführen, betätigen Sie den Ribbon-Befehl Start|Sortieren und Filtern|Filter ein/aus. Danach verschwindet die Ansicht zum Eingeben der Filterkriterien wieder und das Formular zeigt nur noch die den Filterkriterien entsprechenden Datensätze an (siehe Bild 4).

Nach dem Anfangsbuchstaben C gefilterte Datensätze

Bild 4: Nach dem Anfangsbuchstaben C gefilterte Datensätze

Weitere Filterkriterien eingeben

Um weitere Filterkriterien einzugeben, wechseln Sie nun einfach wieder mit dem Ribbonbefehl Start|Sortieren und Filtern|Erweitert|Formularbasierter Filter zur Eingabe der formularbasierten Filter. Hier können wir nun noch weitere Kriterien für die anderen Felder angeben, zum Beispiel indem wir über das Kombinationsfeld für das Feld Kategorie noch den Eintrag Getränke auswählen. Wenn wir diese Eingabe abschließen, erzeugt Access übrigens keinen Ausdruck wie Wie “Getränke”, sondern belässt nur den Vergleichsausdruck im Steuer-element (siehe Bild 5). Der Unterschied resultiert daraus, dass wir hier keinen Platzhalter angegeben haben. Der Vergleichsoperator Wie wird also nur ausgegeben, wenn ein Platzhalter vorhanden ist. Der Vergleichsoperator = ist also quasi der Standardoperator, der nicht explizit angegeben wird.

Zusätzlich nach der Kategorie filtern

Bild 5: Zusätzlich nach der Kategorie filtern

Grundsätzlich gilt: Alle Filterkriterien, die auf einer Registerseite angegeben werden, verknüpft Access mit dem Und-Operator. Das können Sie auch für den aktuellen Filter leicht herausbekommen, wenn Sie den Filter aktivieren und dann im VBA-Editor den folgenden Befehl eingeben:

 Forms!frmArtikelFiltern.Filter
((tblArtikel.Artikelname Like "C*") AND (Lookup_KategorieID.Kategoriename="Getränke"))

Filterkriterien mit Oder verknüpfen

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