Funkce DLookup

Funkci DLookup můžete v desktopových databázích Accessu použít k získání hodnoty určitého pole ze zadané sady záznamů (Doména). Funkci DLookup je možné použít v modulu Visual Basic for Applications (VBA), makru, výrazu dotazu nebo počítaném ovládacím prvku ve formuláři nebo v sestavě.

Poznámka : Tento článek se nevztahuje na webové databáze Accessu.

Funkci DLookup je možné použít k zobrazení hodnoty pole, které není ve zdroji záznamů pro formulář nebo sestavu. Předpokládejme například, že máte formulář založený na tabulce Rozpis objednávek. V tomto formuláři jsou zobrazena pole KódObjednávky, KódVýrobku, CenaZaKus, Množství a Sleva. Pole NázevVýrobku se však nachází v jiné tabulce. Použitím funkce DLookup v počítaném ovládacím prvku zobrazíte pole NázevVýrobku ve stejném formuláři.

Syntaxe

DLookup( výraz, doména [, kritéria] )

Syntaxe funkce DLookup má tyto argumenty:

Argument

Popis

výraz

Povinný argument. Výraz určující pole, jehož hodnotu chcete vrátit. Může jít buď o Řetězcový výraz, který určuje pole v tabulce nebo dotazu, nebo výraz, jehož prostřednictvím je proveden výpočet s daty daného pole. Argument výraz může obsahovat název pole tabulky, ovládacího prvku ve formuláři, konstanty nebo funkce. Pokud argument výraz obsahuje funkci, může jít o předdefinovanou funkci nebo funkci definovanou uživatelem, ale nikoli o jinou doménovou agregační funkci nebo agregační funkci SQL.

doména

Povinný argument. Řetězcový výraz identifikuje sadu záznamů tvořících doménu. Může jít o název tabulky nebo název dotazu, který nevyžaduje parametr.

kritéria

Volitelný argument. Řetězcový výraz, který slouží k omezení oblasti dat, u které bude provedena funkce DLookup. Argument kritéria je například často ekvivalentem klauzule WHERE ve výrazu SQL bez slova WHERE. V případě vynechání argumentu kritéria jsou hodnoty funkce DLookup zjišťovány pro argument výraz v celé doméně. Všechna pole obsažená v argumentu kritéria musí být také zahrnuta v argumentu doména. V opačném případě vrátí funkce DLookup hodnotu Null.

Poznámky

Funkce DLookup vrátí na základě informací zadaných v argumentu kritéria hodnotu jednoho pole. Argument kritéria je volitelný. Pokud však pro argument kritéria nezadáte hodnotu, funkce DLookup vrátí náhodnou hodnotu v doméně.

Pokud argumentu kritéria neodpovídá žádný záznam nebo pokud argument doména neobsahuje žádné záznamy, vrátí funkce DLookup hodnotu Null.

Pokud argumentu kritéria odpovídá více polí, funkce DLookup vrátí první výskyt. Je třeba zadat kritéria, která zajistí, že funkce DLookup vrátí jedinečnou hodnotu pole. Chcete-li zajistit, aby funkce DLookup vrátila jedinečnou hodnotu, použijte jako kritérium hodnotu Primární klíč, jako je [EmployeeID] v následujícím příkladu:

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

Bez ohledu na to, jestli funkci DLookup použijete v makru, modulu, výrazu dotazu nebo počítaném ovládacím prvku, je nutné vytvořit argument kritéria pečlivě, aby bylo zajištěno správné vyhodnocení funkce.

Funkci DLookup je možné použít k zadání kritérií v řádku Kritéria v dotazu, ve výrazu počítaného pole v dotazu nebo v řádku Aktualizovat v aktualizačním dotazu.

Funkci DLookup je možné použít také ve výrazu v počítaném ovládacím prvku ve formuláři nebo sestavě, pokud se pole, které chcete zobrazit, nenachází ve zdroji záznamů, na kterém jsou daný formulář nebo sestava založeny. Předpokládejme například, že máte formulář Rozpis objednávek založený na tabulce Rozpis objednávek, a tento formulář obsahuje textové pole KódVýrobku, které zobrazí pole KódVýrobku. Pokud chcete vyhledat NázevVýrobku v tabulce Výrobky založené na hodnotě v textovém poli, můžete vytvořit jiné textové pole a nastavit pro vlastnost ZdrojOvládacíhoPrvku tohoto pole následující výraz:

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

Tipy

  • I když je možné hodnotu z pole v zobrazit pomocí funkce DLookupCizí tabulka, pravděpodobně bude efektivnější vytvořit dotaz, který obsahuje potřebná pole z obou tabulek, a potom vytvořit formulář nebo sestavu založené na tomto dotazu.

  • K vyhledání hodnot v cizí tabulce je možné použít také Průvodce vyhledáváním.

Poznámka : Neuložené změny záznamů v argumentu doména nebudou při použití této funkce zahrnuty. Pokud chcete, aby byla funkce DLookup založena na změněných hodnotách, je nutné nejdříve změny uložit kliknutím na Uložit záznam ve skupinovém rámečku Záznamy na kartě Data, přesunutím fokusu na jiný záznam nebo pomocí metody Update.

Příklad

Poznámka : Následující příklady ukazují použití této funkce v modulu VBA (Visual Basic pro Applications). Pokud vás zajímají další informace o práci s modulem VBA, vyberte Referenční informace pro vývojáře, které najdete v rozevíracím seznamu vedle položky Hledat, a do vyhledávacího pole napište požadované pojmy.

V následujícím příkladu jsou vráceny informace o názvu z pole NázevFirmy v záznamu odpovídajícím argumentu kritéria. Doménou je tabulka Dopravci. Argument kritéria omezuje výsledky na záznamy, u kterých je v poli IDdodavatele hodnota 1.

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

V dalším příkladu jsou v tabulce Dopravci zadána kritéria pro funkci DLookup pomocí ovládacího prvku formuláře IDdodavatele. Všimněte si, že odkaz na ovládací prvek není uveden v uvozovkách, které označují řetězce. Tím je zajištěno, že při každém volání funkce DLookup získá Access aktuální hodnotu z ovládacího prvku.

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

V dalším příkladu je k získání hodnoty použita proměnná intSearch.

Dim intSearch As Integer
Dim varX As Variant
intSearch = 1
varX = DLookup("[CompanyName]", "Shippers", _
"[ShipperID] = " & intSearch)
Sdílení Facebook Facebook Twitter Twitter E-mail E-mail

Byly tyto informace užitečné?

Výborně! Je ještě něco dalšího, co byste nám chtěli dát vědět?

Jak bychom ho mohli vylepšit?

Děkujeme vám za zpětnou vazbu.

×