S funkcijo Nz lahko vrnete vrednost nič, Niz ničelne dolžine (" ") ali drugo določeno vrednost, ko je vrednost spremenljivke Variant enaka Null. S to funkcijo lahko na primer pretvorite vrednost Null v drugo vrednost in preprečite, da se razširi po izrazu.
Sintaksa
Nz ( variant [, valueifnull ] )
Sintaksa funkcije Nz ima te argumente:
Argument |
Opis |
variant |
Obvezen. Spremenljivka podatkovni tip Variant. |
valueifnull |
Izbiren (razen v primeru, ko je v rabi v poizvedbi). Različica, ki posreduje vrednost, ki je nato vrnjena, če je argument različiceNull. Ta argument omogoča, da je vrnjena vrednost, ki ni »null« ali niz dolžine nič. Opomba: Če funkcijo Nz uporabite v izrazu v poizvedbi, ne da bi uporabili argument valueifnull, bodo rezultati v poljih, v katerih je vrednost »null«, niz dolžine nič. |
Če je vrednost argumenta variant enaka Null, funkcija Nz vrne število nič ali niz dolžine nič (v izrazu poizvedbe vedno vrne niz dolžine nič), odvisno od tega, ali sobesedilo določa, da mora biti vrednost število ali niz. Če je vključen izbirni argument valueifnull, bo funkcija Nz vrnila vrednost, ki jo ta argument določa, če je vrednost argumenta variant enaka Null. Če je funkcija NZ uporabljena v izrazu poizvedbe, mora vedno vključevati argument valueifnull.
Če vrednost argumenta variant ni Null, funkcija Nz vrne vrednost argumenta variant.
Opombe
Funkcija Nz se uporablja za izraze, ki lahko vključujejo vrednosti Null. Če želite vsiliti izrazu, da ovrednoti na vrednost, ki ni Null, tudi če vsebuje vrednost Null, uporabite funkcijo Nz, da vrne vrednost nič, niz dolžine nič ali vrednost po meri.
Izraz 2 + varX bo na primer vedno vrnil vrednost Null, ko je argument variant varX enak Null. Vendar pa 2 + Nz(varX) vrne 2.
Funkcijo Nz lahko pogosto uporabite kot nadomestno funkcijo funkciji IIf. V prikazani kodi sta na primer potrebna dva izraza, vključno s funkcijo IIf, da funkcija vrne želeni rezultat. Prvi izraz, vključno s funkcijo IIf, se uporablja za preverjanje vrednosti spremenljivke in pretvarjanje v nič, če je vrednost Null.
varTemp = IIf(IsNull(varFreight), 0, varFreight)
varResult = IIf(varTemp > 50, "High", "Low")
V naslednjem primeru funkcija Nz deluje enako kot prvi izraz in želeni rezultat je dosežen le v enem koraku in ne šele v dveh.
varResult = IIf(Nz(varFreight) > 50, "High", "Low")
Če navedete vrednost za izbirni argument valueifnull, bo ta vrednost vrnjena, ko bo argument variant enak Null. Če vključite ta izbirni argument, se boste morda lahko izognili uporabi izraza, ki vsebuje funkcijo IIf. Ta izraz na primer uporablja funkcijo IIf, da vrne niz, če je vrednost varFreight enaka Null.
varResult = IIf(IsNull(varFreight), _
"No Freight Charge", varFreight)
V naslednjem primeru izbirni argument za funkcijo Nz zagotovi niz, ki bo vrnjen, če je vrednost varFreight enaka Null.
varResult = Nz(varFreight, "No Freight Charge")
Primeri poizvedb
Izraz |
Rezultati |
SELECT ProductID, NZ(Popust; »Ni podrobnosti na voljo«) AS Expr2 FROMSales izdelkov; |
Vrne »PRODUCTID« v stolpcu Expr1, ovrednoti vrednosti »Null« v polju »Popust« in vrne »Podrobnosti niso na voljo« za vse vrednosti Null (vrne vrednosti, ki niso ničelne, kot so). |
SELECT ProductID, NZ(Popust,"Ni podrobnosti na voljo") AS ReplaceNull FROMSales izdelkov; |
Vrne »PRODUCTID« v stolpcu »Izdelek«, ovrednoti vrednosti »Null« v polju »Popust« in vrne »Podrobnosti niso na voljo« za vse vrednosti Null (vrne vrednosti, ki niso ničelne, kot so) in prikaže v stolpcu ReplaceNull. |
primer VBA
Opomba: V spodnjih primerih je prikazana uporaba te funkcije v modulu Visual Basic for Applications (VBA). Če želite več informacij o delu z modulom VBA, izberite Sklic na razvijalca na spustnem seznamu ob možnosti Iskanje in v iskalno polje vnesite enega ali več izrazov.
Naslednji primer ovrednoti kontrolnik v obrazcu in vrne enega od dveh nizov glede na vrednost kontrolnika. Če je vrednost kontrolnika Null, postopek s funkcijo Nz pretvori vrednost Null v dolžino nič.
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