In Access-Formularen wird regelmäßig Code zum dynamischen Erzeugen eines Filterausdrucks eingebaut. Wie Sie diesen Code übersichtlich gestalten, steht im Beitrag „SQL-Text für Filterbedingungen“ (S. 46). Damit die Filter-Klassen aus diesem Beitrag genutzt werden können, ist Code im Formular erforderlich. Mit diesem Code wird die Filterung ausgelöst und der Filterausdruck erzeugt. Außerdem müssen Sie die Klassen in ihre Anwendung einfügen. Diese Aufgaben nimmt Ihnen der ACLib-FilterForm-Wizard ab.
ACLib-FilterForm-Wizard
Der ACLib-FilterForm-Wizard ist ein Access-Add-In und wird mit dem Access-Add-In-Manager von Access in-stalliert. über den Add-In-Menüeintrag ACLib FilterForm Wizard öffnen Sie den Assistenten.
Nach Auswahl des Filterformulars wird der Assistent wie in Bild 1 dargestellt. Mit den drei Dropdown-Feldern im rechten oberen Bereich besteht die Möglichkeit, die Steuerelemente zum Anwenden der Filter, zum Löschen aller Filterwerte und das Steuerelement zum Aktivieren der automatischen Filterung festzulegen.
Bild 1: ACLib-FilterForm-Wizard – Ansicht nach Auswahl eines Formulars
Im mittleren Bereich FilterControls werden die Filterbedingungen und die dazugehörigen Steuerelemente mit den Filterwerten definiert. Im unteren Bereich sehen Sie, ob die benötigten Klassen bereits in Ihrer Anwendung sind. Sie können diese Klasse über den Assistent vorab in Ihre Anwendung einfügen, wenn Sie auf Klassen installieren klicken. Die Klassen werden automatisch eingefügt, sobald der Filtercode im Formular erstellt wird.
Wählen Sie in UseFilter-Methode die Code-Variante für die UseFilter-Prozedur. Die Auswahl Filter-Variante definiert die im Filterformular anzuwendende Klasse. Im Dropdown-Feld SQL-Dialekt legen Sie die benötigten SQL-Formate fest.
Mit Klick auf Formular-Code einfügen wird der Code zum Filtern in das ausgewählte Filterformular eingefügt.
Filterformular erstellen
Bevor Sie den FilterForm-Wizard öffnen, erstellen Sie ein Formular mit allen benötigten Steuerelementen zur Filterwerteingabe, zum Auslösen der Filter und so weiter. Falls Sie die gefilterten Daten in einem Unterformular darstellen wollen, fügen Sie ein Unterformularsteuerelement in das Formular ein. Vergessen Sie nicht, die Steuerelemente passend zu benennen.
Ein vorbereitetes Formular zum Ausprobieren des Assistenten ist in der Beispiel-Anwendung enthalten. Erstellen Sie eine Kopie vom Formular frmBestellUebersicht___00_ohne_Code. Für diesen Beitrag wurde die Kopie unter dem Namen frmBestellUebersicht___05_Variante_ueber_Wizard gespeichert.
Filterbedingungen definieren
Nach dieser Vorbereitung öffnen Sie den Assistenten und wählen Ihr Filterformular aus. Im Anschluss stellen Sie die Filterbedingungen und die benötigten Steuerelemente, wie in Bild 2 gezeigt, ein. Je Filterbedingung müssen Sie das zu filternde Datenfeld, den Datentyp, den gewünschten Vergleichsoperator und das Steuerelement mit dem Filterwert definieren. Die zur ersten Filterbedingung in der Abbildung passende Code-Zeile sehen Sie hier:
Bild 2: Filterbedingungen und Steuerelemente einstellen
.Add "KundenCode", SQL_Text, SQL_Like, Me.fctlKundenCode.Value
Wenn Sie die Checkbox xxx* aktivieren, wird im Code statt SQL_Like der Ausdruck SQL_Like + SQL_Add_WildCardSuffix eingefügt. Damit wird bei der Filterstring-Erstellung der Wert am Ende mit * ergänzt.
Neben dem Auswahlfeld des Filtersteuerelements ist ein Textfeld zur Eingabe weiterer Steuerelementnamen. Dieses Textfeld benötigen Sie zum Definieren einer Filterbedingung, bei der mehr als zwei Filtersteuerelemente benötigt werden.
Im Beispielformular werden aus den Steuer-elementen für die Datumsfilter Between-Filterausdrücke erstellt.
Aus dem Eintrag der Between-Filterbedingung in Bild 3 entsteht die folgende Code-Zeile:
.Add "Bestelldatum", SQL_Date, SQL_Between, _ Me.fctlBestelldatumAb.Value, _ Me.fctlBestelldatumBis.Value
Ende des frei verfügbaren Teil. Wenn Du mehr lesen möchtest, hole Dir ...
den kompletten Artikel im PDF-Format mit Beispieldatenbank
diesen und alle anderen Artikel mit dem Jahresabo