I Access-skrivebordsdatabaser kan du bruke funksjonen DLookup til å hente verdien til et bestemt felt fra et angitt sett av poster (et domene). Du kan bruke DLookup en makro, et spørreuttrykk eller en beregnet kontroll i et skjema eller en rapport i en VBA-modul (Visual Basic for Applications).
Du kan bruke funksjonen DLookup 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 feltene, ProductIDUnitPriceQuantity, OrderID, og Discount feltene. Feltet er imidlertid ProductName i en annen tabell, tabellen Products . Du kan bruke DLookup funksjonen i en beregnet kontroll for visning ProductName i samme skjema.
Syntaks
DLookup(expr, domain [, criteria])
Funksjonen DLookup har disse argumentene:
| Argument | Beskrivelse |
|---|---|
expr |
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 exprkan du inkludere navnet på et felt i en tabell, en kontroll på et skjema, en konstant eller en funksjon. Hvis expr en funksjon er inkludert, kan den være innebygd eller brukerdefinert, men ikke en annen domenemengde- eller SQL mengdefunksjon. |
domain |
Obligatorisk. Et strenguttrykk 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. |
criteria |
Valgfritt. Et strenguttrykk som brukes til å begrense dataområdet som DLookup funksjonen kjører på. For eksempel, criteria tilsvarer ofte setningsdelen WHERE i et SQL uttrykk, uten ordet WHERE. Hvis du utelater criteria, DLookup evaluerer expr funksjonen mot hele domenet. Ethvert felt som er inkludert i criteria , må også være et felt i domain. Hvis ikke, returnerer DLookupNullfunksjonen . |
Merknader
Funksjonen DLookup returnerer én enkel feltverdi basert på informasjonen angitt i criteria. Selv om criteria det er valgfritt, returnerer funksjonen en tilfeldig verdi i domenet hvis du ikke angir en verdi for den DLookup .
Hvis ingen poster oppfyller criteria, eller hvis domain den ikke inneholder noen poster, DLookup returneres Nullfunksjonen .
Hvis mer enn ett felt møtes criteria, DLookup returnerer funksjonen den første forekomsten. Du bør angi vilkår som sikrer at feltverdien som returneres av DLookup , er unik. Det kan være lurt å bruke en primærnøkkelverdi for vilkåret, som [EmployeeID] i eksemplet nedenfor, for å sikre at den DLookup returnerer en unik verdi:
Dim varX As Variant
varX = DLookup("[LastName]", "Employees", _
"[EmployeeID] = 1")
Enten du bruker DLookup funksjonen i en makro eller modul, et spørreuttrykk eller en beregnet kontroll, bør du konstruere criteria argumentet nøye slik at Access evaluerer det riktig.
Du kan bruke funksjonen DLookup til å angi vilkår i Vilkår-raden i en spørring, i et beregnet feltuttrykk i en spørring eller i Oppdater til-raden i en oppdateringsspørring.
Du kan også bruke funksjonen DLookup 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 ProductID som viser ProductID feltet. Hvis du vil slå opp ProductName fra en Products tabell basert på verdien i tekstboksen, oppretter du en annen tekstboks og angir ControlSource-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 er domain ikke inkludert når du bruker denne funksjonen. Hvis du vil DLookup bruke de endrede verdiene, lagrer du først endringene ved å klikke Lagre post under Poster på Data-fanen , som flytter fokus til en annen post, eller ved hjelp av Update 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 Access VBA-referanse.
Følgende eksempel returnerer navninformasjon fra CompanyName feltet i posten som oppfyller criteria Domenet er en Shippers tabell. Argumentet criteria begrenser det resulterende settet med poster til dem som ShipperID er 1lik.
Dim varX As Variant
varX = DLookup("[CompanyName]", _
"Shippers", "[ShipperID] = 1")
Det neste eksemplet fra Shippers tabellen bruker skjemakontrollen ShipperID til å gi vilkår for DLookup funksjonen. Referansen til kontrollen er ikke inkludert i anførselstegn som angir strenger. Dette sikrer at Access henter den gjeldende verdien fra kontrollen hver gang DLookup .
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)