Nehmen wir an, Sie möchten in einer Artikelverwaltung möglichst schnell alle Artikel anzeigen, die Sie von einem bestimmten Lieferanten beziehen, wissen aber nur noch, dass der Name des Lieferanten ein bestimmtes Wort wie beispielsweise „Liquids“ beinhaltet. Normalerweise müssten Sie dazu über das Menü DATENSÄTZE-FILTER-FORMULARBASIERTERFILTER das Feld „Lieferant“ mit der Zeichenfolge „*liquids*“ füllen und den Filter einschalten.
Wesentlich einfacher geht die Suche übereine Schaltfläche, einen kleinen Eingabedialog und mithilfe der wenig bekannten Access-Funktion „BuildCriteria“. Diese Funktion setzt anhand einer Suchmaske wie „*liquids*“ eine Zeichenkette zusammen, die direkt der Eigenschaft „Filter“ zugewiesen werden kann. Statt also aufwändig über das Menü und das Formular zu filtern, klicken Sie aufeine Schaltfläche, geben den Suchbegriff ein und drücken die Return-Taste. Und so können Sie diese Funktion in Ihren Formularen nutzen:
1. Öffnen Sie das Formular, für das Sie eine schnelle Filterung einsetzen möchten, im Entwurfsmodus.
2. Legen Sie im Formularfuß oder an anderer passender Stelle eine Schaltfläche mit der Bezeichnung LIEFERANTSUCHEN und dem Namen „btn-Suchen“ an.
3. Stellen Sie die Eigenschaft „BeimKlicken“ der Schaltfläche auf den Eintrag „[Ereignisprozedur]“.
4. Klicken Sie auf die Schaltfläche mit den drei Punkten, um den VBA-Editor zu öffnen.
5. Geben Sie die folgenden Anweisungen ein:
Private Sub btnSuch_Click()
Dim strEingabe As String
Dim strFilter As String
strEingabe = InputBox$
(„Suchbegriff eingeben:“,
„Suchen:“, „“)
If strEingabe = „“ Then
Me.Filter = „“
Me.FilterOn = False
Exit Sub
End If
strFilter = BuildCriteria
(„Lieferant“, dbText,
strEingabe)
Me.Filter = strFilter
Me.FilterOn = True
End Sub
„Lieferant“ ersetzen Sie dabei durch den Namen des Feldes, das durchsucht werden soll. Handelt es sich um ein numerisches Feld, eine Fließkommazahl, eine Währung, ein Memo oder ein Datum, ersetzen Sie den zweiten Parameter durch die Konstante „dbLong“, „dbDouble“, „dbCurrency“,„dbMemo“ oder „dbDate“.
Diese Anweisungen nehmen den Suchbegriff über „InputBox$()“ entgegen, lassen dann über „BuildCriteria()“ den Ausdruck für den Filter zusammensetzen und weisen ihn abschließend zu.
6. Lassen Sie das Formular über das Menü ANSICHT-FORMULARANSICHT anzeigen und testen Sie die Funktion. Um einen auf diese Art gesetzten Filter wieder aufzuheben, klicken Sie einfach auf das Symbol FILTER ENTFERNEN. Das Formular zeigt dann wieder alle Datensätze an.