Met de actie FilterToepassen kunt u een filter, een query of een SQL WHERE-component toepassen op een tabel, formulier of rapport om de records in de tabel of de records van de onderliggende tabel of query van het formulier of rapport te beperken of te sorteren. Voor rapporten kunt u deze actie alleen gebruiken in een macro die is opgegeven in de gebeurteniseigenschap BijOpenen van het rapport.
Opmerking: U kunt deze actie alleen gebruiken om een SQL WHERE-component toe te passen wanneer u een serverfilter toepast. Een serverfilter kan niet worden toegepast op de recordbron van een opgeslagen procedure.
Opmerking: De macroactie FilterToepassen is niet beschikbaar in web-apps van Access.
Instelling
De actie FilterToepassen heeft de volgende argumenten.
Actieargument |
Beschrijving |
Filternaam |
De naam van een filter of query waarmee de records van de tabel, het formulier of het rapport worden gesorteerd. U kunt de naam invoeren van een bestaande query of van een filter dat is opgeslagen als een query in het vak Filternaam in de sectie Actieargumenten van het deelvenster Opbouwfunctie voor Macro's. Opmerking: Wanneer u deze actie gebruikt om een serverfilter toe te passen, moet het argument Filternaam leeg zijn. |
Where-voorwaarde |
Een geldige SQL WHERE-component (zonder het woord WHERE) of een expressie waarmee de records van de tabel, het formulier of het rapport worden beperkt. Opmerking: In een argumentexpressie Where-voorwaarde bevat de linkerkant van de expressie meestal een veldnaam uit de onderliggende tabel of query voor het formulier of rapport. Aan de rechterkant van de expressie ziet u meestal de criteria die u wilt toepassen op dit veld om de records te beperken of te sorteren. De criteria kunnen bijvoorbeeld bestaan uit de naam van een besturingselement op een ander formulier dat de waarde bevat waarmee de records in het eerste formulier moeten overeenkomen. De naam van het besturingselement moet volledig zijn gekwalificeerd, bijvoorbeeld: Formulieren!formuliernaam!naambesturingselement Veldnamen moeten tussen dubbele aanhalingstekens staan en letterlijke tekenreeksen tussen enkele aanhalingstekens. De maximumlengte van het argument Where-voorwaarde is 255 tekens. Als u een langere SQL WHERE-component wilt invoeren, gebruikt u de methode FilterToepassen van het object DoCmd in een VBA-module (Visual Basic for Applications). In VBA kunt u instructies voor SQL WHERE-componenten invoeren van maximaal 32.768 tekens. |
Opmerking: U kunt het argument Filternaam gebruiken als u al een filter hebt gedefinieerd waarmee de gewenste gegevens worden opgehaald. U kunt het argument Where-voorwaarde gebruiken om de beperkingscriteria rechtstreeks in te voeren. Als u beide argumenten gebruikt, wordt in Access de WHERE-component toegepast op de resultaten van het filter. U moet een of beide argumenten gebruiken.
Opmerkingen
U kunt een filter of query toepassen op een formulier in de formulierweergave of gegevensbladweergave.
Het filter dat en de WHERE-voorwaarde die u toepast, worden de instelling van de eigenschap Filter of Serverfilter van het formulier of rapport.
Voor tabellen en formulieren is deze actie vergelijkbaar met het klikken op Filter/sorteervolgorde toepassen of Serverfilter toepassen in het menu Records. Met de menuopdracht wordt het meest recent gemaakte filter toegepast op de tabel of het formulier, terwijl met de actie FilterToepassen een opgegeven filter of query wordt toegepast.
Als u in een Access-database Filter aanwijst in het menu Records en dan op Geavanceerde filter-/sorteeropties klikt nadat u de actie FilterToepassen hebt uitgevoerd, worden in venster Geavanceerde filter-/sorteeropties de filtercriteria weergegeven die u met deze actie hebt geselecteerd.
Als u een filter wilt verwijderen en alle records voor een tabel of formulier in een Access database wilt weergeven, kunt u de actieAllerecords weergeven of de opdracht Filter/sorteren verwijderen in het menu Records gebruiken. Als u een filter in een Access-project (.adp) wilt verwijderen, gaat u terug naar het venster serverformulierfilter en verwijdert u alle filtercriteria en klikt u vervolgens op Serverfilter toepassen in het menu Records op de werkbalk of stelt u de eigenschap ServerFilterByForm in op False (0).
Wanneer u een tabel of formulier opslaat, wordt elk filter dat momenteel in dat object is gedefinieerd, opgeslagen, maar wordt het filter niet automatisch toegepast wanneer het object de volgende keer wordt geopend (hoewel hiermee automatisch een sortering wordt toegepast die u hebt toegepast op het object voordat het werd opgeslagen). Als u automatisch een filter wilt toepassen wanneer een formulier voor het eerst wordt geopend, geeft u een macro met de actie Filter toepassen of een gebeurtenisprocedure met de methode ApplyFilter van het object DoCmd op als de eigenschap Eigenschap OnOpen van het formulier. U kunt ook een filter toepassen met behulp van de actie OpenForm of Rapportopenen , of de bijbehorende methoden. Als u automatisch een filter wilt toepassen wanneer een tabel voor het eerst wordt geopend, kunt u de tabel openen met behulp van een macro met de actie Tabelopenen , gevolgd door de actie Filter toepassen .
Voorbeeld
Een filter toepassen met een macro
De volgende macro bevat een reeks acties, waarmee de records voor een formulier Telefoonlijst klanten worden gefilterd. Hierin kunt u het gebruik van de acties FilterToepassen, AlleRecordsWeergeven en NaarBesturingselementGaan bekijken. Daarnaast ziet u hoe voorwaarden worden gebruikt om te bepalen welke wisselknop in een groepsvak is geselecteerd op het formulier. Elke actierij is gekoppeld aan een wisselknop waarmee de set records wordt geselecteerd die begint met A, B, C enzovoort of alle records. Deze macro moet worden gekoppeld aan de gebeurtenis AfterUpdate van het groepsvak Bedrijfsnaamfilter.
Voorwaarde |
Actie |
Argumenten: instelling |
Opmerking |
[Bedrijfsnaamfilters] = 1 |
FilterToepassen |
WHERE-voorwaarde: [Bedrijfsnaam] Like "[AÀÁÂÃÄ]*" |
Filteren op bedrijfsnamen die beginnen met A, À, Á, Â, Ã of Ä. |
[Bedrijfsnaamfilters] = 2 |
FilterToepassen |
WHERE-voorwaarde: [Bedrijfsnaam] Like "B*" |
Filteren op bedrijfsnamen die beginnen met B. |
[Bedrijfsnaamfilters] = 3 |
FilterToepassen |
WHERE-voorwaarde: [Bedrijfsnaam] Like "[CÇ]*" |
Filteren op bedrijfsnamen die beginnen met C of Ç. |
... Actierijen voor D tot en met Y hebben dezelfde opmaak als A tot en met C ... |
|||
[Bedrijfsnaamfilters] = 26 |
FilterToepassen |
WHERE-voorwaarde: [Bedrijfsnaam] Like "[ZÆØÅ]*" |
Filteren op bedrijfsnamen die beginnen met Z, Æ, Ø of Å. |
[Bedrijfsnaamfilters] = 27 |
AlleRecordsWeergeven |
Alle records weergeven. |
|
[RecordsetClone].[RecordCount]>0 |
NaarBesturingselementGaan |
Naam van besturingselement: Bedrijfsnaam |
Als er records worden geretourneerd voor de geselecteerde letter, kunt u de focus verplaatsen naar het besturingselement Bedrijfsnaam. |