Freigeben über


ApplyFilter-Makroaktion

Gilt für: Access 2013, Office 2013

Sie können die AnwendenFilter-Aktion verwenden, 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.

Hinweis

Sie können diese Aktion nur für das Anwenden einer SQL WHERE-Klausel verwenden, wenn Sie einen Serverfilter anwenden. Ein Serverfilter kann nicht auf die gespeicherte Datensatzquelle einer Prozedur angewendet werden.

Einstellung

Die AnwendenFilter-Aktion hat die folgenden Argumente.

Aktionsargument

Beschreibung

Filtername

Der Name eines Filters oder einer Abfrage, der die Datensätze der Tabelle, des Formulars oder des Berichts einschränkt oder sortiert. Sie können den Namen einer vorhandenen Abfrage oder eines Filters, der als Abfrage gespeichert wurde, in das Feld Filtername im Abschnitt Aktionsargumente des Bereichs Makro-Generator eingeben.

HINWEIS: Wenn Sie diese Aktion verwenden, um einen Serverfilter anzuwenden, muss das Argument Filtername leer sein.

Bedingung

Eine gültige SQL WHERE-Klausel (ohne das Wort WHERE) oder ein Ausdruck, der die Datensätze der Tabelle, des Formulars oder des Berichts einschränkt.

HINWEIS: In einem Where Condition-Argumentausdruck enthält die linke Seite des Ausdrucks in der Regel einen Feldnamen aus der zugrunde liegenden Tabelle oder Abfrage für das Formular oder den Bericht. Die rechte Seite des Ausdrucks enthält in der Regel die Kriterien, die Sie auf dieses Feld anwenden möchten, um die Datensätze einzuschränken oder zu sortieren. Die Kriterien können beispielsweise der Name eines Steuerelements in einem anderen Formular sein, das den Wert enthält, mit dem die Datensätze im ersten Formular übereinstimmen sollen. Der Name des Steuerelements sollte voll qualifiziert sein, z. B.:

Formulare! formname! controlname Feldnamen sollten in doppelte Anführungszeichen und Zeichenfolgenliterale in einfache Anführungszeichen eingeschlossen werden. Das Argument Where Condition darf maximal 255 Zeichen enthalten. Verwenden Sie die ApplyFilter-Methode des DoCmd-Objekts in einem VBA-Modul (Visual Basic für Applikationen), wenn Sie eine längere SQL WHERE-Klausel eingeben müssen. Sie können SQL WHERE-Klauselanweisungen in VBA mit bis zu 32.768 Zeichen eingeben.

Hinweis

[!HINWEIS] Sie können das Argument Filtername verwenden, wenn Sie bereits einen Filter definiert haben, der die entsprechenden Daten bereitstellt. Mit dem Argument "WhereCondition" können Sie die Eingrenzungskriterien direkt eingeben. Wenn Sie beide Argumente verwenden, wendet Microsoft Office Access 2007 die WHERE-Klausel auf die Ergebnisse des Filtervorgangs an. Sie müssen mindestens eines der Argumente verwenden.

Hinweise

Sie können einen Filter oder eine Abfrage auf ein Formular in der Formularansicht oder in der Datenblattansicht anwenden.

Der angewendete Filter und die WHERE-Bedingung werden zur Einstellung der Filter- oder Serverfilter-Eigenschaft des Formulars oder des Berichts.

Für Tabellen und Formulare ist diese Aktion mit dem Klicken auf Filter/Sortierung anwenden oder Serverfilter anwenden im Menü Datensätze vergleichbar. Der Menübefehl wendet den zuletzt erstellten Filter auf die Tabelle oder das Formular an, wohingegen die AnwendenFilter -Aktion einen angegebenen Filter oder eine angegebene Abfrage anwendet.

In an Access database, if you point to Filter on the Records menu and then click Advanced Filter/Sort after running the ApplyFilter action, the Advanced Filter/Sort window shows the filter criteria you have selected with this action.

To remove a filter and display all of the records for a table or form in an Office Access 2007 database, you can use the ShowAllRecords action or the Remove Filter/Sort command on the Records menu. To remove a filter in an Access project (.adp), you can return to the Server Filter By Form window and remove all filter criteria and then click Apply Server Filter on the Records menu on the toolbar, or set the ServerFilterByForm property to False (0).

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 angewendet haben, bevor es gespeichert wurde). 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 .

Beispiel

Im folgenden Beispiel wird gezeigt, wie Sie die ApplyFilter-Aktion verwenden, um das FrmFoods-Formular beim Öffnen zu filtern.

Der Beispielcode stammt von:Microsoft Access 2010 Programmer's Reference.

    OpenForm
        Form Name sfrmFoods
        View Form
        Filter Name
        Where Condition
        Data Mode
        Window Mode Normal
    
    ApplyFilter
        Filter Name
        Where Condition=[display_name] Link "*cheese*"
        Control Name