Funkciu Nz môžete použiť na vrátenie nuly, reťazca s nulovou dĺžkou (" ") alebo inej zadanej hodnoty, keď má hodnota Variant hodnotu Null. Túto funkciu môžete použiť napríklad na skonvertovanie hodnoty Null na inú hodnotu a zabrániť jej rozšíreniu vo výraze.
Syntax
Nz(variant [, valueifnull ] )
Syntax funkcie Nz má tieto argumenty:
| Argument | Popis |
|---|---|
| variant | Povinný argument. Premenná údajového typu Variant. |
| valueifnull | Voliteľné (ak sa nepoužíva v dotaze).
Hodnota typu Variant poskytujúca hodnotu, ktorá sa má vrátiť, ak má argumenttypu Variant hodnotu Null. Tento argument umožňuje vrátiť hodnotu inú ako nula alebo reťazec s nulovou dĺžkou. Poznámka: Ak použijete funkciu Nz vo výraze v dotaze bez použitia argumentu valueifnull , výsledkom bude reťazec nulovej dĺžky v poliach, ktoré obsahujú hodnoty null. |
Ak je hodnota argumentu typu VariantNull, funkcia Nz vráti číslo, nulu alebo reťazec s nulovou dĺžkou (pri použití vo výraze dotazu vždy vráti reťazec s nulovou dĺžkou) v závislosti od toho, či kontext naznačuje, že hodnota má byť číslo alebo reťazec. Ak je zahrnutý voliteľný argument valueifnull , funkcia Nz vráti hodnotu určenú týmto argumentom, ak má argument varianthodnotu Null. Keď sa funkcia NZ použije vo výraze dotazu, mala by vždy obsahovať argument valueifnull .
Ak hodnota variant nie je Null, funkcia Nz vráti hodnotu variant.
Poznámky
Funkcia Nz je užitočná pre výrazy, ktoré môžu zahŕňať hodnoty Null. Ak chcete donútiť výraz k tomu, aby sa vyhodnotil ako hodnota iná než Null aj vtedy, keď obsahuje hodnotu Null, použite na vrátenie nuly, reťazca s nulovou dĺžkou alebo vlastnej vrátenej hodnoty funkciu Nz.
Výraz 2 + varX napríklad vždy vráti hodnotu Null , ak má VariantvarXhodnotu Null. Vráti 2 + Nz(varX) sa však hodnota 2.
Funkciu Nz je často možné použiť ako alternatívu k funkcii IIf. Napríklad na vrátenie požadovaného výsledku sú v nasledujúcom kóde potrebné dva výrazy obsahujúce funkciu IIf. Prvý výraz obsahujúci funkciu IIf sa použije na kontrolu hodnoty premennej a ak je hodnota Null, tak aj na jej konvertovanie na nulu.
varTemp = IIf(IsNull(varFreight), 0, varFreight)
varResult = IIf(varTemp > 50, "High", "Low")
V nasledujúcom príklade funguje funkcia Nz rovnako ako prvý výraz a na dosiahnutie požadovaného výsledku stačí jeden, nie dva kroky.
varResult = IIf(Nz(varFreight) > 50, "High", "Low")
Po zadaní hodnoty pre voliteľný argument valueifnull sa v prípade, že argument variant má hodnotu Null, daná hodnota vráti. Pri použití voliteľného argumentu je možné vyhnúť sa použitiu výrazu obsahujúceho funkciu IIf. Nasledujúci výraz napríklad používa funkciu IIf na vrátenie reťazca, ak je hodnota NullvarFreight.
varResult = IIf(IsNull(varFreight), _
"No Freight Charge", varFreight)
V nasledujúcom príklade voliteľný argument zadaný vo funkcii Nz poskytuje reťazec, ktorý sa vráti, ak varFreight má hodnotu null.
varResult = Nz(varFreight, "No Freight Charge")
Príklady dotazov
| Výraz | Výsledky |
|---|---|
| SELECT ProductID, NZ(Discount;"No Detail Available") AS Expr2 FROM ProductSales; | Vráti hodnotu "IDProduktu" v stĺpci Expr1, vyhodnotí hodnoty "Null" v poli "Zľava" a vráti hodnotu "Nie sú k dispozícii žiadne podrobnosti" pre všetky nulové hodnoty (vráti hodnoty iné než null tak, ako je). |
| SELECT ProductID, NZ(Discount;"No Detail Available") AS ReplaceNull FROM ProductSales; | Vráti hodnotu "IDProduktu" v stĺpci Produkt, vyhodnotí hodnoty "Null" v poli "Zľava" a vráti hodnotu "Nie sú k dispozícii žiadne podrobnosti" pre všetky hodnoty Null (vráti hodnoty iné než null tak, ako je) a zobrazí sa v stĺpci ReplaceNull. |
Príklad VBA
Poznámka
Nasledujúce príklady ukazujú použitie tejto funkcie v module jazyka Visual Basic for Applications (VBA). Ak chcete získať ďalšie informácie o práci s jazykom VBA, vyberte z rozbaľovacieho zoznamu vedľa položky Hľadať možnosť Odkaz pre vývojára a do vyhľadávacieho poľa zadajte nejaké výrazy.
Nasledujúci príklad vyhodnotí ovládací prvok vo formulári a na základe hodnoty ovládacieho prvku vráti jeden z dvoch reťazcov. Ak je hodnota ovládacieho prvku Null, v postupe sa použije funkcia Nz, ktorá skonvertuje hodnotu Null na reťazec s nulovou dĺžkou.
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