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.

Neues aus unseren Magazinen
Listenfeld: Reihenfolge mehrerer Einträge...

Wir haben bereits in mehreren Beiträgen beschrieben, wie Sie die individuelle Reihenfolge von Elementen einer Tabelle über den Inhalt eines Feldes etwa namens »ReihenfolgeID« einstellen können –... [mehr]

Diagramme mit gefilterten Daten

In Ausgabe 2/2019 haben wir in zwei Artikeln die modernen Diagramme von Access vorgestellt. Im vorliegenen Beitrag zeigen wir Ihnen, wie Sie diese abhängig von den in einem Formular angezeigten... [mehr]

Benutzerverwaltung mit verschlüsselten...

Wenn Sie in einer Access-Anwendung Benutzer verwalten wollen, die sich per Benutzername und Kennwort an die Anwendung anmelden, sollten Sie sehr sensibel mit den in der Anwendung gespeicherten... [mehr]

HTML-Tabellen mit fester Kopfzeile

In den vorherigen Ausgaben von Access im Unternehmen und in der aktuellen Ausgabe arbeiten wir in einigen Beiträgen mit dem Webbrowser-Steuerelement und stellen Daten, die wir mit den Bordmitteln... [mehr]

Flexible HTML-Tabellen mit fester Kopfzeile

Im Beitrag »HTML-Tabellen mit fester Kopfzeile« haben wir gezeigt, wie Sie Daten aus einer bestimmten Abfrage in einem Webbrowser-Steuerelement so anzeigen, dass die Spaltenköpfe oben fixiert... [mehr]

Berechtigungen per HTML verwalten

Im Beitrag »Benutzerverwaltung mit verschlüsselten Kennwörtern« stellen wir eine Lösung vor, in der wir die Berechtigungen von Benutzergruppen an Datenbankobjekten definieren. Dort benötigen wir... [mehr]

Benutzer und Berechtigungen ermitteln

In den Beiträgen »Benutzerverwaltung mit verschlüsselten Kennwörtern« und »Berechtigungen per HTML verwalten« haben wir die Voraussetzungen für eine Benutzerverwaltung geschaffen. Im vorliegenden... [mehr]

Zugriffsrechte mit Datenmakros

Es gibt verschiedene Möglichkeiten, auf Basis des aktuell angemeldeten Benutzers sicherzustellen, dass dieser nur die für ihn vorgesehenen Aktionen mit Daten durchführen darf – beispielsweise durch... [mehr]

Kennwörter generieren

Für den einen oder anderen Zweck möchten Sie vielleicht Kennwörter generieren oder in einer Benutzeroberfläche die Möglichkeit zum Generieren von Kennwörtern anbieten. Wenn Sie etwa Benutzer zu... [mehr]

Neuer Datensatz von Frontend zu Backend

Für manche Themen gibt es keine kurze, prägnante Überschrift. In diesem Fall wollen wir zeigen, wie Sie einen neuen Datensatz anlegen, der in einer temporären Tabelle im Frontend gespeichert wird,... [mehr]