Funkcija DLookup

Primjenjuje se na
Access za Microsoft 365 Access 2024 Access 2021 Access 2019 Access 2016

U bazama podataka programa Access za stolna računala funkciju DLookup možete koristiti da biste dohvatili vrijednost određenog polja iz određenog skupa zapisa (domene). Možete koristiti DLookup u modulu jezika Visual Basic for Applications (VBA), makronaredbu, izraz upita ili kontrolu izračuna na obrascu ili izvješću.

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 , OrderIDProductID, UnitPrice, Quantityi Discount polja. Međutim, polje ProductName se nalazi u drugoj tablici, tablici Products . Funkciju DLookup možete koristiti u kontroli izračuna za prikaz ProductName na istom obrascu.

Sintaksa

DLookup(expr, domain [, criteria])

Funkcija DLookup ima ove argumente:

Argument Opis
expr Obavezno. Izraz koji određuje polje čiju vrijednost želite prikazati. To može biti izraz niza koji određuje polje u tablici ili upitu ili izraz koji izvodi izračun na podacima u tom polju. U expr, možete uvrstiti naziv polja u tablici, kontrolu na obrazac, konstantu ili funkciju. Ako expr sadrži funkciju, ona može biti ugrađena ili korisnički definirana, no ne može biti neka druga domenska funkcija zbrajanja ili SQL agregacije.
domain Obavezno. Nizovni izraz koji određuje skup zapisa koji čine domenu. To može biti naziv tablice ili upita za upit koji ne zahtijeva parametar.
criteria Neobavezno. Nizovni izraz koji se koristi za ograničavanje raspona podataka na kojem DLookup se funkcija izvodi. Na primjer, criteria često je jednak uvjetu WHERE u izrazu SQL , bez riječi WHERE. Ako izostavite taj argument criteria, DLookup funkcija će se vrednovati expr u cijeloj domeni. Sva polja koja se uvrštavaju u dokument criteria moraju biti i polja u domainprogramu . U suprotnom DLookup funkcija vraća Null.

Napomene

Funkcija DLookup vraća vrijednost jednog polja na temelju informacija navedenih u argumentu criteria. Iako criteria nije obavezno, ako ne navedete vrijednost za nju, DLookup funkcija će vratiti slučajnu vrijednost iz domene.

Ako nema zadovoljavajućih criteriazapisa ili ako domain ne sadrži zapise DLookup , funkcija vraća Null.

Ako se više polja susreće criteria, DLookup funkcija vraća prvo pojavljivanje. Potrebno je odrediti kriterije koji jamče jedinstvenost vrijednosti polja koje vrati.DLookup Za kriterije možete koristiti vrijednost primarnog ključa, kao u [EmployeeID] sljedećem primjeru, da bi se osiguralo da će vraćati DLookup jedinstvenu vrijednost:

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 pažljivo konstruirajte criteria da bi ga Access mogao pravilno procijeniti.

Funkciju DLookup možete koristiti za određivanje kriterija u retku Kriteriji u upitu, unutar izraza izračunatog polja u upitu ili u retku Ažuriraj u upitu s ažuriranjem.

Tu 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 ProductID koji prikazuje ProductID polje. Da biste potražili ProductName iz tablice Products na temelju vrijednosti u tekstnom okviru, stvorite drugi tekstni okvir i postavite njegovo 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 u vanjskoj tablici, 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

Promjene na zapisima koje nisu spremljene nisu domain uključene prilikom korištenja te funkcije. Ako želite DLookup koristiti promijenjene vrijednosti, najprije spremite promjene klikom na Spremi zapis u odjeljku Zapisi na kartici Podaci premještanjem fokusa na drugi zapis ili pomoću odgovarajuće metode Update .

Primjer

Napomena

Primjeri koji slijede prikazuju korištenje te funkcije u modulu jezika Visual Basic for Applications (VBA). Dodatne informacije o radu s VBA kodom potražite u članku Referenca za VBA za Access.

U sljedećem se primjeru dohvaća podatak o nazivu iz CompanyName polja zapisa koji zadovoljava vrijednost criteria. Domena je tablica Shippers . Argument criteria ograničava rezultantni skup zapisa na zapise koji su ShipperID jednaki 1.

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

U sljedećem se primjeru Shippers iz tablice pomoću kontrole ShipperID obrasca dohvaćaju kriteriji za funkciju DLookup . Referenca na kontrolu nije obuhvaćena navodnicima koji označavaju nizove. Time se jamči da će Access pri svakom pokretanju 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)