Funcția DLookup

În bazele de date desktop Access puteți utiliza funcția DLookup pentru a obține valoarea unui anumit câmp dintr-un set specificat de înregistrări (domeniu). Utilizați funcția DLookup într-un modul Visual Basic for Applications (VBA), un macrocomandă, o expresie de interogare sau un control calculat pe un formular sau raport.

Notă : Acest articol nu se aplică pentru aplicații web Access.

Puteți utiliza funcția DLookup 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 IDComandă, IDProdus, PrețUnitar, Cantitate și Discount. Cu toate acestea, câmpul NumeProdus este în alt tabel, tabelul Produse. Ați putea utiliza funcția DLookup într-un control calculat pentru a afișa NumeProdus în același formular.

Sintaxă

DLookup( expr, domeniu [, criteriu] )

Sintaxa funcției 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 într-un tabel, un control pe 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 agregat de domeniu sau funcție agregată SQL.

domeniu

Obligatoriu. O expresie șir care identifică setul de înregistrări ce constituie domeniul. Poate fi un nume de tabel sau un nume de interogare pentru o interogare care nu necesită un parametru.

criterii

Opțional. O expresie șir utilizată pentru a restricționa zona de date pe care se aplică funcția DLookup. De exemplu, criterii adesea este echivalentă cu clauza WHERE într-o expresie SQL, fără cuvântul WHERE. În cazul în care criterii este omis, funcția DLookup evaluează expr față de întregul domeniu. Orice câmp care este inclus în criterii trebuie să fie, de asemenea, un câmp în domeniu; altfel, funcția DLookup returnează un Nul.

Observații

Funcția DLookup returnează o valoare de câmp unică, pe baza informațiilor specificate în criterii. Deși criterii este un argument opțional, dacă nu furnizați o valoare pentru criterii, funcția DLookup returnează o valoare aleatorie în domeniu.

Dacă nicio înregistrare nu satisface criterii sau dacă domeniu nu conține nicio înregistrare, funcția DLookup returnează un Nul.

În cazul în care mai multe câmpuri îndeplinesc criteriile, funcția DLookup returnează prima apariție. Ar trebui să specificați criteriile care vor asigura că valoarea câmp returnată de funcția DLookup este unică. Se recomandă să utilizați o valoare cheie primară pentru criteriile dvs., cum ar fi [EmployeeID] din exemplul următor, pentru a vă asigura că funcția DLookup returnează o valoare unică:

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

Indiferent dacă utilizați funcția DLookup într-o macrocomandă sau într-un modul, o expresie de interogare sau un control calculat, trebuie să construiți cu atenție argumentul criterii, pentru a vă asigura că va fi evaluat corect.

Puteți utiliza funcția DLookup 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.

Puteți utiliza funcția DLookup într-o 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, denumită IDProdus, care afișează câmpul IDProdus. Pentru a căuta NumeProdus dintr-un tabel Produse pe baza valorii din caseta text, puteți crea altă casetă text și îi puteți seta 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 într-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ările din domeniu nu sunt incluse atunci când utilizați această funcție. Dacă doriți ca funcția DLookup să se bazeze pe valorile modificate, trebuie să 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 metoda Actualizare.

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, selectați Referințe pentru dezvoltatori în lista verticală de lângă Căutare și introduceți unul sau mai mulți termeni în caseta de căutare.

Următorul exemplu returnează informațiile despre nume din câmpul NumeFirmă al înregistrărilor care îndeplinesc criteriile. Domeniul este un tabel Expeditori. Argumentul criterii restricționează setul rezultat de înregistrări la cele pentru care IDExpeditor este egal cu 1.

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

Următorul exemplu din tabelul Expeditori utilizează controlul de formular IDExpeditor pentru a furniza criterii pentru funcția DLookup. Rețineți că referința la control nu este inclusă între ghilimelele care semnalizează șirurile. Acest lucru asigură faptul că, de fiecare dată când funcția DLookup este apelată, Access va obține 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)
Extindeți-vă competențele
Explorați instruirea
Fiți primul care obține noile caracteristici
Alăturați-vă utilizatorilor Office Insider

Au fost utile aceste informații?

Vă mulțumim pentru feedback!

Vă mulțumim pentru feedback! Se pare că ar fi util să luați legătura cu unul dintre agenții noștri de asistență Office.

×