Makrohandlingen AnvendFilter

Du kan bruge handlingen AnvendFilter til at anvende en filter, en forespørgsel eller en SQL WHERE-delsætning til en tabel, formular eller Rapport for at begrænse eller sortere posterne i tabellen eller i formularens eller rapportens underliggende tabel eller forespørgsel. For rapporter kan du kun bruge denne handling i en makro, som er angivet i hændelsesegenskaben VedÅbning for rapporten.

Bemærk: Du kan kun bruge denne handling til at anvende en SQL WHERE-delsætning, når du anvender et serverfilter. Et serverfilter kan ikke anvendes på en lagret procedures postkilde.

Bemærk: Makrohandlingen AnvendFilter findes ikke i Access-webapps.

Indstilling

Handlingen AnvendFilter har følgende argumenter:

Handlingsargument

Beskrivelse

Filternavn

Navnet på et filter eller en forespørgsel, der begrænser eller sorterer posterne i tabellen, formularen eller rapporten. Du kan angive navnet på enten en eksisterende forespørgsel eller et filter, der er gemt som en forespørgsel, i feltet Filternavn i afsnittet Handlingsargumenter i ruden Makrogenerator.

Bemærk: Når du bruger denne handling til at anvende et serverfilter, skal argumentet Filternavn være tomt.

Where-betingelse

En gyldig SQL WHERE-delsætning (uden ordet WHERE) eller en udtryk, der begrænser posterne i tabellen, formularen eller rapporten.

Bemærk: I et argumentudtryk med en Where-betingelse indeholder den venstre side af udtrykket typisk et feltnavn fra formularens eller rapportens underliggende tabel eller forespørgsel. Den højre side af udtrykket indeholder typisk den kriterier, du vil anvende på dette felt for at begrænse eller sortere posterne. Kriteriet kan f.eks. være navnet på et kontrolelement i en anden formular, der indeholder den værdi, du vil have posterne i den første formular til at svare til. Navnet på kontrolelementet skal være fuldt kvalificeret, f.eks.:

Formularer!formularnavn!kontrolelementnavn

Feltnavne skal angives i dobbelte anførselstegn, og strengkonstanttegn skal skrives i enkelte anførselstegn.

Argumentet Where-betingelse kan maksimalt bestå af 255 tegn. Hvis du skal indtaste en længere SQL WHERE-delsætning, skal du bruge metoden AnvendFilter fra objektet DoCmd i et VBA-modul (Visual Basic for Applications). Du kan indtaste SQL WHERE-delsætninger på op til 32.768 tegn i VBA.


Bemærk: Du kan bruge argumentet Filternavn, hvis du allerede har defineret et filter, der indeholder de relevante data. Du kan bruge argumentet Where-betingelse til at angive begrænsningskriterierne direkte. Hvis du bruger begge argumenter, anvender Access WHERE-delsætningen på resultaterne af filteret. Du skal bruge én eller begge argumenter.

Bemærkninger

Du kan anvende et filter eller forespørgsel til en formular i formularvisninger eller dataarkvisning.

Det filter og den WHERE-betingelse, du anvender, bliver indstillingen for formularens eller rapportens Filter- eller Serverfilter-egenskab.

For tabeller og formularer svarer denne handling til at klikke på Anvend filter/sortering eller Anvend serverfilter i menuen Poster. Menukommandoen anvender det senest oprettede filter til tabellen eller formularen, hvorimod handlingen AnvendFilter anvender et bestemt filter eller en bestemt forespørgsel.

Hvis du peger på Filter i menuen Poster i en Access-database og derefter klikker på Avanceret filter/sortering, når du har kørt handlingen AnvendFilter, viser vindue til avanceret filtrering/sortering de filterkriterier, du har valgt med denne handling.

For at fjerne et filter og vise alle posterne i en tabel eller formular i en Access-database kan du bruge handlingen VisAllePoster eller kommandoen Fjern filter/sortering i menuen Poster. For at fjerne et filter i et Access-projekt (.adp) kan du vende tilbage til vinduet Serverfilter efter formular, fjerne alle filterkriterier og derefter klikke på Anvend serverfilter i menuen Poster på værktøjslinjen eller angive egenskaben FiltrerMedServerfilterEfterFormular som Falsk (0).

Når du gemmer en tabel eller formular, gemmer Access de filtre, som aktuelt er defineret i objektet, men anvender ikke automatisk filteret, næste gang objektet åbnes (Access anvender dog automatisk ethvert filter, du anvendte på objektet, inden det blev gemt). Hvis du vil anvende et filter automatisk, når en formular åbnes første gang, skal du angive en makro med handlingen AnvendFilter eller en hændelsesprocedure med metoden AnvendFilter fra objektet DoCmd som indstilling for hændelsesegenskaben VedÅbning for formularen. Du kan også anvende et filter ved hjælp af handlingen ÅbnFormular eller ÅbnRapport eller deres tilsvarende metoder. Hvis du vil anvende et filter automatisk, når en tabel åbnes første gang, kan du åbne tabellen ved hjælp af en makro med handlingen ÅbnTabel, umiddelbart efterfulgt af handlingen AnvendFilter.

Eksempel

Anvende et filter ved hjælp af en makro

Følgende makro indeholder et sæt handlinger, som hver især filtrerer posterne for en Kundetelefonliste-formular. Den viser brugen af handlingerne AnvendFilter, VisAllePoster og GåTilKontrolelement. Den viser også brugen af betingelser til at bestemme hvilken til/fra-knap i en gruppeboks, der er blevet valgt i formularen. Hver handlingsrække er knyttet til en til/fra-knap, som vælger det sæt poster, der starter med A, B, C osv., eller alle poster. Denne makro skal knyttes til hændelsen EfterOpdatering i gruppeboksen Firmanavnefilter.

Betingelse

Handling

Argumenter: Indstilling

Kommentar

[Firmanavnefiltre] =1

AnvendFilter

Where-betingelse: [Firmanavn] Like "[AÀÁÂÃÄ]*"

Filtrere efter firmanavne, der starter med A, À, Á, Â, Ã eller Ä.

[Firmanavnefiltre] =2

AnvendFilter

Where-betingelse: [Firmanavn] Like "B*"

Filtrere efter firmanavne, der starter med B.

[Firmanavnefiltre] =3

AnvendFilter

Where-betingelse: [Firmanavn] Like "[CÇ]*"

Filtrere efter firmanavne, der starter med C eller Ç.

... Handlingsrækker for D til Y har samme format som A til C ...

[Firmanavnefiltre] =26

AnvendFilter

Where-betingelse: [Firmanavn] som "[ZÆØÅ]*"

Filtrere efter firmanavne, der starter med Z, Æ, Ø eller Å.

[Firmanavnefiltre] =27

VisAllePoster

Vis alle poster.

[RecordsetClone].[RecordCount]>0

GåTilKontrolelement

Kontrolelementnavn: Firmanavn

Hvis der returneres poster for det valgte bogstav, skal du flytte fokus til kontrolelementet FirmaNavn.


Del Facebook Facebook Twitter Twitter Mail Mail

Var disse oplysninger nyttige?

Fantastisk! Har du mere feedback?

Hvordan kan vi forbedre det?

Tak for din feedback!

×