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 en bestemt sæt poster (et domæne). I et VBA-modul (Visual Basic for Applications) kan du bruge DLookup en makro, et forespørgselsudtryk eller et beregnet kontrolelement i en formular eller rapport.

Du kan bruge funktionen DLookup til at få vist værdien af et felt, der ikke findes i postkilden for din formular eller rapport. Antag f.eks., at du har en formular, som er baseret på tabellen Ordredetaljer. I formularen vises felterne OrderID, ProductID, QuantityUnitPrice, og Discount . Men feltet findes i en anden tabel, ProductName nemlig Products tabellen. Du kan bruge DLookup funktionen i et beregnet kontrolelement til visning 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 af data i det pågældende felt. I expr, kan du medtage navnet på et felt i en tabel, et kontrolelement i en formular, en konstant eller en funktion. Hvis expr den indeholder en funktion, kan den være indbygget eller brugerdefineret, men det kan ikke være en anden domæneaggregerings- eller SQL aggregeringsfunktion.
domain Påkrævet. Et strengudtryk, der identificerer det sæt af poster, der udgør domænet. Det kan være et tabelnavn eller et forespørgselsnavn til 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. Er f.eks. criteria ofte ækvivalent med WHERE delsætningen i et SQL udtryk uden ordet WHERE. Hvis du udelader criteria, DLookup evalueres expr funktionen i forhold til hele domænet. Ethvert felt, der medtages i criteria , skal også være et felt i domain. Ellers returnerer DLookupNullfunktionen .

Bemærkninger

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

Hvis der ikke er nogen poster, eller hvis domain der ikke er nogen poster, returneres criteriaNullfunktionenDLookup.

Hvis flere felter mødes criteria, returnerer DLookup funktionen den første forekomst. Du bør angive kriterier, der sikrer, at feltværdien, der returneres af DLookup , er entydig. Du kan bruge en primær nøgleværdi for dine kriterier, f.eks [EmployeeID] . i følgende eksempel, for at sikre, at den DLookup returnerer en entydig værdi:

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

Uanset om du bruger DLookup funktionen i en makro eller et modul, et forespørgselsudtryk eller et beregnet kontrolelement, skal du konstruere argumentet criteria 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 udtryk for et beregnet felt i en forespørgsel eller i rækken Opdater til i en opdateringsforespørgsel.

Du kan også bruge DLookup funktionen i et udtryk i et beregnet kontrolelement i en formular eller rapport, hvis det felt, du vil vise, ikke findes i den postkilde, som formularen eller rapporten er baseret på. Antag f.eks., at du har en formular af typen Ordredetaljer baseret på tabellen Ordredetaljer med et tekstfelt kaldet ProductID Feltet viser feltet ProductID . Hvis du vil slå op ProductName fra en tabel baseret på værdien i tekstfeltet, skal du oprette et nyt tekstfelt og angive egenskaben ProductsKontrolelementkilde 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 din formular eller rapport på den forespørgsel.
  • Du kan også bruge guiden Opslag til at finde værdier i en fremmed tabel.

Bemærk

Ikke-gemte ændringer i poster inkluderes domain 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 Update metoden.

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 CompanyName feltet i den post, der opfylder criteria. Domænet er en Shippers tabel. Argumentet criteria begrænser resultatsættet af poster til dem, for hvilke ShipperID er lig 1med .

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

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

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

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

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