Pomocí funkce Nz můžete vrátit nulu, řetězec nulové délky (" ") nebo jinou zadanou hodnotu, pokud je hodnota Variant 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ého typu Variant. |
| valueifnull | Nepovinný argument (pokud není použit v dotazu).
Varianta, která poskytuje hodnotu, která má být vrácena, pokud je argument variantnull. 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 hodnoty null. |
Pokud je hodnota argumentu variantnull, vrátí funkce Nz číslo nula nebo řetězec nulové délky (při použití ve výrazu dotazu vždy vrátí řetězec nulové délky) v závislosti na tom, jestli kontext označuje, že hodnota by měla být číslo nebo řetězec. Pokud je zahrnutý volitelný argument valueifnull , vrátí funkce Nz hodnotu určenou tímto argumentem, pokud je argument variantnull. Při použití ve výrazu dotazu by funkce NZ měla vždy obsahovat argument valueifnull ,
Pokud hodnota variant není Null, vrátí funkce Nz hodnotu varianty.
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.
Výraz například vždy vrátí hodnotu Null, 2 + varX pokud je hodnota VariantvarXnull.
2 + Nz(varX) Vrátí ale 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 k vrácení řetězce, pokud je hodnota varFreightNull.
varResult = IIf(IsNull(varFreight), _
"No Freight Charge", varFreight)
V dalším příkladu poskytuje volitelný argument zadaný funkci Nz řetězec, který se má vrátit, pokud varFreight má 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