V desktopových databázích Accessu můžete pomocí funkce DLookup získat hodnotu určitého pole ze zadané sady záznamů ( Doména ). Funkci DLookup můžete použít v modulu VBA (Visual Basic for Applications), Makro, výrazu dotazu nebo dotazu Vypočítaný ovládací prvek formuláři nebo 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

Nepovinný argument. Řetězcový výraz použitý k omezení oblasti dat, s kterou bude funkce DLookup provedena. Kritéria jsou například často ekvivalentní klauzuli WHERE ve výrazu SQL, aniž by se slovem WHERE. Pokud není kritérium vynecháno, vyhodnotí funkce DLookupvýraz s celou doménou. Každé pole, které je zahrnuté v kritériích, musí být také polem v doméně. Jinak funkce DLookup vrátí hodnotu Null.

Poznámky

Funkce DLookup vrátí hodnotu jednoho pole na základě informací zadaných v kritériích. I když je kritérium nepovinný argument, pokud nezadáte hodnotu kritéria, 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.

Pomocí funkce DLookup můžete zadat kritéria v řádku Kritéria v dotazu, ve výrazu počítaného pole v dotazu nebo v řádku Aktualizovat do v Aktualizační dotaz.

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)

Potřebujete další pomoc?

Rozšiřte své znalosti a dovednosti
Projít školení
Získejte nové funkce jako první
Připojit se k programu Microsoft Insider

Byly tyto informace užitečné?

Jak jste spokojeni s kvalitou překladu?
Co ovlivnilo váš názor?

Děkujeme za váš názor!

×