V Access zbirkah podatkov lahko uporabite funkcijo DLookup , da dobite vrednost določenega polja iz določenega nabora zapisov ( domena ). Uporabite funkcijo DLookup v modulu Visual Basic for Applications (VBA), makro, izraz poizvedbe ali izračunani kontrolnik 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 [; pogoji] )
Sintaksa funkcije DLookup ima te argumente:
Argument |
Opis |
---|---|
izraz |
Obvezen. Izraz, ki določa polje, katerega vrednost želite pridobiti. To je lahko izraz niza, ki določa polje v tabeli ali poizvedbi, ali pa izraz, ki izvaja funkcijo računanja podatkov v tem polju. V argument izraz lahko vključite ime polja v tabeli, kontrolnik na obrazcu, konstanto ali funkcijo. Če argument izraz vključuje funkcijo, je lahko vgrajen ali uporabniško določen, ne more pa biti skupek druge domene ali združevalne funkcije strežnika 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 glede na informacije, navedene v argumentu pogoji. Čeprav argument pogoji ni obvezen argument, vendar če ne navedete vrednosti za argument pogoji, funkcija DLookup vrne naključno vrednost v domeni.
Če noben zapis ne ustreza argumentu pogoji ali če argument domena ne vsebuje zapisov, funkcija DSum vrne ničelno vrednost.
Če pogoje iz argumenta pogoji izpolnjuje več polj, funkcija DLookup vrne prvo pojavitev. Določite pogoje, s katerimi zagotovite, da bo vrednost polja, ki jo vrne funkcija DLookup, enolična. Priporočamo, da za pogoje uporabite primarni ključ, kot je [EmployeeID] v spodnjem primeru, s katerim zagotovite, 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, modulu, izrazu poizvedbe ali izračunanem kontrolniku, morate skrbno ustvariti argument pogoji, č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 poizvedba 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)
Namigi
-
Čeprav lahko uporabite funkcijo DLookup za prikaz vrednosti iz polja v tuja tabela, 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 argumentu domena 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 informacije o imenu iz polja »ImePodjetja« v zapisu, ki izpolnjuje vrednosti argumenta pogoji. Domeno predstavlja tabela »Pošiljatelji«. Argument pogoji omeji nabor zapisov na tiste, za katere je vrednost v polju »IDPoš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 bo ob vsakem pri klicu funkcije DLookupAccess uporabnik iz kontrolnika dobil trenutno vrednost.
Dim varX As Variant
varX = DLookup("[CompanyName]", "Shippers", _ "[ShipperID] = " & Forms!Shippers!ShipperID)
V naslednjem primeru je za pridobitev vrednosti uporabljena spremenljivka intSearch.
Dim intSearch As Integer
Dim varX As Variant intSearch = 1 varX = DLookup("[CompanyName]", "Shippers", _ "[ShipperID] = " & intSearch)