Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Die Methode ApplyFilter führt die Aktion ApplyFilter in Visual Basic aus.
Syntax
Ausdruck. ApplyFilter (FilterName, WhereCondition, ControlName)
expression Eine Variable, die ein DoCmd-Objekt darstellt.
Parameter
| Name | Erforderlich/Optional | Datentyp | Beschreibung |
|---|---|---|---|
| FilterName | Optional | Variant | Ein Zeichenfolgenausdruck, der einen gültigen Namen eines Filters oder einer Abfrage in der aktuellen Datenbank repräsentiert. Wenn Sie diese Methode verwenden, um einen Serverfilter anzuwenden, muss das Argument FilterName leer bleiben. |
| WhereCondition | Optional | Variant | Ein Zeichenfolgenausdruck, der eine gültige SQL WHERE-Klausel ohne das Wort WHERE repräsentiert. |
| ControlName | Optional | Variant |
Bemerkungen
Verwenden Sie die ApplyFilter-Aktion, um einen Filter, eine Abfrage oder eine SQL WHERE-Klausel auf eine Tabelle, ein Formular oder einen Bericht anzuwenden, um die Datensätze in der Tabelle oder den Datensätzen aus der zugrunde liegenden Tabelle oder Abfrage des Formulars oder Berichts einzuschränken oder zu sortieren. Für Berichte können Sie diese Aktion nur in einem Makro verwenden, das durch die OnOpen-Ereigniseigenschaft des Berichts angegeben ist.
Verwenden Sie diese Aktion, um eine SQL WHERE-Klausel nur beim Anwenden eines Serverfilters anzuwenden. Dabei kann ein Serverfilter nicht auf die Datensatzquelle einer gespeicherten Prozedur angewendet werden.
Hinweis
Verwenden Sie das Argument FilterName, wenn Sie bereits einen Filter definiert haben, der die entsprechenden Daten bereitstellt. Verwenden Sie das Argument WhereCondition, um die Einschränkungskriterien direkt einzugeben. Wenn Sie beide Argumente verwenden, wendet Microsoft Access die WHERE-Klausel auf die Filterergebnisse an. Es muss mindestens eines der Argumente verwendet werden.
Ein Filter oder eine Abfrage kann in der Ansicht "Formular" oder "Datenblatt" auf ein Formular angewendet werden.
Der angewendete Filter und die WHERE-Bedingung werden zur Einstellung der Filter-Eigenschaft des Formulars oder der ServerFilter-Eigenschaft des Berichts.
Wenn Sie eine Tabelle oder ein Formular speichern, speichert Access alle Filter, die derzeit in diesem Objekt definiert sind, wendet den Filter jedoch nicht automatisch an, wenn das Objekt das nächste Mal geöffnet wird (es wird jedoch automatisch jede Sortierung angewendet, die Sie vor dem Speichern auf das Objekt angewendet haben).
Wenn Sie einen Filter automatisch anwenden möchten, wenn ein Formular zum ersten Mal geöffnet wird, geben Sie ein Makro mit der ApplyFilter-Aktion oder eine Ereignisprozedur an, die die ApplyFilter-Methode des DoCmd-Objekts als OnOpen Ereigniseigenschaftseinstellung des Formulars enthält. Sie können einen Filter auch mithilfe der Aktion OpenForm oder OpenReport oder deren entsprechenden Methoden anwenden. Um einen Filter automatisch anzuwenden, wenn eine Tabelle zum ersten Mal geöffnet wird, können Sie die Tabelle mit einem Makro öffnen, das die Aktion OpenTable enthält, gefolgt von der Aktion ApplyFilter.
Sie müssen mindestens eines der beiden Argumente der Methode ApplyFilter einbinden. Wenn Sie für beide Argumente einen Wert eingeben, wird das Argument WhereCondition auf den Filter angewendet.
Die maximale Länge des WhereCondition-Arguments beträgt 32.768 Zeichen (im Gegensatz zum WhereCondition-Aktionsargument im Makrofenster, dessen Länge auf maximal 256 Zeichen beschränkt ist).
Beispiel
Im folgenden Beispiel wird die Methode ApplyFilter verwendet, um nur Datensätze anzuzeigen, die im Feld LastName den Namen „King“ enthalten.
DoCmd.ApplyFilter , "LastName = 'King'"
Im folgenden Beispiel wird gezeigt, wie Sie die ApplyFilter-Eigenschaft verwenden, um die Datensätze zu filtern, die angezeigt werden, wenn eine Umschaltfläche mit dem Namen tglFilter ausgewählt wird.
Private Sub tglFilter_Click()
With tglFilter
If .Value = True Then
.Caption = "P/T"
.StatusBarText = "only full-timers"
DoCmd.ApplyFilter , "[Hours]=40"
ElseIf .Value = False Then
.Caption = "All"
.StatusBarText = "only part-timers"
DoCmd.ApplyFilter , "[Hours]<40"
Else
.Caption = "F/T"
.StatusBarText = "all employees"
DoCmd.ShowAllRecords
.SetFocus 'to activate the button's statusbar-text
End If
End With
End Sub
Support und Feedback
Haben Sie Fragen oder Feedback zu Office VBA oder zu dieser Dokumentation? Unter Office VBA-Support und Feedback finden Sie Hilfestellung zu den Möglichkeiten, wie Sie Support erhalten und Feedback abgeben können.