Galite naudoti funkciją Nz , kad būtų grąžintas nulis, nulinio ilgio eilutė (" ") arba kita nurodyta reikšmė, kai variantas yra neapibrėžtas. Pavyzdžiui, galite naudoti šią funkciją norėdami konvertuoti Neapibrėžtą reikšmę (Null) į kitą reikšmę ir neleisti jai sklisti reiškinyje.
Sintaksė
Nz(variant [, valueifnull ] )
Funkcijos Nz sintaksės argumentai:
| Argumentas | Aprašymas |
|---|---|
| variantas | Būtinas. Duomenų tipo Variantas kintamasis. |
| reikšmė_jei_neapibrėžta | Pasirinktinis (nebent naudojamas užklausoje).
Variantas, pateikiantis grąžintiną reikšmę, jei varianto argumentas yra Null. Naudodami šį argumentą galite grąžinti kitą reikšmę nei nulis arba nulinio ilgio eilutė. Pastaba: Jeigu funkciją Nz naudojate užklausos išraiškoje, nenaudodami argumento valueifnull , laukuose, kuriuose yra neapibrėžtos reikšmės, gausite nulinio ilgio eilutes. |
Jei varianto argumento reikšmė yra Null, funkcija Nz grąžina skaičių nulį arba nulinio ilgio eilutę (visada grąžina nulinio ilgio eilutę, kai naudojama užklausos reiškinyje), atsižvelgiant į tai, ar kontekstas nurodo, kad reikšmė turi būti skaičius ar eilutė. Jei pasirinktinis reikšmės jei_neapibrėžta reikšmė yra įtrauktas, funkcija Nz pateiks reikšmę, nurodytą šiuo argumentu, jei varianto argumentas yra Neapibrėžta reikšmė. Naudojant užklausos reiškinyje, funkcija NZ visada turi apimti argumentą valueifnull ,
Jei varianto reikšmė nėra Null, funkcija Nz grąžina varianto reikšmę.
Pastabos
Funkcija Nz naudinga reiškiniuose, kuriuose gali būti Neapibrėžtos reikšmės (Null). Kad reiškinys būtų įvertintas ne kaip Neapibrėžta reikšmė (Null) net kai jame yra Neapibrėžta reikšmė (Null), naudokite funkciją Nz, kad ji grąžintų nulį, nulinio ilgio eilutę arba pasirinktinę grąžinamą reikšmę.
Pvz., reiškinys 2 + varX visada grąžins nulinę reikšmę, kai variantasvarX yra neapibrėžtas (Null). Tačiau 2 + Nz(varX) pateikia 2.
Dažnai funkciją Nz galima naudoti kaip funkcijos IIf alternatyvą. Pavyzdžiui, nurodytame kode būtini du reiškiniai, įskaitant funkciją IIf, kad būtų grąžintas pageidaujamas rezultatas. Pirmasis reiškinys, kuriame yra funkcija IIf, naudojamas patikrinti kintamojo reikšmę ir, jei jo reikšmė yra Neapibrėžta (Null), konvertuoti į nulį.
varTemp = IIf(IsNull(varFreight), 0, varFreight)
varResult = IIf(varTemp > 50, "High", "Low")
Kitame pavyzdyje funkcija Nz suteikia tas pačias funkcines galimybes kaip ir pirmasis reiškinys, o pageidaujamas rezultatas gaunamas atliekant vieną veiksmą, o ne du.
varResult = IIf(Nz(varFreight) > 50, "High", "Low")
Jei nurodysite pasirinktinio argumento reikšmė_jei_neapibrėžta reikšmę, ta reikšmė bus grąžinta, kai argumento variantas reikšmė yra Neapibrėžta (Null). Nurodydami šį pasirinktinį argumentą, galėsite nenaudoti reiškinio, kuriame būtų funkcija IIf. Pavyzdžiui, toliau pateikta išraiška naudoja funkciją IIf eilutei grąžinti, jei reikšmė varFreight yra Null.
varResult = IIf(IsNull(varFreight), _
"No Freight Charge", varFreight)
Kitame pavyzdyje funkcijai NZ pateiktas pasirinktinis argumentas pateikia eilutę, kuri turi būti pateikta, jei varFreightyra Null.
varResult = Nz(varFreight, "No Freight Charge")
Užklausų pavyzdžiai
| Išraiška | Rezultatai |
|---|---|
| SELECT ProductID, NZ(Discount,"No Detail Available") AS Expr2 FROM ProductSales; | Grąžina "ProductID" stulpelyje Expr1, įvertina "Null" reikšmes lauke "Discount" ir pateikia "No Details Available" (nėra informacijos) visoms Null reikšmėms (pateikia apibrėžtas ne null reikšmes). |
| SELECT ProductID, NZ(Discount,"No Detail Available") AS ReplaceNull FROM ProductSales; | Grąžina "ProductID" stulpelyje Product, įvertina "Null" reikšmes lauke "Discount" ir pateikia "No Details Available" (Nėra informacijos) visoms Null reikšmėms (pateikia ne null reikšmes tokias, kokios yra) ir rodoma stulpelyje ReplaceNull. |
VBA pavyzdys
Pastaba
Pateiktuose pavyzdžiuose parodyta, kaip naudoti šią funkciją „Visual Basic for Applications“ (VBA) modulyje. Daugiau informacijos apie darbą su VBA rasite išplečiamajame sąraše pasirinkę Kūrėjų nuoroda (šalia Ieškos) ir ieškos lauke įvedę vieną ar daugiau sąlygų.
Nurodytame pavyzdyje apskaičiuojamas formos valdiklis ir, atsižvelgus į valdiklio reikšmę, grąžinama viena iš dviejų eilučių. Jei valdiklio reikšmė yra Neapibrėžta (Null), procedūra naudoja funkciją Nz, kad konvertuotų reikšmę Neapibrėžta reikšmė (Null) į nulinio ilgio eilutę.
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