Funkcia DLookup

V počítačových databázach Accessu môžete použiť funkciu DLookup na získanie hodnoty konkrétneho poľa zo zadanej množiny záznamov (doména). Funkcia DLookup sa dá použiť v týchto objektoch: modul jazyka Visual Basic for Applications (VBA), makro, výraz dotazu alebo vypočítavaný ovládací prvok vo formulári alebo zostave.

Poznámka : Tento článok sa nevzťahuje na webové aplikácie Accessu.

Funkciu DLookup môžete použiť na zobrazenie hodnoty poľa, ktoré nie je v zdroji záznamov funkcia zobrazovala hodnota 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 zobrazuje polia IDObjednávky, IDProduktu, JednotkováCena, Množstvo a Zľava. Pole NázovProduktu je však v inej tabuľke, a to v tabuľke Produkty. Funkciu DLookup by ste mohli použiť vo vypočítavanom ovládacom prvku na zobrazenie poľa NázovProduktu v rovnakom formulári.

Syntax

DLookup( výraz; doména [; kritériá] )

Syntax funkcie DLookup má tieto argumenty:

Argument

Popis

výraz

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ý určí pole v tabuľke alebo v dotaze, alebo to môže byť výraz, ktorý vykoná výpočet s údajmi v poli. Do argumentu výraz môžete zahrnúť názov poľa v tabuľke, ovládací prvok vo formulári, konštantu alebo funkciu. Ak argument výraz zahŕňa funkciu, môže to byť vstavaná funkcia alebo funkcia definovaná používateľom, ale nie agregačná funkcia inej domény alebo agregačná funkcia SQL.

doména

Povinné. Výraz reťazca určujúci množinu záznamov, ktoré vytvárajú doménu. Môže to byť názov tabuľky alebo názov pre dotaz, ktorý nevyžaduje parameter.

kritériá

Voliteľné. Reťazcový výraz slúžiaci na obmedzenie rozsahu údajov, ktoré spracuje funkcia DLookup. Argument kritériá napríklad často zodpovedá klauzule WHERE vo výraze SQL, ale bez slova WHERE. Ak sa argument kritériá vynechá, funkcia DLookup vyhodnotí argument výraz voči celej doméne. Každé pole zahrnuté do argumentu kritériá musí byť aj poľom v argumente doména, v opačnom prípade funkcia DLookup vráti hodnotu Null.

Poznámky

Funkcia DLookup vráti hodnotu jedného poľa na základe informácií zadaných v argumente kritériá. Argument kritériá je síce voliteľný argument, ak však pre argument kritériá nezadáte hodnotu, funkcia DLookup vráti náhodnú hodnotu v doméne.

Ak argumentu kritériá nevyhovuje žiadny záznam alebo ak doména neobsahuje žiadne záznamy, funkcia DLookup vráti hodnotu Null.

Ak argumentu kritériá vyhovujú viaceré polia, funkcia DLookup vráti prvý výskyt. Je potrebné zadať kritériá, ktorými sa zabezpečí, že funkcia DLookup vráti jedinečnú hodnotu poľa. Pre kritériá môže byť vhodné použiť hodnotu primárneho kľúča, ako je napríklad [EmployeeID] v nasledujúcom príklade, čím sa zabezpečí, že funkcia DLookup vráti 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, v module, vo výraze dotazu alebo vo vypočítavanom ovládacom prvku, argument kritériá je nutné zostaviť pozorne, aby sa zabezpečilo jeho správne vyhodnotenie.

Funkciu DLookup môžete použiť na zadanie kritérií v riadku Kritériá dotazu, v dotaze v rámci výrazu vypočítavaného poľa alebo v riadku Aktualizovať do aktualizačného dotazu.

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 poľom s názvom IDProduktu, ktoré zobrazuje pole IDProduktu. Ak chcete hľadať NázovProduktu z tabuľky Produkty na základe hodnoty v textovom poli, môžete vytvoriť ďalšie textové pole a nastaviť jeho vlastnosť ZdrojOvládaciehoPrvku na tento výraz:

=DLookup("[ProductName]", "Products", "[ProductID] =" & Forms![Order Details]!ProductID)

Tipy

  • Funkciu DLookup síce môžete použiť na zobrazenie hodnoty z poľa v cudzej tabuľke, je však pravdepodobne efektívnejšie vytvoriť dotaz obsahujúci polia, ktoré potrebujete 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 v doméne. Ak chcete , aby bola funkcia DLookup založená na zmenených hodnotách, je najprv nutné tieto zmeny uložiť tak, že na karte Údaje v časti Záznamy kliknete na položku Uložiť záznam , presuniete zameranie na iný záznam alebo použijete metódu Update.

Príklad

Poznámka : Nasledujúce príklady ukazujú použitie tejto funkcie v module jazyka Visual Basic for Applications (VBA). Ak chcete získať ďalšie informácie o práci s jazykom VBA, vyberte z rozbaľovacieho zoznamu vedľa položky Hľadať možnosť Odkaz pre vývojára a do vyhľadávacieho poľa zadajte nejaké výrazy.

Nasledujúci príklad vráti informácie o názve z poľa NázovSpoločnosti záznamu, ktorý spĺňa kritériá. Doménou je tabuľka Špeditéri. Argument kritériá obmedzuje výslednú množinu záznamov na záznamy, pre ktoré sa vlastnosť IDŠpeditéra rovná hodnote 1.

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

Nasledujúci príklad z tabuľky Špeditéri používa ovládací prvok formulára IDŠpeditéra na poskytnutie kritérií pre funkciu DLookup. Všimnite si, že odkaz na ovládací prvok sa nenachádza v úvodzovkách, ktoré označujú reťazce. Tým sa zabezpečí, že Access pri každom vyvolaní funkcie DLookup získa z ovládacieho prvku aktuálnu hodnotu.

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

Nasledujúci príklad používa na získanie hodnoty premennú, a to intSearch.

Dim intSearch As Integer
Dim varX As Variant
intSearch = 1
varX = DLookup("[CompanyName]", "Shippers", _
"[ShipperID] = " & intSearch)
Rozšírte svoje zručnosti
Preskúmať školenie
Buďte medzi prvými, ktorí získajú nové funkcie
Pridajte sa k insiderom pre Office

Boli tieto informácie užitočné?

Ďakujeme za vaše pripomienky!

Ďakujeme vám za pripomienky. Pravdepodobne vám pomôže, ak vás spojíme s pracovníkom podpory pre Office.

×