U Access za računare možete da koristite funkciju DLookup da biste dobili vrednost određenog polja iz navedenog skupa zapisa ( domen ). Funkciju DLookup koristite u Visual Basic for Applications (VBA) modulu, u makro, izrazu upita ili izračunata kontrola u obrascu ili izveštaju.
Funkciju DLookup možete koristiti da biste prikazali vrednost polja koje nije u izvoru zapisa za obrazac ili izveštaj. Na primer, pretpostavimo da je obrazac zasnovan na tabeli sa detaljima porudžbine. Obrazac prikazuje polja „ID porudžbine“, „ID proizvoda“, „Cena po jedinici“, „Količina“ i „Popust“. Međutim, polje „Ime proizvoda“ se nalazi u drugoj tabeli, „Proizvodi“. Funkciju DLookup možete koristiti u izračunatoj kontroli da biste u istom obrascu prikazali „Ime proizvoda“.
Sintaksa
DLookup( expr, domain [, criteria] )
Sintaksa funkcije DLookup ima sledeće argumente:
Argument |
Opis |
---|---|
expr |
Obavezno. Izraz koji identifikuje polje čiju vrednost želite da vratite. To može da bude izraz niske koja identifikuje polje u tabeli ili upitu ili može da bude izraz koji obavlja izračunavanje podataka u tom polju. U argument expr možete uključiti ime polja u tabeli, kontrolu u obrascu, konstantu ili funkciju. Ako expr uključuje funkciju, ona može da bude ugrađena ili korisnički definisana, ali ne može da bude agregatna funkcija drugog domena ili SQL agregatna funkcija. |
domain |
Obavezno. Izraz niske koji identifikuje skup zapisa koji čine domen. Može da bude ime tabele ili ime upita za upit koji ne zahteva parametar. |
kriterijum |
Opcionalno. Izraz niske koji se koristi za ograničavanje opsega podataka na kojem se izvršava funkcija DLookup . Na primer, kriterijumi su često jednaki odredbi WHERE u SQL izrazu, bez reči WHERE. Ako je kriterijum izostavljen, funkcija DLookup procenjuje expr u odnosu na ceo domen. Sva polja uključena u kriterijume takođe moraju biti polje u domenu; U suprotnom, funkcija DLookup vraća vrednost Null. |
Napomene
Funkcija DLookup vraća vrednost jednog polja na osnovu informacija navedenih u argumentu criteria. Iako je criteria opcionalan argument, ako ne navedete vrednost za criteria, funkcija DLookup vraća nasumičnu vrednost iz domena.
Ako nijedan zapis ne zadovoljava argument criteria ili ako domain ne sadrži nijedan zapis, funkcija DLookup vraća vrednost Null.
Ako više polja odgovara argumentu criteria, funkcija DLookup vraća ono koje se prvo pojavljuje. Treba da navedete kriterijume koji će obezbediti da vrednost polja koju vraća funkcija DLookup bude jedinstvena. Za kriterijume možete upotrebiti vrednost primarni ključ, kao što je [EmployeeID] u sledećem primeru, kako biste obezbedili da funkcija DLookup vrati jedinstvenu vrednost:
Dim varX As Variant
varX = DLookup("[LastName]", "Employees", _ "[EmployeeID] = 1")
Bilo da koristite funkciju DLookup u makrou ili modulu, izrazu upita ili izračunatoj kontroli, morate pažljivo da konstruišete argument criteria kako biste obezbedili da se ispravno izračuna.
Funkciju DLookup možete upotrebiti da biste naveli kriterijume u redu za kriterijume upita, u izrazu izračunatog polja u upitu ili u redu „Ažuriraj na“ u ažuriranje upita.
Funkciju DLookupmožete koristiti i u izrazu u izračunatoj kontroli u obrascu ili u izveštaju ako polje koje treba da prikažete nije u izvoru zapisa na kojem je zasnovan obrazac ili izveštaj. Na primer, pretpostavimo da imate obrazac „Detalji porudžbine“ zasnovan na tabeli „Detalji porudžbine“ sa okvirom za tekst „ID proizvoda“ koji prikazuje polje „ID proizvoda“. Da biste potražili „Ime proizvoda“ iz tabele „Proizvodi“ na osnovu vrednosti iz polja za tekst, mogli biste da napravite još jedan okvir za tekst i da njegovo svojstvo ControlSource postavite na sledeći izraz:
=DLookup("[ProductName]", "Products", "[ProductID] =" & Forms![Order Details]!ProductID)
Saveti
-
Iako funkciju DLookup možete koristiti za prikaz vrednosti polja iz spoljna tabela, možda je efikasnije napraviti upit koji sadrži potrebna polja iz obe tabele, a zatim zasnovati obrazac ili izveštaj na tom upitu.
-
Takođe možete upotrebiti čarobnjak za pronalaženje da biste pronašli vrednosti u sporednoj tabeli.
Napomena: Promene u zapisima na domenu koje nisu sačuvane nisu obuhvaćene kad koristite ovu funkciju. Ako želite da funkcija DLookup bude zasnovana na izmenjenim vrednostima, prvo morate da sačuvate promene tako što ćete kliknuti na dugme Sačuvaj zapis u okviru Zapisi na kartici Podaci, premeštajući fokus na drugi zapis, ili tako što ćete upotrebiti metod Update.
Primer
Napomena: Primeri koji slede pokazuju upotrebu ove funkcije u Visual Basic for Applications (VBA) modulu. Više informacija o radu sa VBA programom potražite u članku Access VBA referenca.
Sledeći primer vraća informacije o imenu iz polja „Ime preduzeća“ zapisa koji odgovara argumentu criteria. Domen je tabela „Špediteri“. Argument criteria ograničava rezultujući skup zapisa na one za koje je „ID špeditera“ jednako 1.
Dim varX As Variant
varX = DLookup("[CompanyName]", _ "Shippers", "[ShipperID] = 1")
Sledeći primer iz tabele „Špediteri“ koristi kontrolu obrasca „ID špeditera“ kako bi naveo kriterijume za funkciju DLookup. Obratite pažnju na to da referenca na kontrolu nije obuhvaćena navodnicima koji određuju niske. Time se osigurava da će funkcija DLookup svaki put kada se poziva funkcija Access DLookup dobiti trenutnu vrednost iz kontrole.
Dim varX As Variant
varX = DLookup("[CompanyName]", "Shippers", _ "[ShipperID] = " & Forms!Shippers!ShipperID)
Sledeći primer za dobijanje vrednosti koristi promenljivu intSearch.
Dim intSearch As Integer
Dim varX As Variant intSearch = 1 varX = DLookup("[CompanyName]", "Shippers", _ "[ShipperID] = " & intSearch)