DoCmd.ApplyFilter-Methode (Access)

Die ApplyFilter-Methode führt die ApplyFilter-Aktion 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 zum Anwenden eines Serverfilters verwenden, muss das Argument FilterName leer sein.
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 AnwendenFilter-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 die Datensätze 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 wird.

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.

Die von Ihnen angewendete Filter- und WHERE-Bedingung wird 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 (obwohl automatisch jede Sortierung angewendet wird, die Sie auf das Objekt vor dem Speichern angewendet haben).

Wenn Sie beim ersten Öffnen eines Formulars automatisch einen Filter anwenden möchten, geben Sie ein Makro an, das die ApplyFilter-Aktion oder eine Ereignisprozedur enthält, die die ApplyFilter-Methode des DoCmd-Objekts als OnOpen-Ereigniseigenschaftseinstellung des Formulars enthält. Sie können einen Filter auch mithilfe der OpenForm- oder OpenReport-Aktion oder der entsprechenden Methoden anwenden. Um einen Filter automatisch anzuwenden, wenn eine Tabelle zum ersten Mal geöffnet wird, können Sie die Tabelle mithilfe eines Makros öffnen, das die OpenTable-Aktion enthält, gefolgt von der Aktion AnwendenFilter.

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 ApplyFilter-Methode verwendet, um nur Datensätze anzuzeigen, die den Namen "King" im Feld LastName enthalten.

DoCmd.ApplyFilter , "LastName = 'King'"

Das folgende Beispiel zeigt, wie sie die ApplyFilter-Eigenschaft verwenden, um die Datensätze zu filtern, die angezeigt werden, wenn eine Umschaltfläche namens 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.