Lies diesen Artikel und viele weitere mit einem kostenlosen, einwöchigen Testzugang.
Was helfen Artikel-, Kunden-, Bestell- und sonstige Daten, wenn Sie diese zwar schön in einem Formular darstellen, aber diese nicht entsprechend filtern können In diesem Artikel zeigen wir Ihnen, wie Sie verschiedene individuelle Filterkriterien mithilfe entsprechender Steuerelemente im Formular festlegen können. Damit filtern Sie dann die in einem Unterformular enthaltenen Daten – in diesem Fall Artikelstammdaten.
Beispieldatenbank
Die Beispiele dieses Artikels finden Sie in der Datenbank 1304_FilterkriterienFuerFormulare.mdb.
Basisaufbau
Die Grundlage für die nachfolgend beschriebenen Beispiele zum Filtern von Daten besteht aus einem Haupt- und einem Unterformular. Im Hauptformular befinden sich die Steuerelemente, mit denen Sie die Filterkriterien eingeben, das Unterformular zeigt die zu durchsuchenden Daten an. Alternativ können Sie statt eines Unterformulars auch ein Listenfeld oder ein ListView-Steuerelement verwenden – beides ist mit geringen änderungen verbunden, die wir an anderer Stelle erläutern.
Das Unterformular der Beispieldatenbank heißt frmArtikelFiltern. Stellen Sie für die Eigenschaft Datenherkunft dieses Formulars die Tabelle tblArtikel ein. Ziehen Sie dann alle Felder der Datenherkunft aus der Feldliste in den Detailbereich der Entwurfsansicht des Formulars. Sie brauchen diese nicht ordentlich anzuordnen, denn das Unterformular soll seine Daten ohnehin in der Datenblattansicht anzeigen. Dazu stellen Sie die Eigenschaft Standardansicht des Formulars auf den Wert Datenblatt ein (siehe Bild 1).
Bild 1: Entwurf des Unterformulars mit den zu filternden Daten
Nun müssen Sie das Formular nur noch speichern und schließen, den Rest erledigen wir vom Hauptformular auf.
Das Hauptformular der Beispieldatenbank heißt frmArtikelFiltern und nimmt zunächst nur das Unterformular auf. Wenn Sie das Hauptformular in der Entwurfsansicht geöffnet haben, ziehen Sie das Unterformular aus dem Datenbankfenster beziehungsweise aus dem Navigationsbereich in den Detailbereich des Formulars.
Es darf den Detailbereich komplett ausfüllen, die Steuerelemente zum Einstellen der Filterkriterien platzieren wir später im Formularkopf. Sollten Sie Access 2007 oder neuer verwenden (was ich hoffe), stellen Sie außerdem die Eigenschaften Horizontaler Anker und Vertikaler Anker auf Beide ein. Damit stellen Sie sicher, dass das Unterformular beim Vergrößern des Hauptformulars ebenfalls vergrößert wird.
Da das Hauptformular nicht selbst Daten anzeigt, benötigen wir die entsprechenden Elemente nicht – stellen Sie daher die Eigenschaften Trennlinien, Datensatzmarkierer und Navigationsschaltflächen auf Nein ein. Außerdem legen Sie für die Eigenschaft Automatisch zentrieren den Wert Ja und für Bildlaufleisten den Wert Nein fest.
Das Formular sieht nun wie in Bild 2 aus.
Bild 2: Haupt- und Unterformular in der Entwurfsansicht
Steuerelemente für Filterkriterien
Filterkriterien können Sie mit den verschiedensten Steuerelementen eingeben. In den meisten Fällen ist die Art des Steuerelements bereits vorgegeben. Wenn Sie beispielsweise nach dem Artikelnamen filtern möchten, verwenden Sie dazu ein Textfeld. In diesem können Sie nach Wunsch Platzhalter vordefinieren, damit nach allen Ausdrücken gesucht wird, die mit der angegebenen Zeichenkette beginnen oder enden oder die diese einfach an irgendeiner Stelle enthalten. Oder Sie überlassen dem Benutzer, die notwendigen Platzhalter Sternchen (*) oder Fragezeichen () zu platzieren.
Wenn Sie nach einem Datum filtern, setzen Sie zwei Textfelder ein, um ein Start- und gegebenenfalls noch ein Enddatum für ein Datumsbereich eingeben zu können.
Wenn Sie nach einem Feld filtern möchten, dessen Werte mit einem Nachschlagefeld ausgewählt wurden, wird es bereits interessant. Dann enthält das Nachschlagefeld in der Regel nicht den angezeigten Ausdruck als Wert, sondern den Wert des Primärschlüsselfeldes der Tabelle, aus der die Daten des Nachschlagefeldes stammen. Sie können dann auf zwei Arten nach den Daten dieses Feldes filtern: erstens nach dem Wert der gebundenen Spalte, also dem tatsächlich gespeicherten Wert, oder nach dem angezeigten Wert.
Bei der ersten Variante stellen Sie zur Eingabe des Filterkriteriums ein Kombinationsfeld zur Verfügung, das einfach alle Einträge anbietet, die auch im zu durchsuchenden Feld vorliegen. Wenn Sie also alle Artikel suchen, die zur Kategorie Getränke gehören, würden Sie im Kombinationsfeld zum Filtern den Wert Getränke auswählen.
Es kann natürlich auch sein, dass Sie alle Artikel ermitteln möchten, deren Lieferant mit dem Buchstaben A beginnt. Dies ist etwas aufwendiger, weil wir hier nicht mehr nur die Daten der Tabelle tblArtikel benötigen, sondern auch die Daten der Tabelle tblLieferanten, welche die im Kombinationsfeld angezeigten Daten liefert.
Schließlich gibt es noch die Ja/Nein-Felder. Nach Ja/Nein-Feldern zu filtern, ist komplizierter, als es scheint: Naiverweise mag man davon ausgehen, dass ein einfaches Kontrollkästchen ausreicht, um nach solchen Werten zu filtern. Damit können Sie allerdings normalerweise nur den Wert Ja oder Nein beziehungsweise Wahr oder Falsch einstellen.
Was aber, wenn die zu durchsuchende Datenherkunft alle Datensätze liefern soll, also sowohl solche mit dem Wert Ja als auch die mit dem Wert Nein
Kontrollkästchen besitzen zwar den sogenannten Dreifachstatus, aber der ist eher weniger intuitiv zu bedienen (mit drei Mausklicks durchlaufen Sie dabei die drei Werte -1 (Ja), 0 (Nein) und Null, wobei man Null mit Alle anzeigen belegen könnte.
Alternativ könnte man die drei Werte Ja, Nein und Alle auch mit einem Kombinationsfeld oder mit einer Optionsgruppe abdecken.
Bei Zahlenwerten gibt es schließlich auch verschiedene Möglichkeiten: Entweder Sie prüfen nur auf exakte übereinstimmungen oder Sie verwenden auch hier, genau wie beim Datum, zwei Textfelder zur Eingabe von Wertebereichen.
Ende des frei verfügbaren Teil. Wenn Du mehr lesen möchtest, hole Dir ...
Testzugang
eine Woche kostenlosen Zugriff auf diesen und mehr als 1.000 weitere Artikel
diesen und alle anderen Artikel mit dem Jahresabo