Az asztali Access-adatbázisokban a függvénnyel DLookup kiolvashatja egy adott mező értékét egy adott rekordkészletből (egy tartományból). Használhatja DLookup egy Visual Basic for Applications (VBA) modulban, makróban, lekérdezési kifejezésben és űrlapok vagy jelentések számított vezérlőelemében.
A DLookup függvény segítségével megjelenítheti egy olyan mező értékét is, amely nem az adott űrlap vagy jelentés rekordforrásában van. Tegyük fel, hogy van egy űrlapja, amely a Rendelés részletei táblán alapul. Az űrlap az OrderID, , ProductIDés UnitPriceQuantitya Discount mezőket jeleníti meg. A ProductName mező azonban egy másik táblában, a Products táblában van. A DLookup függvényt számított vezérlőelemben is használhatja, hogy ugyanazon az űrlapon jelenjen meg ProductName .
Szintaxis
DLookup(expr, domain [, criteria])
A DLookup függvény argumentumai a következők:
| argumentumok | Leírás |
|---|---|
expr |
Kötelező. Olyan kifejezés, amely megadja azt a mezőt, amelynek értékeit vissza szeretné adni. Lehet olyan karakterlánc-kifejezés, amely megadja egy tábla vagy lekérdezés egy mezőjét, vagy lehet olyan kifejezés, amely a mezőben található adatokon elvégez egy számítást. A exprmezőben szerepeltetheti egy tábla mezőjének nevét, egy űrlap vezérlőelemét, állandót vagy függvényt. Ha expr függvényt tartalmaz, akkor az lehet beépített vagy felhasználó által definiált függvény, de másik tartományösszesítő vagy SQL -összesítő függvény nem. |
domain |
Kötelező megadni. Olyan karakterlánc-kifejezés, amely a tartományt alkotó rekordok készletét azonosítja. Lehet táblanév vagy olyan lekérdezés neve, amelyhez nem szükséges paramétert megadni. |
criteria |
Nem kötelező. Olyan karakterlánc-kifejezés, amellyel megadja, hogy mely adattartományokon fut a DLookup függvény. Például criteria gyakran egyenértékű egy SQL kifejezés WHEREzáradékával WHERE a . Ha nem adja meg criteria, akkor a DLookup függvény a teljes tartományon értékeli expr ki a függvényt. A programban criteria szereplő mezőknek benne kell lenniük domainis. Ellenkező esetben a DLookup függvény a .Null |
Megjegyzések
A DLookup függvény egyetlen mezőértéket ad vissza a criteria. Nem kötelező értéket criteria adni hozzá, de ha nem ad hozzá értéket, a DLookup függvény véletlenszerű értéket ad vissza a tartományban.
Ha egyetlen rekord sem felel meg criteria, vagy ha domain nem tartalmaz rekordot, a DLookup függvény a következőt adja vissza: Null.
Ha egynél több mező felel meg criteria, a DLookup függvény az első előfordulást adja vissza. Olyan feltételeket kell megadni, amelyek biztosítják, hogy az eredményül DLookup adott mezőérték egyedi legyen. Érdemes lehet elsődleges kulcsot használni a feltételben, például [EmployeeID] a következő példában, hogy az DLookup egyedi értéket adjon vissza:
Dim varX As Variant
varX = DLookup("[LastName]", "Employees", _
"[EmployeeID] = 1")
Akár makróban, modulban, lekérdező kifejezésben vagy számított vezérlőelemben használja a DLookup függvényt, gondosan kell megalkotnia az criteria argumentumot, hogy az Access helyesen értékelje ki.
A DLookup függvény segítségével feltételeket adhat meg egy lekérdezés Feltétel sorában, egy lekérdezés számított mező-kifejezésében, vagy frissítő lekérdezés Módosítás sorában.
A függvényt DLookup használhatja egy űrlapon vagy jelentésen lévő számított vezérlőelem kifejezésében is, ha a megjelenítendő mező nem abban a rekordforrásban van, amelyen az űrlap vagy a jelentés alapul. Tegyük fel például, hogy van egy Rendelés részletei táblán alapuló Rendelés részletei űrlapja, melynek neve ProductID tartalmaz egy beviteli mezőt, amely megjeleníti a mezőt ProductID . Ha a beviteli mező értéke alapján szeretne megkeresni ProductName egy Products táblázatban, hozzon létre egy másik beviteli mezőt, és állítsa a Mező vagy kifejezés tulajdonságát a következő kifejezésre:
=DLookup("[ProductName]", "Products", "[ProductID] =" & Forms![Order Details]!ProductID)
Tippek
- Bár a DLookup függvénnyel megjeleníthet értéket egy idegen tábla mezőjéből, valószínűleg hatékonyabb létrehozni egy lekérdezést, amely tartalmazza mindkét tábla mezőit, majd az űrlapot vagy jelentést erre a lekérdezésre alapozni.
- Értékek idegen táblában való megkeresésére használhatja a Keresés varázslót is.
Megjegyzés
Amikor ezt a függvényt használja, a rekordok domain nem mentett módosításait nem veszi figyelembe az Access. Ha DLookup használni szeretné a módosított értékeket, először mentse a módosításokat. Ehhez kattintson az Adatok lap Rekordokcsoportjában a Rekord mentése gombra, vigye a fókuszt másik rekordra, vagy használja a megfelelő Update metódust.
Példa
Megjegyzés
A következő példák egy Visual Basic for Applications (VBA) modulban mutatják be a függvény használatát. A VBA használatáról további információt az Access VBA-referenciájában talál.
Az alábbi példa névadatokat ad vissza annak a rekordnak a CompanyName mezőjéből, amely megfelel criteriaa . A tartomány egy Shippers tábla. Az criteria argumentum azokra a rekordokra korlátozza az eredményül kapott rekordkészletet, amelyek ShipperID egyenlő értékekkel 1.
Dim varX As Variant
varX = DLookup("[CompanyName]", _
"Shippers", "[ShipperID] = 1")
A következő táblázat példája Shippers űrlapvezérlőt ShipperID használ a DLookup függvény feltételeinek megadására. A vezérlőelemre való hivatkozás nincs a karakterláncokat jelölő idézőjelek között. Ez biztosítja, hogy az Access minden futtatáskor DLookup az aktuális értéket kérje le a vezérlőelemtől.
Dim varX As Variant
varX = DLookup("[CompanyName]", "Shippers", _
"[ShipperID] = " & Forms!Shippers!ShipperID)
A következő példában egy változó, , az intSearchérték lekérésére szolgál.
Dim intSearch As Integer
Dim varX As Variant
intSearch = 1
varX = DLookup("[CompanyName]", "Shippers", _
"[ShipperID] = " & intSearch)