Der ACLib-FilterForm-Wizard

Wenn Sie ein Abonnement des Magazins 'Access im Unternehmen' besitzen, können Sie sich anmelden und den kompletten Artikel lesen.
Anderenfalls können Sie das Abonnement hier im Shop erwerben.

Der ACLib-FilterForm-Wizard

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.

ACLib-FilterForm-Wizard – Ansicht nach Auswahl eines Formulars

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:

Filterbedingungen und Steuerelemente einstellen

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

Falls das benötigte Steuerelement nicht im Formular enthalten ist, können sie die Checkbox Neu aktivieren. Dann wird zusätzlich zum Formularcode auch ein Steuerelement eingefügt.

Filter-Code einfügen

Nach der Definition aller benötigten Filterbedingungen wählen Sie noch die gewünschte Filtermethode aus. In unserem Beispiel soll das Unterformular strBestellListe gefiltert werden.

Bevor Sie auf Formular-Code einfügen klicken, aktivieren Sie noch FilterStringBuilder-Methoden, damit die Methoden der FilterStringBuilder-Klasse im Formular-Code verwendet werden.

Mit der Option FilterControlManager-Methoden wird die Klasse FilterControlManager für die Filtererstellung genutzt. Wenn Sie FilterStringBuilder-Methoden wählen, können Sie den erzeugten Code mit dem letzten Beispiel-Code vom Beitrag Filterbedingungen einfach zusammenstellen (www.access-im-unternehmen.de/1015) vergleichen. Sie werden feststellen, dass es darin nur geringfügige Abweichungen gibt.

Dies war die Leseprobe dieses Artikels.
Melden Sie sich an, um auf den vollständigen Artikel zuzugreifen.

Bitte geben Sie die Zeichenfolge in das nachfolgende Textfeld ein

Die mit einem * markierten Felder sind Pflichtfelder.

Ich habe die Datenschutzbestimmungen zur Kenntnis genommen.