Funkce DLookup

Funkci DLookup lze použít k získání hodnoty určitého pole ze zadané sady záznamů (domény (Doména: Sada záznamů definovaná tabulkou, dotazem nebo výrazem SQL. Agregační doménové funkce vracejí statistické informace o určité doméně neboli sadě záznamů.)). Funkci DLookup lze použít v modulu Visual Basic for Applications (VBA), makru (Makro: Akce nebo posloupnost akcí, které lze použít k automatizaci úloh. Makra se zaznamenávají v programovacím jazyce Visual Basic for Applications.), výrazu dotazu nebo vypočítaném ovládacím prvku (Vypočítaný ovládací prvek: Ovládací prvek používaný ve formuláři, sestavě nebo na datové stránce k zobrazení výsledku výrazu. Výsledek je přepočítán při každé změně hodnot použitých ve výrazu.) ve formuláři nebo v sestavě.

Funkci DLookup lze 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 ve vypočí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 obsahuje následující 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 (Řetězcový výraz: Výraz, který je vyhodnocen jako posloupnost sousedících znaků. Prvky výrazu mohou zahrnovat: funkce vracející řetězec nebo řetězec typu Variant (VarType 8), řetězcový literál, konstantu, proměnnou nebo řetězec typu Variant</.), 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. Tento ř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 (Hodnota Null: Hodnota, kterou můžete zadat do pole nebo použít ve výrazech a dotazech a označit tak chybějící nebo neznámá data. V jazyce Visual Basic označuje klíčové slovo Null hodnotu Null. Některá pole, například pole primárního klíče, nemohou obsahovat 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 argument doména neobsahuje žádné záznamy, vrátí funkce DLookup hodnotu Null.

Pokud argumentu kritéria odpovídá více záznamů, 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ího klíče (Primární klíč: Jedno nebo více polí (sloupců), jejichž hodnota nebo kombinace hodnot jedinečným způsobem identifikuje každý záznam v tabulce. Primární klíč nepovoluje hodnoty Null a musí mít vždy jedinečný index. Slouží k vytvoření relace tabulky na cizí klíče v jiných tabulkách.), jako je [ČísloZaměstnance] v následujícím příkladu:

Dim varX As Variant
varX = DLookup("[Příjmení]", "Zaměstnanci", _
    "[ČísloZaměstnance] = 1")
      

Bez ohledu na to, zda funkci DLookup použijete v makru, modulu, výrazu dotazu nebo vypočí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 lze použít k zadání kritérií v řádku Kritéria v dotazu, ve výrazu vypočítaného pole v dotazu nebo v řádku Aktualizovat v aktualizačním dotazu (Aktualizační dotaz: Akční dotaz (příkaz SQL), který mění sadu záznamů podle zadaného kritéria (vyhledávacích podmínek)).

Funkci DLookup lze použít také ve výrazu ve vypočítaném ovládacím prvku ve formuláři nebo sestavě, pokud se pole, které chcete zobrazit, nenachází ve zdroji záznamů, na němž je daný formulář nebo sestava založena. 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. Chcete-li 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

 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 klepnutím na tlačítko 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 uvádějí použití této funkce v modulu jazyka Visual Basic for Applications (VBA). Další informace o práci s jazykem VBA získáte tak, že kliknete na položku Referenční informace pro vývojáře v rozevíracím seznamu vedle pole Hledat a do pole pro hledání zadáte jeden nebo více pojmů.

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("[NázevSpolečnosti]", _
    "Dopravci", "[IDdodavatele] = 1")
      

V dalším příkladu jsou v tabulce Dopravci zadána kritéria pro funkci DLookup pomocí ovládacího prvku 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á aplikace Microsoft Office Access 2007 aktuální hodnotu z ovládacího prvku.

Dim varX As Variant
varX = DLookup("[NázevSpolečosti]", "Dopravci", _
    "[IDdodavatele] = " & Forms!Dopravci!IDdodavatele)
      

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("[NázevSpolečnosti]", "Dopravci", _
    "[IDdodavatele] = " & intSearch)
      
 
 
Platí pro:
Access 2007