V desktopových databázích Accessu můžete tuto DLookup funkci použít k získání hodnoty určitého pole ze zadané sady záznamů (domény). V modulu jazyk Visual Basic for Application (VBA) můžete použít DLookup makro, výraz dotazu nebo počítaný ovládací prvek ve formuláři nebo sestavě.
Tuto DLookup funkci můžete 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. Ve formuláři se zobrazí pole, , OrderIDQuantityProductIDUnitPrice, a .Discount Toto ProductName pole je ale v jiné tabulce, v tabulce Products . Funkci můžete použít DLookup v počítaném ovládacím prvku a ProductName zobrazit ji ve stejném formuláři.
Syntaxe
DLookup(expr, domain [, criteria])
Funkce DLookup má tyto argumenty:
| Argument | Popis |
|---|---|
expr |
Povinný argument. Výraz určující pole, jehož hodnotu chcete vrátit. Může jít buď o řetězcový výraz, který identifikuje pole v tabulce nebo dotazu, nebo výraz, který provádí výpočet s daty v tomto poli. Do pole exprmůžete zahrnout název pole tabulky, ovládacího prvku ve formuláři, konstanty nebo funkce. Pokud expr obsahuje funkci, může jít o předdefinovanou funkci nebo funkci definovanou uživatelem, ale nikoli o jinou doménovou agregační SQL nebo agregační funkci. |
domain |
Povinný argument. Řetězcový výraz určující sadu záznamů, které tvoří doménu. Může jít o název tabulky nebo název dotazu, který nevyžaduje parametr. |
criteria |
Nepovinný argument. Řetězcový výraz, který slouží k omezení oblasti dat, na které funkce DLookup běží.
criteria Například často odpovídá klauzuli WHERE ve SQL výrazu bez slova WHERE. Pokud tento argument criteriavynecháte, DLookup funkce bude zjišťována expr pro celou doménu. Všechna pole obsažená v criteria tomto poli musí být také polem v domain. V opačném případě funkce DLookup vrátí Nullhodnotu . |
Poznámky
Funkce DLookup vrátí hodnotu jednoho pole na základě informací zadaných v .criteria I když criteria je volitelný, pokud nezadáte hodnotu, DLookup funkce vrátí náhodnou hodnotu v doméně.
Pokud žádnému záznamu neodpovídá criteria, nebo pokud domain neobsahuje žádné záznamy, DLookup vrátí Nullfunkce .
Pokud je splněno criteriavíce než jedno pole, DLookup funkce vrátí první výskyt. Měli byste zadat kritéria, která zajistí, že hodnota pole vrácená uživatelem bude jedinečná DLookup . Pro kritéria můžete chtít použít hodnotu primárního klíče (jako [EmployeeID] v následujícím příkladu), abyste zajistili DLookup vrácení jedinečné hodnoty:
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, vytvořte argument criteria pečlivě, aby ho Access správně vyhodnotil.
Tuto DLookup funkci můžete použít k zadání kritérií v řádku Kritéria v dotazu, ve výrazu počítaného pole v dotazu nebo na řádku Aktualizovat do v aktualizačním dotazu.
Tuto funkci lze použít DLookup 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ář Podrobnosti objednávky založený na tabulce Rozpis objednávek a obsahuje textové pole ProductID , ve kterém se zobrazí příslušné ProductID pole. Pokud chcete vyhledávat ProductName v Products tabulce založené na hodnotě v textovém poli, vytvořte další textové pole a nastavte jeho vlastnost ZdrojOvládacího prvku na následující výraz:
=DLookup("[ProductName]", "Products", "[ProductID] =" & Forms![Order Details]!ProductID)
Tipy
- I když můžete funkci DLookup použít k zobrazení hodnoty z pole v cizí tabulce, může být efektivnější vytvořit dotaz obsahující požadovaná pole z obou tabulek a na tomto dotazu pak založit formulář nebo sestavu.
- 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ů domain nebudou při použití této funkce zahrnuty. Pokud chcete DLookup použít změněné hodnoty, nejdřív změny uložte kliknutím na Uložit záznam v části Záznamy na kartě Data , přesunutím fokusu na jiný záznam nebo použitím metody Update .
Příklad
Poznámka
Následující příklady ukazují použití této funkce v modulu VBA (Visual Basic pro Applications). Další informace o práci s modulem VBA najdete v referenčních informacích k jazyku VBA pro Access.
Následující příklad vrátí informace o názvu z CompanyName pole záznamu, který vyhovuje .criteria Doménou Shippers je tabulka. Argument criteria omezuje výslednou sadu záznamů na záznamy, které ShipperID se rovnají 1.
Dim varX As Variant
varX = DLookup("[CompanyName]", _
"Shippers", "[ShipperID] = 1")
V dalším příkladu z Shippers tabulky jsou zadána kritéria funkce DLookup pomocí ovládacího prvku ShipperID formulář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 DLookup spuštění získá Access z ovládacího prvku aktuální hodnotu.
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)