V počítačových databázach Accessu môžete funkciu DLookup použiť na získanie hodnoty konkrétneho poľa zo zadanej množiny záznamov (domény). Môžete použiť DLookup v module jazyka Visual Basic for Applications (VBA), makre, výraze dotazu alebo vypočítavanom ovládacom prvku vo formulári alebo zostave.
Funkciu DLookup môžete použiť na zobrazenie hodnoty poľa, ktoré sa nenachádza v zdroji záznamov formulára alebo zostavy. Predpokladajme napríklad, že máte formulár založený na tabuľke Podrobnosti objednávok. Formulár zobrazí polia , , , , Quantitya Discount . UnitPriceProductIDOrderID Pole ProductName sa však nachádza v inej tabuľke, t. j. tabuľke Products . Funkciu DLookup môžete použiť vo vypočítavanom ovládacom prvku na zobrazenie ProductName v rovnakom formulári.
Syntax
DLookup(expr, domain [, criteria])
Funkcia DLookup má tieto argumenty:
| Argument | Popis |
|---|---|
expr |
Povinné. Výraz určujúci pole, ktorého hodnota sa má vrátiť. Môže to byť napríklad reťazcový výraz, ktorý identifikuje pole v tabuľke alebo dotaze, alebo to môže byť výraz, ktorý vykoná výpočet s údajmi v poli. Do súboru exprmôžete zahrnúť názov poľa v tabuľke, ovládací prvok vo formulári, konštantu alebo funkciu. Ak zahŕňa expr funkciu, môže to byť vstavaná alebo používateľom definovaná funkcia, ale nie agregačná SQL alebo agregačná funkcia inej domény. |
domain |
Povinný argument. Reťazcový výraz, ktorý identifikuje množinu záznamov tvoriacich doménu. Môže to byť názov tabuľky alebo názov pre dotaz, ktorý nevyžaduje parameter. |
criteria |
Voliteľný argument. Reťazcový výraz slúžiaci na obmedzenie rozsahu údajov, na ktorom sa funkcia DLookup spúšťa. Často napríklad zodpovedá criteria klauzule WHERE vo výraze SQL , ale bez slova WHERE. Ak tento argument criterianezadáte, funkcia DLookup sa vyhodnotí expr voči celej doméne. Každé pole zahrnuté v súbore criteria musí byť aj poľom v domain. V opačnom prípade funkcia vráti DLookupNullhodnotu . |
Poznámky:
Funkcia DLookup vráti hodnotu jedného poľa na základe informácií zadaných v časti criteria. Hoci criteria je argument voliteľný, ak nezadáte jeho hodnotu, funkcia DLookup vráti náhodnú hodnotu v doméne.
Ak nevyhovuje criteriažiadny záznam alebo ak domain neobsahuje žiadne záznamy, funkcia vráti DLookupNull.
Ak sa síce stretne criteriaviac ako jedno pole, funkcia vráti DLookup prvý výskyt. Mali by ste zadať kritériá, ktoré zabezpečia, že hodnota vrátená poľom DLookup bude jedinečná. Pre kritériá môžete použiť hodnotu primárneho kľúča, ako [EmployeeID] je to v nasledujúcom príklade, aby ste zabezpečili, že vráti DLookup jedinečnú hodnotu:
Dim varX As Variant
varX = DLookup("[LastName]", "Employees", _
"[EmployeeID] = 1")
Bez ohľadu na to, či funkciu DLookup použijete v makre alebo v module, vo výraze dotazu alebo vo vypočítavanom ovládacom prvku criteria , argument zostavte pozorne, aby ho Access správne vyhodnotil.
Funkciu DLookup môžete použiť na zadanie kritérií v dotaze v riadku Kritériá , v rámci výrazu vypočítavaného poľa v dotaze alebo v riadku Aktualizovať na v aktualizačnom dotaze.
Funkciu DLookup môžete tiež použiť vo výraze vo vypočítavanom ovládacom prvku vo formulári alebo zostave, ak sa pole, ktoré potrebujete zobraziť, nenachádza v zdroji záznamov, na ktorom je založený formulár alebo zostava. Predpokladajme napríklad, že máte formulár Podrobnosti objednávok založený na tabuľke Podrobnosti objednávok s textovým ProductID poľom, ktoré zobrazuje ProductID dané pole. Ak chcete vyhľadať pohľad ProductName z tabuľky Products na základe hodnoty v textovom poli, vytvorte ďalšie textové pole a nastavte jeho vlastnosť ZdrojOvládaciehoPrvku na nasledujúci výraz:
=DLookup("[ProductName]", "Products", "[ProductID] =" & Forms![Order Details]!ProductID)
Tipy
- Funkciu DLookup možno použiť na zobrazenie hodnoty z poľa v cudzej tabuľke, efektívnejšie však môže byť vytvoriť dotaz obsahujúci potrebné polia z oboch tabuliek a potom založiť formulár alebo zostavu na tomto dotaze.
- Na hľadanie údajov v cudzej tabuľke môžete použiť aj Sprievodcu vyhľadávaním.
Poznámka
Pri použití tejto funkcie sa do spracovania nezahrnú neuložené zmeny v záznamoch domain . Ak chcete DLookup použiť zmenené hodnoty, uložte ich najprv kliknutím na položku Save Record ( Záznamy ) na karte Údaje , presunutím zamerania na iný záznam alebo použitím príslušnej metódy Update .
Príklad
Poznámka
Nasledujúce príklady ukazujú použitie tejto funkcie v module jazyka Visual Basic for Applications (VBA). Ďalšie informácie o práci s jazykom VBA nájdete v referenčných informáciách k jazyku VBA programu Access.
Nasledujúci príklad vráti informáciu o názve CompanyName zo spĺňajúceho criteriapoľa záznamu. Doménou je tabuľka Shippers . Argument criteria obmedzuje výslednú množinu záznamov na záznamy, pre ktoré ShipperID sa rovná 1.
Dim varX As Variant
varX = DLookup("[CompanyName]", _
"Shippers", "[ShipperID] = 1")
Nasledujúci príklad z tabuľky Shippers používa ovládací prvok ShipperID formulára na poskytnutie kritérií pre funkciu DLookup . Odkaz na ovládací prvok sa nenachádza v úvodzovkách, ktoré označujú reťazce. Tým sa zabezpečí, že DLookup Access pri každom spustení načíta z ovládacieho prvku aktuálnu hodnotu.
Dim varX As Variant
varX = DLookup("[CompanyName]", "Shippers", _
"[ShipperID] = " & Forms!Shippers!ShipperID)
V nasledujúcom príklade sa na získanie hodnoty používa premenná intSearch, .
Dim intSearch As Integer
Dim varX As Variant
intSearch = 1
varX = DLookup("[CompanyName]", "Shippers", _
"[ShipperID] = " & intSearch)