Funkcija DLookup

U bazama podataka programa Access za stolna računala pomoću funkcije DLookup možete dohvatiti vrijednost određenog polja u skupu zapisa (domena). Funkciju DLookup možete koristiti u modulu jezika Visual Basic for Applications (VBA), makronaredbi ili kontroli izračuna na obrascu ili u izvješću.

Napomena : Ovaj se članak ne odnosi na web-aplikacije programa Access.

Funkciju DLookup možete koristiti za prikaz vrijednosti polja koje se ne nalazi u izvoru zapisa za obrazac ili izvješće. Pretpostavimo, na primjer, da imate obrazac koji se temelji na tablici Detalji narudžbe. U obrascu se prikazuju polja IDNarudžbe, IDProizvoda, Jedinična cijena, Količina i Popust. No polje NazivProizvoda nalazi se u drugoj tablici – tablici Proizvodi. Pomoću funkcije DLookup u kontroli izračuna možete na istom obrascu prikazati polje NazivProizvoda.

Sintaksa

DLookup( izraz, domena [, kriteriji] )

Sintaksa funkcije DLookup sadrži ove argumente:

Argument

Opis

izraz

Obavezno. Izraz koji određuje polje čiju vrijednost želite prikazati. To može biti nizovni izraz koji određuje polje u tablici ili upitu ili izraz koji izvodi izračun na podacima u tom polju. U argument izraz možete uvrstiti naziv polja tablice, kontrolu s obrasca, konstantu ili funkciju. Ako izraz sadrži funkciju, ona može biti ili ugrađena ili korisnički definirana, no ne može biti neka druga domenska ili SQL funkcija zbrajanja.

domena

Obavezno. Niz koji određuje skup zapisa koji čine domenu. To može biti naziv tablice ili upita za upit koji ne zahtijeva parametar.

kriteriji

Neobavezno. Nizovni izraz koji se koristi za ograničavanje raspona podataka na kojem se izvršava funkcija DLookup. Argument kriteriji, primjerice, često je jednak uvjetu WHERE u SQL izrazu, no bez riječi WHERE. Ako izostavite argument kriteriji, funkcija DLookup vrednuje argument izraz u cijeloj domeni. Sva polja obuhvaćena argumentom kriteriji moraju ujedno biti i polja u argumentu domena; u suprotnom funkcija DLookup vraća vrijednost null.

Napomene

Funkcija DLookup vraća vrijednost jednog polja na temelju informacija navedenih u argumentu kriteriji. Premda je kriteriji neobavezan argument, ako ne unesete vrijednost za argument kriteriji, funkcija DLookup vratit će slučajnu vrijednost iz domene.

Ako nijedan zapis ne zadovoljava argument kriteriji ili ako domena ne sadrži zapise, funkcija DLookup vraća vrijednost null.

Ako argument kriteriji zadovoljava veći broj polja, funkcija DLookup vraća prvu pojavu. Potrebno je odrediti kriterije kojima se jamči da će vrijednost polja koje vrati funkcija DLookup biti jedinstvena. Da biste bili sigurni da će funkcija DLookup vratiti jedinstvenu vrijednost, možete za kriterije koristiti primarni ključ, kao što je [EmployeeID] u sljedećem primjeru:

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

Bez obzira na to koristite li funkciju DLookup u makronaredbi, modulu, izrazu upita ili kontroli izračuna, argument kriteriji morate pažljivo sastaviti da bi se pravilno vrednovao.

Funkciju DLookup možete koristiti za određivanje kriterija u retku Kriteriji u upitu, u izrazu izračunatog polja u upitu ili u retku Ažuriraj u upita za ažuriranje.

Funkciju DLookup možete koristiti i u izrazu kontrole izračuna na obrascu ili u izvješću ako se polje koje želite prikazati ne nalazi u izvoru zapisa na kojem se obrazac ili izvješće temelje. Pretpostavimo, na primjer, da imate obrazac Detalji narudžbe koji se temelji na tablici Detalji narudžbe s tekstnim okvirom naziva IDProizvoda u kojem se prikazuje polje IDProizvoda. Da biste potražili NazivProizvoda u tablici Proizvodi na temelju vrijednosti u tekstnom okviru, možete stvoriti drugi tekstni okvir i postaviti svojstvo ControlSource na sljedeći izraz:

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

Savjeti

  • Premda funkciju DLookup možete koristiti za prikaz vrijednosti iz polja koje sadrži vanjska tablica, učinkovitije je stvoriti upit koji sadrži potrebna polja iz obje tablice, a zatim na temelju tog upita izraditi obrazac ili izvješće.

  • Za pronalaženje vrijednosti iz vanjske tablice možete koristiti i čarobnjak za dohvaćanje vrijednosti.

Napomena : Funkcija neće obuhvatiti nespremljene promjene zapisa u argumentu domena. Ako želite da se funkcija DLookup temelji na promijenjenim vrijednostima, najprije morate spremiti promjene klikom na Spremi zapis na kartici Podaci u odjeljku Zapisi, čime fokus premještate na drugi zapis, ili pomoću metode ažuriranja.

Primjer

Napomena : Primjeri koji slijede prikazuju korištenje te funkcije u modulu jezika Visual Basic for Applications (VBA). Da biste pronašli dodatne informacije o radu s VBA-om, na padajućem popisu uz stavku Traži odaberite stavku Referenca za razvojne inženjere pa unesite jedan ili više izraza u okvir pretraživanja.

U sljedećem se primjeru dohvaća podatak o nazivu iz polja NazivTvrtke u zapisu koji zadovoljava kriterije. Domena je tablica Dostavljači. Argument kriteriji ograničava skup rezultata na zapise u kojima je IDdostavljača jednak 1.

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

U sljedećem se primjeru iz tablice Dostavljači pomoću kontrole obrasca IDdostavljača dohvaćaju kriteriji za funkciju DLookup. Imajte na umu da referenca na kontrolu nije obuhvaćena navodnicima koji označavaju nizove. Time se jamči da će Access prilikom svakog pozivanja funkcije DLookup dohvatiti aktualnu vrijednost iz kontrole.

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

U sljedećem se primjeru za dohvaćanje vrijednosti koristi varijabla intSearch.

Dim intSearch As Integer
Dim varX As Variant
intSearch = 1
varX = DLookup("[CompanyName]", "Shippers", _
"[ShipperID] = " & intSearch)
Proširite svoje vještine
Istražite osposobljavanje

Jesu li vam ove informacije bile korisne?

Hvala vam na povratnim informacijama!

Hvala vam na povratnim informacijama! Čini se da bi vam pomoglo kad bismo vas povezali s nekim od naših agenata podrške za Office.

×