Funktionen DLookup

Gælder for
Access til Microsoft 365 Access 2024 Access 2021 Access 2019 Access 2016

I Access-skrivebordsdatabaser kan du bruge DLookup funktionen til at hente værdien af et bestemt felt fra et bestemt sæt poster (et domæne). Du kan bruge DLookup i et Visual Basic for Applications(VBA)-modul, en makro, et forespørgselsudtryk eller et beregnet kontrolelement i en formular eller rapport.

Du kan bruge funktionen DLookup til at vise værdien af et felt, der ikke findes i postkilden for formularen eller rapporten. Antag f.eks., at du har en formular, som er baseret på tabellen Ordredetaljer. I formen vises felterne OrderID, ProductIDUnitPrice, Quantity, og Discount . Men feltet ProductName findes i en anden tabel, nemlig tabellen Products . Du kan bruge funktionen DLookup i et beregnet kontrolelement til at få vist ProductName i den samme formular.

Syntaks

DLookup(expr, domain [, criteria])

Funktionen DLookup har disse argumenter:

Argument Beskrivelse
expr Påkrævet. Et udtryk, der identificerer det felt, hvis værdi du vil returnere. Det kan være et strengudtryk, der identificerer et felt i en tabel eller forespørgsel, eller det kan være et udtryk, der udfører en beregning på data i det pågældende felt. I exprkan du medtage navnet på et felt i en tabel, et kontrolelement i en formular, en konstant eller en funktion. Hvis expr omfatter en funktion, kan den være indbygget eller brugerdefineret, men ikke en anden domæneaggregerings- eller SQL aggregeringsfunktion.
domain Påkrævet. Et strengudtryk, der identificerer det sæt poster, der udgør domænet. Det kan være et tabelnavn eller et forespørgselsnavn for en forespørgsel, der ikke kræver en parameter.
criteria Valgfrit. Et strengudtryk, der bruges til at begrænse det dataområde, hvor DLookup funktionen kører. Det svarer f.eks. criteria ofte til delsætningen WHERE i et SQL udtryk uden ordet WHERE. Hvis du udelader criteria, DLookup evalueres expr funktionen i forhold til hele domænet. Alle felter, der medtages i criteria , skal også være et felt i domain. Ellers returnerer Nullfunktionen DLookup .

Bemærkninger

Funktionen DLookup returnerer en enkelt feltværdi baseret på de oplysninger, der er angivet i criteria. Selvom criteria det er valgfrit, returnerer funktionen DLookup en tilfældig værdi i domænet, hvis du ikke angiver en værdi for den.

Hvis der ikke er nogen poster, der opfylder criteria, eller hvis domain der DLookup ikke er nogen poster, returnerer Nullfunktionen .

Hvis mere end ét felt opfylder criteria, DLookup returnerer funktionen den første forekomst. Du skal angive kriterier, der sikrer, at feltværdien, der returneres af DLookup , er entydig. Det kan være en god ide at bruge en primær nøgleværdi til dine kriterier, f.eks [EmployeeID] . i følgende eksempel, for at sikre, at DLookup returnerer en entydig værdi:

Dim varX As Variant
varX = DLookup("[LastName]", "Employees", _
    "[EmployeeID] = 1")

Uanset om du bruger funktionen DLookup i en makro eller et modul, et forespørgselsudtryk eller et beregnet kontrolelement, skal du konstruere criteria argumentet omhyggeligt, så Access evaluerer det korrekt.

Du kan bruge funktionen DLookup til at angive kriterier i rækken Kriterier i en forespørgsel, i et beregnet feltudtryk i en forespørgsel eller i rækken Opdater til i en opdateringsforespørgsel.

Du kan også bruge funktionen DLookup i et udtryk i et beregnet kontrolelement i en formular eller rapport, hvis det felt, du vil have vist, ikke er i den postkilde, som formularen eller rapporten er baseret på. Antag f.eks., at du har en formular af typen Ordredetaljer, der er baseret på tabellen Ordredetaljer med et tekstfelt, ProductID der viser feltet ProductID . Hvis du vil slå op ProductName fra en Products tabel, der er baseret på værdien i tekstfeltet, skal du oprette et andet tekstfelt og angive egenskaben Kontrolelementkilde til følgende udtryk:

=DLookup("[ProductName]", "Products", "[ProductID] =" & Forms![Order Details]!ProductID)

Tip!

  • Selvom du kan bruge funktionen DLookup til at vise en værdi fra et felt i en fremmed tabel, kan det være mere effektivt at oprette en forespørgsel, der indeholder de felter, du skal bruge, fra begge tabeller og derefter basere formularen eller rapporten på den pågældende forespørgsel.
  • Du kan også bruge guiden Opslag til at finde værdier i en fremmed tabel.

Bemærk

Ikke-gemte ændringer af poster i domain medtages ikke, når du bruger denne funktion. Hvis du vil DLookup bruge de ændrede værdier, skal du først gemme ændringerne ved at klikke på Gem post under Poster på fanen Data , flytte fokus til en anden post eller ved hjælp af metoden Update .

Eksempel

Bemærk

Følgende eksempler demonstrerer brugen af denne funktion i et VBA-modul (Visual Basic for Applications). Du kan finde flere oplysninger om at arbejde med VBA i Access VBA-reference.

I følgende eksempel returneres navneoplysninger fra feltet for CompanyName den post, der opfylder criteria. Domænet er en Shippers tabel. Argumentet criteria begrænser resultatsættet af poster til dem, der ShipperID er lig med 1.

Dim varX As Variant
varX = DLookup("[CompanyName]", _
    "Shippers", "[ShipperID] = 1")

I det næste eksempel fra tabellen Shippers bruges formularkontrolelementet ShipperID til at angive kriterier for DLookup funktionen. Referencen til kontrolelementet medtages ikke i de anførselstegn, der angiver strengene. Dette sikrer, at Access henter den aktuelle værdi fra kontrolelementet, hver gang DLookup der køres.

Dim varX As Variant
varX = DLookup("[CompanyName]", "Shippers", _
    "[ShipperID] = " & Forms!Shippers!ShipperID)

I det næste eksempel bruges en variabel, intSearch, til at hente værdien.

Dim intSearch As Integer
Dim varX As Variant
intSearch = 1
varX = DLookup("[CompanyName]", "Shippers", _
    "[ShipperID] = " & intSearch)