Du kan bruke BrukFilter-handlingen til å bruke et filter, en spørring eller en SQL WHERE-setning på en tabell, et skjema eller en rapport for å begrense eller sortere postene i tabellen eller postene fra den underliggende tabellen eller spørringen til skjemaet eller rapporten. For rapporter kan du bare bruke denne handlingen i en makro spesifisert av rapportens VedÅpning-hendelsesegenskap.
Obs!: Du kan bruke denne handlingen til å bruke en SQL WHERE-setning bare når du bruker et serverfilter. Et server filter kan ikke brukes på postkilden til en lagret prosedyre.
Obs!: Makrohandlingen BrukFilter er ikke tilgjengelig i Access-apper.
Innstilling
Handlingen BrukFilter har følgende argumenter.
Handlingsargument |
Beskrivelse |
Filternavn |
Navnet på et filter eller en spørring som begrenser eller sorterer postene i tabellen, skjemaet eller rapporten. Du kan angi navnet på en eksisterende spørring eller et filter som har blitt lagret som en spørring, i Filternavn-boksen i Handlingsargumenter-delen i Makroverktøy-ruten. Obs!: Når du bruker denne handlingen til å bruke et serverfilter, må Filternavn-argumentet være tomt. |
Where-betingelse |
En gyldig SQL WHERE-setning (uten ordet HVOR) eller et uttrykk som begrenser postene i tabellen, skjemaet eller rapporten. Obs!: I et Where-betingelse-argumentuttrykk inneholder venstre side av uttrykket vanligvis et feltnavn fra den underliggende tabellen eller spørringen til skjemaet eller rapporten. Høyre side av uttrykket inneholder vanligvis kriterier du vil bruke på dette feltet for å begrense eller sortere postene. Vilkåret kan for eksempel være navnet på en kontroll på et annet skjema som inneholder verdien du vil postene i det første skjemaet skal samsvare med. Navnet på kontrollen skal være fullstendig, for eksempel: Skjemaer!skjemanavn!kontrollnavn Feltnavn skal være omgitt av doble anførselstegn, og strenglitteraler skal være omgitt av enkle anførselstegn. Where-betingelse-argumentet kan inneholde opptil 255 tegn. Hvis du må angi en lengre SQL WHERE-setning, bruker du BrukFilter-metoden til DoCmd-objektet i en Visual Basic for Applications-modul (VBA). Du kan angi SQL WHERE-setninger på opptil 32 768 tegn i VBA. |
Obs!: Du kan bruke Filternavn-argumentet hvis du allerede har definert et filter som gir de riktige dataene. Du kan bruke Where-betingelse-argumentet til å angi begrensningskriterier direkte. Hvis du bruker begge argumentene, bruker Access WHERE-setningen på resultatene av filteret. Du må bruke et eller begge argumentene.
Merknader
Du kan bruke et filter eller spørring på et skjema i skjemavisning eller dataarkvisning.
Filteret og WHERE-betingelsen du bruker, blir innstillingen til Filter- eller ServerFilter-egenskapen til skjemaet eller rapporten.
For tabeller og skjemaer ligner denne handlingen på å klikke Bruk filter/sortering eller Bruk serverfilter på Poster-menyen. Menykommandoen gjelder det sist opprettede filteret i tabellen eller skjemaet, mens BrukFilter-handlingen gjelder et angitt filter eller en angitt spørring.
Hvis du peker på Filter på Poster-menyen i en Access-database og deretter klikker Avansert filter/sortering etter at du har kjørt BrukFilter-handlingen, viser Avansert filter/sortering-vindu filterkriteriene du har valgt med denne handlingen.
Hvis du vil fjerne et filter og vise alle postene for en tabell eller et skjema i en Access-database, kan du bruke VisAllePoster-handlingen eller Fjern filter/sortering-kommandoen på Poster-menyen. Hvis du vil fjerne et filter i et Access-prosjekt (ADP), kan du gå tilbake til vinduet Filtrering med serverfilter etter skjema og fjerne alle filtervilkårene og deretter klikke Bruk serverfilter på Poster-menyen på verktøylinjen, eller angi egenskapen FiltrerMedServerfilterEtterSkjema til Usann (0).
Når du lagrer en tabell eller et skjema, lagrer Access ethvert filter som er definert i dette objektet, men bruker ikke filteret automatisk neste gang objektet er åpnet (selv om det automatisk bruker alle sorteringer du har brukt på objektet før det ble lagret). Hvis du vil bruke et filter automatisk når et skjema åpnes første gang, angir du en makro som inneholder BrukFilter-handlingen eller en hendelsesprosedyre som inneholder BrukFilter-metoden til DoCmd-objektet som innstillingen for VedÅpning-hendelsesegenskapen i skjemaet. Du kan også bruke et filter ved å bruke ÅpneSkjema- eller ÅpneRapport-handlingen eller de tilsvarende metodene deres. Hvis du vil bruke et filter automatisk når en tabell åpnes første gang, kan du åpne tabellen ved å bruke en makro som inneholder ÅpneTabell-handlingen, umiddelbart etterfulgt av BrukFilter-handlingen.
Eksempel
Bruke et filter ved hjelp av en makro
Følgende makro inneholder et sett med handlinger, som alle filtrerer postene for et telefonlisteskjema over kunder. Den viser bruken av BrukFilter-, VisAllePoster- og GåTilKontroll-handlinger. Den viser også bruk av betingelser for å bestemme hvilken veksleknapp i en alternativgruppe som er valgt på skjemaet. Hver rad er knyttet til en veksleknapp som velger settet med poster fra og med A, B, C og så videre, eller alle poster. Denne makroen skal knyttes til EtterOppdatering-hendelsen i alternativgruppen FirmaNavnFilter.
Betingelse |
Handling |
Argumenter: Innstilling |
Kommentar |
[FirmaNavnFilter]=1 |
BrukFilter |
Where-betingelse: [FirmaNavn] lik "[AÀÁÂÃÄ]*" |
Filter for firmanavn som begynner med A, À, Á, Â, Ã eller Ä. |
[FirmaNavnFilter]=2 |
BrukFilter |
Where-betingelse: [FirmaNavn] lik "B*" |
Filter for firmanavn som begynner med B. |
[FirmaNavnFilter]=3 |
BrukFilter |
Where-betingelse: [FirmaNavn] lik "[CÇ]*" |
Filter for firmanavn som begynner med C eller Ç. |
... Handlingsrader for D til og med Y har samme format som A til og med C ... |
|||
[FirmaNavnFilter]=26 |
BrukFilter |
Where-betingelse: [FirmaNavn] lik "[ZÆØÅ]*" |
Filter for firmanavn som begynner med Z, Æ, Ø eller Å. |
[FirmaNavnFilter]=27 |
VisAllePoster |
Vis alle poster. |
|
[RecordsetClone].[RecordCount]>0 |
GåTilKontroll |
Kontrollnavn: Firmanavn |
Hvis postene returneres for den valgte bokstaven, flytter du fokus til Firmanavn-kontrollen. |