În bazele de date desktop Access, puteți utiliza DLookup funcția pentru a obține valoarea unui anumit câmp dintr-un set specificat de înregistrări (un domeniu). Puteți utiliza DLookup într-un modul Visual Basic for Applications (VBA), o macrocomandă, o expresie de interogare sau un control calculat dintr-un formular sau raport.
Puteți utiliza DLookup funcția pentru a afișa valoarea unui câmp care nu se află în sursa de înregistrări pentru formularul sau raportul dvs. De exemplu, să presupunem că aveți un formular bazat pe un tabel Detalii comenzi. Formularul afișează câmpurile OrderID, ProductID, UnitPrice, Quantityși Discount . Cu toate acestea, câmpul ProductName este în alt tabel, tabelul Products . Puteți utiliza funcția într-un DLookup control calculat pentru a afișa ProductName în același formular.
Sintaxă
DLookup(expr, domain [, criteria])
Funcția DLookup are următoarele argumente:
| Argument | Descriere |
|---|---|
expr |
Obligatoriu. O expresie care identifică acel câmp la a cărui valoare doriți să reveniți. Aceasta poate fi o expresie șir care identifică un câmp dintr-un tabel sau interogare sau poate fi o expresie care efectuează un calcul pe baza datelor din acel câmp. În expr, puteți include numele unui câmp dintr-un tabel, un control dintr-un formular, o constantă sau o funcție. Dacă expr include o funcție, aceasta poate fi predefinită sau definită de utilizator, dar nu un alt domeniu agregat sau SQL funcție agregată. |
domain |
Obligatoriu. O expresie șir care identifică setul de înregistrări care alcătuiește domeniul. Poate fi un nume de tabel sau un nume de interogare pentru o interogare care nu necesită un parametru. |
criteria |
Opțional. O expresie șir utilizată pentru a restricționa zona de date pe care DLookup rulează funcția. De exemplu, criteria adesea este echivalentă cu clauza dintr-o WHERESQL expresie, fără cuvântul WHERE. Dacă omiteți criteria, DLookup funcția se evaluează expr în raport cu întregul domeniu. Orice câmp inclus în criteria trebuie să fie, de asemenea, un câmp în domain. Altfel, DLookup funcția returnează Null. |
Observații
Funcția DLookup returnează o singură valoare de câmp, pe baza informațiilor specificate în criteria. Deși criteria este opțional, dacă nu furnizați o valoare pentru aceasta, DLookup funcția returnează o valoare aleatorie în domeniu.
Dacă nicio înregistrare nu satisface criteria, sau dacă domain nu conține nicio înregistrare, funcția DLookup returnează Null.
Dacă se întâlnesc criteriamai multe câmpuri, funcția DLookup returnează prima apariție. Ar trebui să specificați criteriile care asigură că valoarea câmp returnată de DLookup este unică. Se recomandă să utilizați o valoare de cheie primară pentru criteriile dvs., cum ar fi [EmployeeID] în exemplul următor, pentru a vă asigura că DLookup returnează o valoare unică:
Dim varX As Variant
varX = DLookup("[LastName]", "Employees", _
"[EmployeeID] = 1")
Indiferent dacă utilizați funcția într-o DLookup macrocomandă sau modul, o expresie de interogare sau un control calculat, construiți argumentul criteria cu atenție, astfel încât Access să-l evalueze corect.
Puteți utiliza DLookup funcția pentru a specifica criteriile în rândul Criterii dintr-o interogare, într-o expresie de câmp calculat dintr-o interogare sau în rândul Actualizare la dintr-o interogare de actualizare.
De asemenea, puteți utiliza funcția într-o DLookup expresie dintr-un control calculat dintr-un formular sau raport, în cazul în care câmpul pe care trebuie să îl afișați nu se află în sursa de înregistrări pe care se bazează formularul sau raportul dvs. De exemplu, să presupunem că aveți un formular Detalii comenzi bazat pe un tabel Detalii comenzi cu o casetă text numită ProductID care afișează câmpul ProductID . Pentru a căuta ProductName dintr-un Products tabel pe baza valorii din caseta text, creați altă casetă text și setați-i proprietatea ControlSource la următoarea expresie:
=DLookup("[ProductName]", "Products", "[ProductID] =" & Forms![Order Details]!ProductID)
Sfaturi
- Deși puteți utiliza funcția DLookup pentru a afișa o valoare dintr-un câmp dintr-un tabel cu cheie străină, poate fi mai eficient să creați o interogare care conține câmpurile de care aveți nevoie din ambele tabele, apoi să bazați formularul sau raportul pe acea interogare.
- De asemenea, puteți utiliza expertul de căutare pentru a găsi valori într-un tabel cu cheie străină.
Notă
Modificările nesalvate la înregistrări domain nu sunt incluse atunci când utilizați această funcție. Dacă doriți să DLookup utilizați valorile modificate, salvați mai întâi modificările făcând clic pe Salvare înregistrare sub Înregistrări pe fila Date , mutând focalizarea la altă înregistrare sau utilizând Update metoda.
Exemplu
Notă
Exemplele care urmează demonstrează utilizarea acestei funcții într-un modul Visual Basic for Applications (VBA). Pentru mai multe informații despre lucrul cu VBA, consultați Referința Access VBA.
Următorul exemplu returnează informațiile despre nume din câmpul CompanyName înregistrării care satisface criteria. Domeniul este un Shippers tabel. Argumentul criteria restricționează setul rezultat de înregistrări la cele pentru care ShipperID este egal cu 1.
Dim varX As Variant
varX = DLookup("[CompanyName]", _
"Shippers", "[ShipperID] = 1")
Următorul exemplu din Shippers tabel utilizează controlul ShipperID de formular pentru a furniza criterii pentru DLookup funcție. Referința la control nu este inclusă între ghilimelele care semnalizează șirurile. Acest lucru asigură faptul că, de fiecare dată când DLookup rulează, Access primește valoarea curentă din control.
Dim varX As Variant
varX = DLookup("[CompanyName]", "Shippers", _
"[ShipperID] = " & Forms!Shippers!ShipperID)
Următorul exemplu utilizează o variabilă, intSearch, pentru a obține valoarea.
Dim intSearch As Integer
Dim varX As Variant
intSearch = 1
varX = DLookup("[CompanyName]", "Shippers", _
"[ShipperID] = " & intSearch)