V Accessovih namiznih zbirkah podatkov lahko s funkcijo DLookup dobite vrednost določenega polja iz določenega nabora zapisov (domene). Uporabite funkcijo DLookup v modulu VBA (VBA), makru, izrazu poizvedbe ali izračunanem kontrolniku v obrazcu ali poročilu.
S funkcijo DLookup lahko prikažete vrednost polja, ki ni vključena v vir zapisov za obrazec ali poročilo. Denimo, da imate obrazec, ki temelji na tabeli »Podrobnosti o naročilu«. V obrazcu so prikazana polja »IDNaročila«, »IDizdelka«, »CenaEnote«, »Količina« in »Popust«. Polje »ImeIzdelka« pa je v drugi tabeli, in sicer v tabeli »Izdelki«. Funkcijo DLookup lahko uporabite v izračunanem kontrolniku, da polje »ImeIzdelka« prikažete v istem obrazcu.
Sintaksa
DLookup(izraz, domena [, pogoj] )
Sintaksa funkcije DLookup ima te argumente:
| Argument | Opis |
|---|---|
| izraz | Obvezen. Izraz, ki določa polje, katerega vrednost želite pridobiti. Lahko je izraz niza, ki določa polje v tabeli ali poizvedbi, ali pa izraz, ki izvaja izračun podatkov v tem polju. V izraz lahko vključite ime polja v tabeli, kontrolnik v obrazcu, konstanto ali funkcijo. Če izraz vključuje funkcijo, je lahko vgrajen ali uporabniško določen, ne pa tudi druge združevalne funkcije domene ali združevalne funkcije SQL. |
| domena | Obvezen. Izraz niza, ki določa nabor zapisov, ki sestavljajo domeno. To je lahko ime tabele ali ime poizvedbe za poizvedbo, ki ne zahteva parametra. |
| pogoji | Neobvezen. Izraz niza, ki se uporablja za omejitev obsega podatkov, v katerem se izvede funkcija DLookup. Argument pogoji je na primer pogosto enakovreden stavku WHERE v izrazu strežnika SQL, vendar brez besede WHERE. Če izpustite argument pogoj, funkcija DLookup ovrednoti argument izraz glede na celotno domeno. Vsa polja, ki so vključena v argument pogoj, morajo biti tudi polje v argumentu domena, sicer funkcija DLookup vrne ničelno vrednost. |
Opombe
Funkcija DLookup vrne vrednost enega polja, ki temelji na informacijah, določenih v argumentu pogoji. Čeprav je pogoj izbirni argument, če ne navedete vrednosti za pogoj, funkcija DLookup vrne naključno vrednost v domeni.
Če noben zapis ne ustreza pogojem ali če domena ne vsebuje zapisov, funkcija DLookup vrne vrednost Null.
Če pogoje izpolnjuje več polj, funkcijaDLookup vrne prvo pojavitev. Določite pogoje, s katerimi zagotovite, da bo vrednost polja, ki jo vrne funkcija DLookup, enolična. Morda boste želeli uporabiti vrednost primarnega ključa za pogoje, [EmployeeID] na primer v tem primeru, če želite zagotoviti, da funkcija DLookup vrne enolično vrednost:
Dim varX As Variant
varX = DLookup("[LastName]", "Employees", _
"[EmployeeID] = 1")
Ne glede na to, ali uporabljate funkcijo DLookup v makru ali modulu, izrazu poizvedbe ali izračunanem kontrolniku, morate skrbno ustvariti argument pogoja, če želite zagotoviti, da bo pravilno ovrednoten.
Funkcijo DLookup lahko uporabite za določanje pogojev v vrstici Pogoji poizvedbe, znotraj izraza izračunanega polja v poizvedbi ali v vrstici Posodobi na v poizvedbi za posodabljanje.
Funkcijo DLookup lahko uporabite tudi v izrazu v izračunanem kontrolniku v obrazcu ali poročilu, če polja, ki ga želite prikazati, ni v viru zapisov, na katerem temelji obrazec ali poročilo. Denimo, da obrazec s podrobnostmi o naročilu temelji na tabeli s podrobnostmi o naročilu, ki vsebuje polje z besedilom, imenovano »IDIzdelka, ki prikaže polje »IDIzdelka«. Če želite poiskati »ImeIzdelka« v tabeli »Izdelki« na podlagi vrednosti v polju z besedilom, lahko ustvarite drugo polje z besedilom in njegovo lastnost VirKontrolnika nastavite na ta izraz:
=DLookup("[ProductName]", "Products", "[ProductID] =" & Forms![Order Details]!ProductID)
Nasveti
- Čeprav lahko uporabite funkcijo DLookup za prikaz vrednosti iz polja v tuji tabeli, je morda bolj učinkovito, če ustvarite poizvedbo s polji, ki jih potrebujete iz obeh tabel, in nato ustvarite obrazec ali poročilo na tej poizvedbi.
- Vrednosti v tuji tabeli lahko poiščete tudi s čarovnikom za iskanje.
Opomba
Neshranjene spremembe zapisov v domeni niso vključene, ko uporabite to funkcijo. Če želite, da funkcija DLookup temelji na spremenjenih vrednostih, morate najprej shraniti spremembe tako, da kliknete Shrani zapis v skupini Zapisi na zavihku Podatki, s čimer premaknete fokus na drug zapis, ali pa uporabite način Posodobitev.
Primer
Opomba
V spodnjih primerih je prikazana uporaba te funkcije v modulu Visual Basic for Applications (VBA). Če želite več informacij o delu s kodo VBA, glejte Referenca za Access VBA.
Spodnji primer vrne podatke o imenu iz polja CompanyName zapisa, ki izpolnjuje pogoje. Domeno predstavlja tabela »Pošiljatelji«. Argument pogoji omeji nabor zapisov na tiste, za katere je vrednost v argumentu »ID Pošiljatelja« enaka 1.
Dim varX As Variant
varX = DLookup("[CompanyName]", _
"Shippers", "[ShipperID] = 1")
Naslednji primer iz tabele »Pošiljatelji« uporablja kontrolnik obrazca »IDPošiljatelja« za zagotavljanje pogojev za funkcijo DLookup. Upoštevajte, da sklic na kontrolnik ni vključen v narekovaje, ki označujejo nize. S tem zagotovite, da Access ob vsakem priklicu funkcije DLookup pridobi trenutno vrednost iz kontrolnika.
Dim varX As Variant
varX = DLookup("[CompanyName]", "Shippers", _
"[ShipperID] = " & Forms!Shippers!ShipperID)
V naslednjem primeru je uporabljena spremenljivka , intSearchza pridobitev vrednosti.
Dim intSearch As Integer
Dim varX As Variant
intSearch = 1
varX = DLookup("[CompanyName]", "Shippers", _
"[ShipperID] = " & intSearch)