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 1305_FilterkriterienFuerFormulare.mdb.
Filtern nach Zahlenfeldern
Für das Filtern nach Zahlen haben wir der übersichtlichkeit halber ein neues Formular samt Unterformular angelegt. Diese heißen frmArtikelFilternZahl und sfmArtikelFilternZahl.
Die Schaltfläche zum Leeren des Filters haben wir gegenüber dem vorherigen Beispiel beibehalten (siehe Bild 1). Lediglich die dadurch ausgelöste Prozedur referenziert hier ein anderes Unterformular (siehe Listing 1).
Bild 1: Neues Formular für die Beispiele zum Filtern von Datensätzen nach Zahlenwerten
Das erste Suchfeld soll den Inhalt des Feldes Lagerbestand untersuchen und genau passende Datensätze zurückliefern. Wenn der Benutzer also beispielsweise den Wert 0 einträgt und die Eingabetaste betätigt, sollen nur die aufgebrauchten Artikel erscheinen (siehe Bild 2). Dies erledigen Sie mit der Ereignisprozedur aus Listing 2.
Bild 2: Filtern nach dem Lagerbestand
Zahlenbereiche untersuchen
Im zweiten Beispiel wollen wir alle Artikel finden, deren Einzelpreis in einem bestimmten Bereich liegt – also etwa über 10 Euro, unter 20 Euro oder zwischen 5 und 15 Euro.
Dazu richten Sie zwei Textfelder namens txtPreisMin und txtPreisMax ein.
Außerdem soll der Benutzer die Suche durch einen Mausklick auf eine Schaltfläche starten können – diese heißt cmdPreisbereiche (siehe Bild 3).
Bild 3: Filtern nach Mindest- und Höchstpreis
Die Schaltfläche erhält eine Ereignisprozedur, die zunächst nur vollständige Angaben verarbeiten soll, also die Angabe sowohl des minimalen als auch des maximalen Preises.
Die Ereignisprozedur sieht wie in Listing 3 aus. Sie setzt zunächst ein Filterkriterium zusammen, dass für die Angaben aus Bild 4 etwa so aussieht:
Bild 4: Preisfilter im Einsatz
Einzelpreis BETWEEN 10 AND 12
Am Ergebnis können Sie gleich ablesen, dass BETWEEN 10 AND 12 auch alle Datensätze liefert, deren Wert im Feld Einzelpreis genau 10 oder 12 beträgt.
Nun wäre es noch praktisch, wenn der Benutzer nur das erste Textfeld füllen könnte, wenn er alle Artikel mit Einzelpreisen über dem angegebenen Wert erhalten möchte – ohne Obergrenze. Oder er nutzt das zweite Textfeld, um nur die Obergrenze zu definieren. Wenn Sie dies mit der vorhandenen Prozedur ausprobieren, erhalten Sie die Fehlermeldung aus Bild 5.
Bild 5: Fehler beim Auslassen eines Parameters
Dem schaffen wir durch die änderung aus Listing 4 bei der Zusammenstellung des Filterkriteriums Abhilfe.
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