DLookup, funksjon

I Access-databaser kan du bruke DLookup-funksjonen til å hente verdien til et bestemt felt fra et angitt sett av poster (et 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.

Merknad: Denne artikkelen gjelder ikke for Access-nettapper.

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 Variant
varX = 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.

Merknad: 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

Merknad: Eksemplene som følger, demonstrerer bruken av denne funksjonen i en VBA-modul (Visual Basic for Applications). Hvis du vil ha mer informasjon om hvordan du arbeider med VBA, velger du Utviklerreferanse i rullegardinlisten ved siden av Søk og skriver inn et eller flere begreper i søkeboksen.

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 Variant
varX = 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 hentes, henter Access den gjeldende verdien fra kontrollen.

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

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

Dim intSearch As Integer
Dim varX As Variant
intSearch = 1
varX = DLookup("[CompanyName]", "Shippers", _
"[ShipperID] = " & intSearch)
Utvid ferdighetene dine
Utforsk opplæring
Vær først ute med de nye funksjonene
Bli med i Office Insiders

Var denne informasjonen nyttig?

Takk for tilbakemeldingen!

Takk for tilbakemeldingen! Det høres ut som det kan være lurt å sette deg i kontakt med én av våre Office-kundestøtteagenter.

×