Applies ToAccess for Microsoft 365 Access 2024 Access 2021 Access 2019 Access 2016

I Access skrivebordsdatabaser kan du bruke DLookup-funksjonen til å hente verdien for et bestemt felt fra et angitt sett med poster (en domene ). Bruk DLookup-funksjonen i en VBA-modul (Visual Basic for Applications), en makro, et spørreuttrykk eller en beregnet kontroll på et skjema eller en rapport.

Du kan bruke DLookup-funksjonen til å vise verdien i et felt som ikke er i postkilden for skjemaet eller rapporten. Anta for eksempel at du har et skjema basert på en bestillingsdetaljtabell. Skjemaet viser OrdreID-, ProductID-, Enhetspris-, Antall- og Rabatt-feltene. ProductName-feltet er imidlertid i en annen tabell, Produkter-tabellen. Du kan bruke DLookup-funksjon i en beregnet kontroll for å vise ProductName i samme skjema.

Syntaks

DLookup( uttr, domene [, vilkår] )

Syntaksen for DLookup-funksjonen har disse argumentene:

Argument

Beskrivelse

uttr

Obligatorisk. Et uttrykk som identifiserer feltet med verdien du vil returnere. Det kan være et strenguttrykk som identifiserer et felt i en tabell eller spørring, eller det kan være et uttrykk som utfører beregninger på data i det feltet. I uttr kan du ta med navnet på et felt i en tabell, en kontroll på et skjema, en konstant eller en funksjon. Hvis uttr inneholder en funksjon, kan den være innebygd eller brukerdefinert, men ikke en annen domenemengde- eller SQL-mengdefunksjon.

domene

Obligatorisk. En streng som identifiserer settet med poster som utgjør domenet. Det kan være enten et tabellnavn eller et spørringsnavn for en spørring som ikke krever en parameter.

vilkår

Valgfritt. Et strenguttrykk som brukes til å begrense dataområdet der DLookup-funksjonen utføres. For eksempel tilsvarer vilkår ofte WHERE-setningen i et SQL-uttrykk uten ordet HVOR. Hvis vilkår er utelatt, evaluerer DLookup-funksjonen uttr mot hele domenet. Alle felter som er inkludert i vilkår, må også være et felt i domene, ellers returnerer DLookup-funksjonen en Null.

Merknader

DLookup-funksjonen returnerer én enkel feltverdi basert på informasjonen som er angitt i vilkår. Selv om vilkår er et valgfritt argument, returnerer DLookup-funksjonen en tilfeldig verdi i domenet hvis du ikke oppgir en verdi for vilkår.

Hvis ingen poster oppfyller vilkåret eller hvis domene ikke inneholder noen poster, returnerer DLookup-funksjonen en Null.

Hvis mer enn ett felt oppfyller vilkår, returnerer DLookup-funksjonen den første forekomsten. Du bør angi vilkår som sikrer at feltverdien som returneres av DLookup-funksjonen, er unik. Det kan hende at du vil bruke en primærnøkkel-verdi for vilkåret, som [EmployeeID] i følgende eksempel, for å sikre at DLookup-funksjonen returnerer en unik verdi:

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

Enten du bruker DLookup-funksjonen i en makro, en modul, et spørreuttrykk eller en beregnet kontroll, må du konstruere vilkår-argumentet forsiktig for å sikre at det evalueres riktig.

Du kan bruke DLookup-funksjonen til å angi vilkår i Vilkår-raden i en spørring, i et beregnet feltutrykk i en spørring eller i Oppdater til-raden i en opppdateringsspørring.

Du kan også bruke DLookup-funksjonen i et uttrykk i en beregnet kontroll i et skjema eller en rapport hvis feltet du trenger å vise, ikke er i postkilden som skjemaet eller rapporten er basert på. Anta for eksempel at du har et bestillingsdetaljskjema basert på en bestillingsdetaljtabell med en tekstboks kalt ProductID som viser ProductID-feltet. Hvis du vil slå opp ProductName fra en produkttabell basert på verdien i tekstboksen, kan du opprette en annen tekstboks og angi Kontrollkilde-egenskapen til følgende uttrykk:

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

Tips

  • Selv om du kan bruke DLookup-funksjonen til å vise en verdi fra et felt i en sekundærtabell, kan det være mer effektivt å opprette en spørring som inneholder feltene du trenger, fra begge tabellene og deretter basere skjemaet eller rapporten på denne spørringen.

  • Du kan også bruke oppslagsveiviseren for å finne verdier i en sekundærtabell.

Obs!: Ulagrede endringer til poster i domene er ikke inkludert når du bruker denne funksjonen. Hvis du vil at DLookup-funksjonen skal være basert på de endrede verdiene, må du først lagre endringene ved å klikke Lagre post under PosterData-fanen, som flytter fokus til en annen post, eller ved hjelp av Oppdater-metoden.

Eksempel

Obs!: I eksemplene nedenfor vises bruken av denne funksjonen i en VBA-modul (Visual Basic for Applications). Hvis du vil ha mer informasjon om hvordan du arbeider med VBA, kan du se Referanse for Access VBA.

Følgende eksempel returnerer navninformasjon fra FirmaNavn-feltet til posten som oppfyller vilkår. Domenet er en Speditører-tabell. Vilkår-argumentet begrenser det resulterende settet med poster til dem der SpeditørID er lik 1.

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

Det neste eksempelet fra speditørtabellen bruker skjemakontrollen SpeditørID for å gi vilkår for DLookup-funksjonen. Vær oppmerksom på at referansen til kontrollen ikke er inkludert i anførselstegn som angir strenger. Dette sikrer at hver gang DLookup-funksjonen kalles, henter Access gjeldende verdi fra kontrollen.

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

Det neste eksemplet bruker en variabel, intSearch, for å få verdien.

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

Trenger du mer hjelp?

Vil du ha flere alternativer?

Utforsk abonnementsfordeler, bla gjennom opplæringskurs, finn ut hvordan du sikrer enheten og mer.

Fellesskap hjelper deg med å stille og svare på spørsmål, gi tilbakemelding og høre fra eksperter med stor kunnskap.