Access asztali adatbázisokban a DLookup függvénnyel lekérheti egy adott mező értékét egy megadott rekordkészletből ( tartomány ). A DLookup függvényt használhatja VBA-modulokban, makrókban, lekérdező kifejezésekben és űrlapon vagy jelentésen lévő számított vezérlőelemben.
A DLookup függvénnyel 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 a Rendeléskód, a Termékkód, az Egységár, a Mennyiség és az Engedmény mezőt tartalmazza. A Terméknév mező azonban másik táblában, a Termékek táblában van. Egy számított vezérlőelemben elhelyezett DLookup függvénnyel megjelenítheti a Terméknév értékét ugyanazon az űrlapon.
Szintaxis
DLookup( kifejezés; tartomány [; feltétel] )
A DLookup függvény argumentumai a következők:
Argumentum |
Leírás |
---|---|
kifejezés |
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 egy olyan kifejezés, amely a mezőben található adatokon elvégez egy számítást. A kifejezés argumentum tartalmazhatja egy tábla mezőjének nevét, egy űrlap vezérlőelemét, állandót vagy függvényt. Ha a kifejezés argumentum függvényt tartalmaz, akkor az lehet beépített és felhasználó által megadott függvény is, de másik tartományösszesítő vagy összesítő SQL-függvény nem. |
tartomány |
Kötelező. Olyan karakterlánc-kifejezés, amely meghatározza a tartományt alkotó rekordok készletét. Lehet táblanév vagy olyan lekérdezés neve, amelyhez nem szükséges paramétert megadni. |
kritérium |
Nem kötelező. Olyan karakterlánc-kifejezés, amellyel megadja, hogy mely adatokra kell alkalmazni a DLookup függvényt. A feltétel argumentum például gyakran egyenértékű egy SQL-kifejezés WHERE záradékával a WHERE szó nélkül. Ha a feltétel argumentum nincs megadva, a DLookup függvény a teljes tartományon értékeli ki a kifejezés argumentumot. A feltétel argumentumban megadott mezőknek benne kell lenniük a tartományban, különben a DLookup függvény eredménye null |
Megjegyzések
A DLookup függvény egyetlen mezőértéket ad eredményül a feltétel argumentumban megadott érték alapján. Bár a feltétel argumentum nem kötelező, ha nem ad értéket a feltétel argumentumnak, akkor a DLookup függvény véletlenszerűen választott értéket ad vissza a tartományból.
Ha nincs olyan rekord, amely megfelel a feltétel argumentumnak, vagy ha a tartomány nem tartalmaz rekordot, akkor a DLookup függvény null értéket ad.
Ha több mező felel meg a feltétel argumentumnak, akkor a DLookup függvény az első előfordulást adja eredményül. Úgy kell megadni a feltételeket, hogy a DLookup függvény által adott mezőérték egyedi legyen. Feltételként érdemes elsődleges kulcsot használni (például az alábbi példában az [EmployeeID] kulcsot) azért, hogy a DLookup függvény egyedi értéket adjon eredményül:
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, a feltétel argumentumot gondosan kell megalkotni, hogy az Access megfelelően értékelje ki a függvényt.
Használhatja a DLookup függvényt feltételek megadására egy lekérdezés Feltétel sorában vagy számítottmező-kifejezésében, vagy egy frissítő lekérdezés Módosítás sorában.
Használhatja a DLookup függvényt egy űrlapon vagy jelentésen lévő számított vezérlőelemben, 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 a Rendelés részletei táblán alapuló Rendelés részletei űrlapja egy Termékkód nevű beviteli mezővel, amely a Termékkód mezőt jeleníti meg. Ha a beviteli mező értéke alapján a Termékek táblából ki szeretné keresni a Terméknév értéket, akkor létrehozhat egy másik beviteli mezőt, és a Mező vagy kifejezés beállítását a következő kifejezésre állíthatja:
=DLookup("[ProductName]", "Products", "[ProductID] =" & Forms![Order Details]!ProductID)
Tippek
-
Bár a DLookup függvénnyel is megjeleníthetők egy idegen tábla mezőjében lévő értékek, 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: A tartomány rekordjainak nem mentett módosításai nem szerepelnek a függvény használatakor. Ha azt szeretné, hogy a DLookup függvény a módosított értékeken alapuljon, először mentenie kell a módosításokat az Adatok lap Rekordok csoportjában a Rekord mentése gombra kattintva, a fókusz másik rekordra való áthelyezésével vagy az Update metódussal.
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ával kapcsolatos további információkért lásd: Access VBA-referencia.
Az alábbi példa a név adatot adja eredményül a feltétel argumentumot kielégítő rekord Cégnév mezőjéből. A tartomány a Szállítmányozók táblának felel meg. A feltétel argumentum azokra a rekordokra korlátozza a rekordkészletet, amelyekben „1” a Szállítmányozókód mező értéke.
Dim varX As Variant
varX = DLookup("[CompanyName]", _ "Shippers", "[ShipperID] = 1")
A következő Szállítmányozók táblára vonatkozó példa a Szállítmányozókód űrlapvezérlőt használja a DLookup függvénnyel. Vegye észre, hogy a vezérlőelemre való hivatkozás nincs a karakterláncokat jelölő idézőjelek között. Ez biztosítja, hogy minden alkalommal, amikor a DLookup függvényt meghívja, Access lekérte az aktuális értéket a vezérlőből.
Dim varX As Variant
varX = DLookup("[CompanyName]", "Shippers", _ "[ShipperID] = " & Forms!Shippers!ShipperID)
A következő példa az intSearch változót használja az érték lekérésére.
Dim intSearch As Integer
Dim varX As Variant intSearch = 1 varX = DLookup("[CompanyName]", "Shippers", _ "[ShipperID] = " & intSearch)