Funkci Nz můžete použít pro vrácení nuly, Řetězec nulové délky (" ") nebo jiné zadané hodnoty, pokud má Variant hodnotu Null. Tuto funkci můžete například použít pro převod hodnoty Null na jinou hodnotu a zabránit jejímu šíření v rámci výrazu.
Syntaxe
Nz ( variant [, valueifnull ] )
Syntaxe funkce Nz obsahuje následující argumenty:
Argument |
Popis |
variant |
Povinný argument. Proměnná Datový typ variant. |
valueifnull |
Nepovinný argument (pokud není použit v dotazu). Proměnná variant poskytující hodnotu, která má být vrácena, pokud má argument variant hodnotu Null. Tento argument umožňuje vrácení hodnoty jiné než nula nebo řetězec nulové délky. Poznámka: Pokud použijete funkci Nz ve výrazu v dotazu bez použití argumentu valueifnull, bude výsledkem řetězec nulové délky v polích obsahujících prázdné hodnoty. |
Pokud má argument variant hodnotu Null, vrátí funkce Nz číslo nula nebo řetězec nulové délky (ve výrazu dotazu vrátí vždy řetězec nulové délky), podle toho, jestli kontext určuje, že hodnota má být číslo nebo řetězec. Pokud zadáte nepovinný argument valueifnull, vrátí funkce Nz hodnotu určenou tímto argumentem v případě, že hodnota argumentu variant je Null. Ve výrazu dotazu by funkce NZ měla argument valueifnull zahrnovat vždy.
Pokud hodnota argumentu variant není Null, vrátí funkce Nz hodnotu uvedenou v argumentu variant.
Poznámky
Funkce Nz je užitečná u výrazů, které mohou obsahovat hodnoty Null. Pokud chcete, aby byl výraz přehodnocen na jinou hodnotu, než je hodnota Null, i když obsahuje hodnotu Null, použijte funkci Nz pro vrácení nuly, řetězce nulové délky nebo uživatelem nastavené vrácené hodnoty.
Například výraz 2 + varX vždy vrátí hodnotu Null, pokud bude mít argument Variant varX hodnotu Null. Výraz 2 + Nz(varX) však vrátí hodnotu 2.
Funkci Nz lze často použít jako alternativu funkce IIf. Například v následujícím kódu jsou k vrácení požadovaného výsledku potřebné dva výrazy, včetně funkce IIf. První výraz zahrnující funkci IIf se používá pro kontrolu hodnoty proměnné a jejímu převodu na nulu, pokud má hodnotu Null.
varTemp = IIf(IsNull(varFreight), 0, varFreight)
varResult = IIf(varTemp > 50, "High", "Low")
V dalším příkladu zajišťuje funkce Nz stejnou operaci jako první výraz a požadovaného výsledku je dosaženo pomocí jednoho kroku místo dvou.
varResult = IIf(Nz(varFreight) > 50, "High", "Low")
Pokud zadáte hodnotu nepovinného argumentu valueifnull, bude vrácena tato hodnota v případě, že hodnota argumentu variant je Null. Zadáním tohoto nepovinného argumentu se můžete vyhnout použití výrazu obsahujícího funkci IIf. Například následující výraz používá funkci IIf pro vrácení řetězce, pokud je hodnota argumentu varFreightNull.
varResult = IIf(IsNull(varFreight), _
"No Freight Charge", varFreight)
V následujícím příkladu obsahuje volitelný argument přiřazený k funkci Nz řetězec, který bude vrácen, pokud bude mít argument varFreight hodnotu Null.
varResult = Nz(varFreight, "No Freight Charge")
Příklady dotazů
Výraz |
Výsledky |
SELECT ProductID, NZ(Discount;"No Detail Available") AS Expr2 FROM ProductSales; |
Vrátí hodnotu ProductID ve sloupci Výraz1, vyhodnotí hodnoty Null v poli Discount a vrátí hodnotu "Nejsou k dispozici žádné podrobnosti" pro všechny hodnoty Null (vrátí hodnoty, které nejsou null tak, jak jsou). |
SELECT ProductID, NZ(Discount;"No Detail Available") AS ReplaceNull FROM ProductSales; |
Vrátí hodnotu ProductID ve sloupci Product, vyhodnotí hodnoty Null v poli Discount a vrátí hodnotu No Details Available pro všechny hodnoty Null (vrátí hodnoty bez hodnoty null tak, jak jsou) a zobrazí se ve sloupci ReplaceNull. |
Příklad jazyka VBA
Poznámka: Následující příklady ukazují použití této funkce v modulu VBA (Visual Basic pro Applications). Pokud chcete 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 je vyhodnocen ovládací prvek ve formuláři a vrácen jeden ze dvou řetězců na základě hodnoty tohoto ovládacího prvku. Pokud je hodnota tohoto ovládacího prvku Null, použije tato procedura funkci Nz k převodu hodnoty Null na řetězec nulové délky.
Public Sub CheckValue()
Dim frm As Form Dim ctl As Control Dim varResult As Variant ' Return Form object variable ' pointing to Orders form. Set frm = Forms!Orders ' Return Control object variable ' pointing to ShipRegion. Set ctl = frm!ShipRegion ' Choose result based on value of control. varResult = IIf(Nz(ctl.Value) = vbNullString, _ "No value.", "Value is " & ctl.Value & ".") ' Display result. MsgBox varResult, vbExclamation End Sub