Možete koristiti funkciju Nz za vraćanje nule, niz nulte dužine (" ") ili neku drugu navedenu vrijednost kada parametar Variant is ima vrijednost 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 varijantevrsta podatka. |
valueifnull |
Neobavezno (osim ako se koristi u upitu). Variant koja osigurava vrijednost koja se vraća ako je variant argument Null. Ovaj argument omogućuje vraćanje vrijednosti koja nije nula ili niz nulte duljine. Napomena: Ako koristite funkciju Nz u izrazu u upitu bez korištenja argumenta valueifnull, rezultat će biti niz nulte duljine u poljima koja sadrže null vrijednosti. |
Ako je vrijednost variant argumenta Null, 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 valueifnull argument, tada će funkcija Nz vratiti vrijednost određenu tim argumentom ako je variant argument Null. Kada se koristi u izrazu upita, funkcija NZ uvijek treba uključivati valueifnull argument.
Ako vrijednost variant nije Null, tada funkcija Nz vraća vrijednost variant.
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 Variant varX ima vrijednost Null. 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. Na primjer, sljedeći izraz koristi funkciju IIf za vraćanje niza ako je vrijednost varFreightNull.
varResult = IIf(IsNull(varFreight), _
"No Freight Charge", varFreight)
U sljedećem primjeru, neobavezni argument naveden za funkciju Nz daje niz koji se vraća ako je varFreightNull.
varResult = Nz(varFreight, "No Freight Charge")
Primjeri upita
Izraz |
Rezultati |
SELECT IDproizvoda, NZ(Popust;"Nema dostupnog detalja") KAO Izraz2 FROMProizvodaProdaja; |
Vraća "IDproizvoda" u stupcu Izraz1, vrednuje vrijednosti "Null" u polju "Popust" i vraća "Nema dostupnih pojedinosti" za sve vrijednosti null (vraća vrijednosti koje nisu null kao što je). |
SELECT IDproizvoda, NZ(Popust;"Nema dostupnog detalja") AS ReplaceNull FROMProdajeProizvoda; |
Vraća "IDproizvoda" u stupcu Proizvod, vrednuje vrijednosti "Null" u polju "Popust" i vraća "Nema dostupnih pojedinosti" za sve vrijednosti Null (vraća vrijednosti koje nisu null kao što je) i prikazuje u stupcu ReplaceNull. |
Primjer VBA-a
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