ApplyFilter-Makroaktion
Sie können die ApplyFilter- 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 einzuschränken oder zu sortieren Prüfbericht. 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 verwenden, um eine SQL-WHERE-Klausel nur anzuwenden, wenn Sie einen Serverfilter anwenden. Ein Serverfilter kann nicht auf die Datensatzquelle einer gespeicherten Prozedur angewendet werden.
Hinweis: Die Makroaktion ApplyFilter ist in Access-Web-Apps nicht verfügbar.
Einstellung
Die ApplyFilter- Aktion hat die folgenden Argumente.
Handlungsargument | Beschreibung |
Filtername | Der Name eines Filters oder einer Abfrage, die 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 Makrogenerator eingeben. Hinweis: Wenn Sie diese Aktion verwenden, um einen Serverfilter anzuwenden, muss das Argument Filtername leer sein. |
Wo Zustand | 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-Bedingung -Argumentausdruck enthält die linke Seite des Ausdrucks normalerweise einen Feldnamen aus der zugrunde liegenden Tabelle oder Abfrage für das Formular oder den Bericht. Die rechte Seite des Ausdrucks enthält normalerweise 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 vollständig qualifiziert sein, zum Beispiel: Formulare ! Formularname ! Steuerungsname Feldnamen sollten in doppelte Anführungszeichen und Zeichenfolgenliterale in einfache Anführungszeichen gesetzt werden. Die maximale Länge des Where Condition- Arguments beträgt 255 Zeichen. Wenn Sie eine längere SQL-WHERE-Klausel eingeben müssen, verwenden Sie die ApplyFilter- Methode des DoCmd- Objekts in einem Visual Basic for Applications (VBA)-Modul. Sie können SQL-WHERE-Klauselanweisungen mit bis zu 32.768 Zeichen in VBA eingeben. |
Hinweis: Sie können das Filtername -Argument verwenden, wenn Sie bereits einen Filter definiert haben, der die entsprechenden Daten bereitstellt. Sie können das Argument Where Condition verwenden, um die Einschränkungskriterien direkt einzugeben. Wenn Sie beide Argumente verwenden, wendet Access die WHERE-Klausel auf die Ergebnisse des Filters an. Sie müssen eines oder beide Argumente verwenden.
Bemerkungen
Sie können einen Filter oder eine Abfrage auf ein Formular in der Formularansicht oder Datenblattansicht anwenden.
Der Filter und die WHERE-Bedingung, die Sie anwenden, werden zur Einstellung der Filter- oder ServerFilter - Eigenschaft des Formulars oder Berichts.
Bei Tabellen und Formularen ähnelt diese Aktion dem Klicken auf Filter/Sortierung anwenden oder Serverfilter anwenden im Menü Datensätze . Der Menübefehl wendet den zuletzt erstellten Filter auf die Tabelle oder das Formular an, während die ApplyFilter- Aktion einen bestimmten Filter oder eine bestimmte Abfrage anwendet.
Wenn Sie in einer Access-Datenbank im Menü „ Datensätze " auf „ Filter " zeigen und dann auf „ Erweiterter Filter/Sortierung " klicken, nachdem Sie die Aktion „AnwendenFilter" ausgeführt haben, zeigt das Fenster „Erweiterter Filter/Sortierung" die Filterkriterien an, die Sie mit dieser Aktion ausgewählt haben.
Um einen Filter zu entfernen und alle Datensätze für eine Tabelle oder ein Formular in einer Access-Datenbank anzuzeigen, können Sie die Aktion „ Alle Datensätze anzeigen" oder den Befehl „ Filter/Sortierung entfernen " im Menü „ Datensätze " verwenden. Um einen Filter in einem Access-Projekt (.adp) zu entfernen, können Sie zum Fenster „Formularbasierter Serverfilter" zurückkehren und alle Filterkriterien entfernen und dann auf der Symbolleiste im Menü „ Datensätze " auf „Serverfilter anwenden " klicken oder die Eigenschaft „ServerFilterByForm" auf „ False " ( 0).
Wenn Sie eine Tabelle oder ein Formular speichern, speichert Access alle derzeit in diesem Objekt definierten Filter, 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 mit der ApplyFilter- Aktion oder eine Ereignisprozedur mit der ApplyFilter- Methode des DoCmd- Objekts als OnOpen- Ereigniseigenschaftseinstellung des Formulars an. Sie können einen Filter auch anwenden, indem Sie die Aktion OpenForm oder OpenReport oder ihre entsprechenden Methoden verwenden. Um einen Filter automatisch anzuwenden, wenn eine Tabelle zum ersten Mal geöffnet wird, können Sie die Tabelle öffnen, indem Sie ein Makro verwenden, das die OpenTable -Aktion enthält, unmittelbar gefolgt von der ApplyFilter- Aktion.
Beispiel
Wenden Sie einen Filter mithilfe eines Makros an
Das folgende Makro enthält eine Reihe von Aktionen, von denen jede die Datensätze für ein Kunden-Telefonlistenformular filtert. Es zeigt die Verwendung der Aktionen ApplyFilter , ShowAllRecords und GoToControl . Es zeigt auch die Verwendung von Bedingungen, um zu bestimmen, welche Umschaltfläche in einer Optionsgruppe auf dem Formular ausgewählt wurde. Jede Aktionszeile ist mit einer Umschaltfläche verknüpft, die den Satz von Datensätzen auswählt, die mit A, B, C usw. beginnen, oder alle Datensätze. Dieses Makro sollte an das AfterUpdate- Ereignis der CompanyNameFilter-Optionsgruppe angehängt werden.
Kondition | Aktion | Argumente: Einstellung | Kommentar |
[CompanyNameFilters]=1 | Filter anwenden | Wo Bedingung: [CompanyName] Wie "[AÀÁÂÃÄ]*" | Filtern Sie nach Firmennamen, die mit A, À, Á, Â, Ã oder Ä beginnen. |
[CompanyNameFilters]=2 | Filter anwenden | Wo Bedingung: [CompanyName] Wie "B*" | Filtern Sie nach Firmennamen, die mit B beginnen. |
[CompanyNameFilters]=3 | Filter anwenden | Wo Bedingung: [CompanyName] Wie "[CÇ]*" | Filtern Sie nach Firmennamen, die mit C oder Ç beginnen. |
... Aktionszeilen für D bis Y haben das gleiche Format wie A bis C ... | |||
[CompanyNameFilters]=26 | Filter anwenden | Wo Bedingung: [CompanyName] Wie "[ZÆØÅ]*" | Filtern Sie nach Firmennamen, die mit Z, Æ, Ø oder Å beginnen. |
[CompanyNameFilters]=27 | Alle Datensätze anzeigen | Alle Datensätze anzeigen. | |
[RecordsetClone].[RecordCount]>0 | GoToControl | Steuerungsname: Firmenname | Wenn Datensätze für den ausgewählten Buchstaben zurückgegeben werden, verschieben Sie den Fokus auf das Steuerelement CompanyName. |
No comments:
Post a Comment