Funkciju Nz možete koristiti da biste vratili nulu, niz nulte duljine (" ") ili neku drugu navedenu vrijednost kada je vrijednost Variant Null. Na primjer, možete koristiti ovu funkciju da biste vrijednost Null pretvorili u drugu vrijednost i spriječili njezino ponavljanje u izrazu.
Sintaksa
Nz(variant [, valueifnull ] )
Sintaksa funkcije Nz sadrži ove argumente:
| Argument | Opis |
|---|---|
| variant | Obavezno. Varijabla vrste podataka Variant. |
| valueifnull | Neobavezno (osim ako se koristi u upitu).
Variant koji osigurava vrijednost koja se vraća ako je argument variantNull. Ovaj argument omogućuje vraćanje vrijednosti koja nije nula ili niz nulte duljine. Napomena: Ako u izrazu u upitu koristite funkciju Nz bez korištenja argumenta valueifnull , rezultat će biti niz nulte duljine u poljima koja sadrže vrijednosti null. |
Ako je vrijednost argumenta variantNull, funkcija Nz vraća broj nula ili niz nulte duljine (uvijek vraća niz nulte duljine kada se koristi u izrazu upita), ovisno o tome upućuje li kontekst na to da vrijednost mora biti broj ili niz. Ako je uvršten neobavezni argument valueifnull , tada će funkcija Nz vratiti vrijednost određenu tim argumentom ako je argument variantNull. Kada se koristi u izrazu upita, funkcija NZ uvijek treba uključivati argument valueifnull .
Ako vrijednost variant nije Null, tada funkcija Nz vraća vrijednost varijant.
Napomene
Funkcija Nz korisna je za izraze koji mogu uključivati vrijednosti Null. Da biste izrazu nametnuli vrednovanje na vrijednost koja nije Null čak i ako sadrži vrijednost Null, koristite funkciju Nz da bi se vratila nula, niz nulte duljine ili prilagođena povratna vrijednost.
Na primjer, izraz 2 + varX uvijek vraća vrijednost Null kada je vrijednost VariantvarXNull. Međutim, 2 + Nz(varX) vraća 2.
Često možete funkciju Nz koristiti umjesto funkcije IIf. Na primjer, u sljedećem kodu, dva izraza s funkcijom IIf potrebni su za vraćanje željenog rezultata. Prvi izraz s funkcijom IIf koristi se za provjeru vrijednosti varijable i pretvaranje u nulu ako je Null.
varTemp = IIf(IsNull(varFreight), 0, varFreight)
varResult = IIf(varTemp > 50, "High", "Low")
U sljedećem primjeru, funkcija Nz pruža istu funkcionalnost kao prvi izraz, a željeni se rezultat postiže u jednom koraka umjesto dva.
varResult = IIf(Nz(varFreight) > 50, "High", "Low")
Ako unesete vrijednost za neobavezni argument valueifnull, ta će se vrijednost vratiti kada je variantNull. Uvrštavanjem tog neobaveznog argumenta moći ćete izbjeći korištenje izraza koji sadrži funkciju IIf. Sljedeći izraz, primjerice, koristi funkciju IIf da bi vratio niz ako je vrijednost nullvarFreight.
varResult = IIf(IsNull(varFreight), _
"No Freight Charge", varFreight)
U sljedećem primjeru neobavezni argument naveden u funkciji Nz pruža niz koji se vraća ako varFreight je Null.
varResult = Nz(varFreight, "No Freight Charge")
Primjeri upita
| Izraz | Rezultati |
|---|---|
| SELECT IDproizvoda, NZ(Popust;"Nema dostupnih detalja") AS Expr2 FROM ProductSales; | Vraća "IDProizvoda" u stupcu Izraz1, vrednuje vrijednosti "Null" u polju "Popust" i vraća "Nema dostupnih detalja" za sve vrijednosti null (vraća vrijednosti koje nisu null). |
| SELECT IDproizvoda, NZ(Popust;"Nema dostupnih detalja") AS ReplaceNull FROM ProductSales; | Vraća "IDProizvoda" u stupcu Proizvod, procjenjuje vrijednosti "Null" u polju "Popust" i vraća "Nema dostupnih detalja" za sve vrijednosti null (vraća vrijednosti koje nisu null u obliku u kojem jesu) i prikazuje u stupcu ReplaceNull. |
VBA primjer
Napomena
Primjeri koji slijede prikazuju korištenje te funkcije u modulu jezika Visual Basic for Applications (VBA). Da biste pronašli dodatne informacije o radu s VBA-om, na padajućem popisu uz stavku Traži odaberite stavku Referenca za razvojne inženjere pa unesite jedan ili više izraza u okvir pretraživanja.
Sljedeći primjer vrednuje kontrolu na obrascu i vraća jedan od dva niza temeljena na vrijednosti kontrole. Ako je vrijednost kontrole Null, postupak koristi funkciju Nz za pretvaranje vrijednosti Null u niz nulte duljine.
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