Du kan bruge makrohandlingen SøgEfterPost i Access-skrivebordsdatabaser til at søge efter en bestemt post i en tabel, forespørgsel, formular eller rapport.
Indstilling
Makrohandlingen SøgEfterPost har følgende argumenter.
Handlingsargument |
Beskrivelse |
||||||||||
Objekttype |
Angiv eller vælg databaseobjekttypen, du søger i. Du kan vælge Tabel, Forespørgsel, Formular eller Rapport. |
||||||||||
Objektnavn |
Angiv eller vælg det bestemte objekt, der indeholder posten, der skal søges efter. På rullelisten vises alle databaseobjekter af den type, du har valgt som Objekttype-argumentet. |
||||||||||
Indspil |
Angiv søgningens udgangspunkt og retning.
|
||||||||||
Where-betingelse |
Angiv søgningens kriterier ved hjælp af den samme syntaks som en SQL WHERE-delsætning, men uden ordet "WHERE". For eksempel Description = "Beverages" Hvis du vil oprette et kriterium, der omfatter en værdi fra et tekstfelt i en formular, skal du oprette et udtryk, der sammenkæder den første del af kriteriet med navnet på den tekstboks, der indeholder den værdi, der skal søges efter. Eksempelvis søger det følgende kriterium i feltet Beskrivelse efter værdien i tekstfeltet med navnet txtDescription i formularen, der hedder frmCategories. Bemærk lighedstegnet (=) i starten af udtrykket og brugen af enkelte anførselstegn (') på hver side af tekstfeltets reference: ="Description = '" & Forms![frmCategories]![txtDescription] & "'" |
Bemærkninger
-
I tilfælde hvor flere poster opfylder kriterierne i argumentet Where-betingelse, bestemmer de følgende faktorer hvilken post, der findes:
-
Indstilling for argumentet Post Se tabellen i afsnittet Indstillinger for at få mere at vide om argumentet Post.
-
Sorteringsrækkefølgen for posterne Hvis argumentet Post f.eks. er angivet til Først, kan ændring af sorteringsrækkefølgen for posterne ændre, hvilken post der findes.
-
-
Objektet, der er angivet i argumentet Objektnavn, skal være åbent, før denne handling køres. Ellers opstår der en fejl.
-
Hvis kriterierne i argumentet Where-betingelse ikke er opfyldt, opstår der ingen fejl, og fokus forbliver på den aktuelle post.
-
Når du søger efter den forrige eller næste post, ombrydes søgningen"ikke", når den når til slutningen af dataene. Hvis der ikke findes yderligere poster, der opfylder kriteriet, opstår der ingen fejl, og fokus forbliver på den aktuelle post. Du bekræfter, at der er fundet en forekomst, ved at angive en betingelse for den næste handling og benytte samme betingelse som kriteriet i argumentet Where-betingelse.
-
Du kan køre handlingen SøgEfterPost i et VBA-modul ved at bruge SøgEfterPost-metoden til DoCmd-objektet.
-
Makrohandlingen SøgEfterPost svarer til makrohandlingen FindPost, men SøgEfterPost har mere effektive søgefunktioner. Makrohandlingen FindPost bruges primært til at finde strenge, og den duplikerer Søg efter-dialogboksens funktionalitet. Makrohandlingen SøgEfterPost bruger kriterier, der svarer mere til et filter eller en SQL-forespørgsel. Følgende liste viser nogle af de funktioner, du kan bruge med makrohandlingen SøgEfterPost:
-
Du kan bruge komplekse kriterier i argumentet Where-betingelse, f.eks.
-
Beskrivelse = "Drikkevarer" og CategoryID = 11
-
Du kan henvise til felter, der er i postkilden i en formular eller rapport, men ikke vises i formularen eller rapporten. I det foregående eksempel må hverken Description eller CategoryID vises i formularen eller rapporten, for at kriterierne kan fungere.
-
Du kan bruge logiske operatorer, f.eks. <, >, OG, ELLER og BETWEEN. Handlingen FindPost finder kun strenge, der er lig med, starter med eller indeholder den streng, der søges efter.
Eksempel
Følgende makro åbner først tabellen Kategorier ved hjælp af handlingen ÅbnTabel. Derefter bruger makroen SøgEfterPost-makrohandlingen til at finde den første post i tabellen, hvor feltet Beskrivelse er lig med "Drikkevarer".
Handling |
Argumenter |
ÅbnTabel |
Tabelnavn: Kategorier Vis: Dataark Datatilstand: Rediger |
SøgEfterPost |
Objekttype: Tabel Objektnavn: Kategorier Indspil: Første Where-betingelse: Beskrivelse = "Drikkevarer" |