Beitrag aus SmartTools Access Weekly
Datensätze in Formularen individuell filtern
Access 365 2024 2021 2019 2016 2013 2010
FRAGE Ich möchte den Anwendern meiner Datenbank die Möglichkeit bieten, in ihrem Access-Formular nur bestimmte Datensätze anzuzeigen. Das realisiere ich derzeit über verschiedene Formulare mit Abfragen als Datenbasis. In der Abfrage verwende ich als Kriterium zum Beispiel "[Kundenname?]", so dass sich ein Eingabefenster öffnet und nach Eingabe nur die betreffenden Kunden angezeigt werden. Das klappt auch ganz gut. Jetzt sind die Anforderungen gewachsen und die Anwender möchten nach verschiedenen Feldern suchen. Natürlich könnte ich dasselbe Formular kopieren und die Abfragen anpassen, aber gibt es vielleicht einen einfacheren Weg?
Diverse Anfragen
ANTWORT Zum Filtern von Datensätzen in einem Formular stellt Access die Eigenschaften "Filter" und "FilterOn" bereit, die Sie per VBA zum Beispiel so nutzen:
strOrt = Me.txtSuchOrt
strStrasse = Me.txtSuchStrasse
Me.Filter = _
"[Ort]='" & strOrt & _
"' AND [Strasse]='" & strStrasse & "'"
Me.FilterOn = True
Im Formular sind zwei Textfelder für das Suchen nach Ort und Straße und daneben eine Schaltfläche Suchen mit obigen Anweisungen in der Ereignisprozedur "Beim Klicken" vorhanden. Diese Anweisungen setzen den Filter entsprechend zusammen, setzen ihn und aktivieren die Filterung. Um den Filter wieder auszuschalten, führen Sie folgende Anweisungen aus:
Me.Filter = ""
Me.FilterOn = False