Funkciją Nz naudokite norėdami grąžinti nulį, nulinio ilgio eilutė (" ") arba kitą nurodytą reikšmę, kai Variantas yra neapibrėžta reikšmė (Null). 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 ( variantas [, reikšmė_jei_neapibrėžta ] )
Funkcijos Nz sintaksės argumentai:
Argumentas |
Aprašas |
variantas |
Būtinas. Variantoduomenų tipas kintamasis. |
reikšmė_jei_neapibrėžta |
Pasirinktinis (nebent naudojamas užklausoje). Variantas, kuris suteikia grąžinamą reikšmę, jeigu argumente variantas yra Neapibrėžta reikšmė (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 reikšmė_jei_neapibrėžta laukuose, kuriuose yra neapibrėžtos reikšmės, gausite nulinio ilgio eilutes. |
Jei argumento variantas reikšmė yra Neapibrėžta (Null), funkcija Nz grąžina nulį arba nulinio ilgio eilutę (kai naudojama užklausos reiškinyje, visada grąžina nulinio ilgio eilutę), atsižvelgdama į tai, kokią reikšmę (skaičių ar eilutę) nurodo kontekstas. Jei nurodytas pasirinktinis argumentas reikšmė_jei_neapibrėžta, tuomet funkcija Nz grąžina reikšmę, kurią nurodo šis argumentas, jei argumento variantas reikšmė yra Neapibrėžta (Null). Kai naudojama užklausos reiškinyje, funkcijoje NZ visada turi būti nurodytas argumentas reikšmė_jei_neapibrėžta.
Jei argumento variantas reikšmė nėra Neapibrėžta (Null), funkcija Nz grąžina argumento variantas 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ę.
Pavyzdžiui, reiškinys 2 + varX visada pateiks reikšmę Neapibrėžta reikšmė (Null), kai Varianto varX reikšmė yra Neapibrėžta reikšmė (Null). Tačiau 2 + Nz(varX) grąžina reikšmę 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, nurodytame reiškinyje naudojama funkcija IIf, grąžinanti eilutę, jei varFreight reikšmė yra Neapibrėžta (Null).
varResult = IIf(IsNull(varFreight), _
"No Freight Charge", varFreight)
Kitame pavyzdyje funkcijoje Nz nurodytas pasirinktinis argumentas pateikia grąžintiną eilutę, jei varFreight yra Neapibrėžta (Null).
varResult = Nz(varFreight, "No Freight Charge")
Užklausų pavyzdžiai
Reiškinys |
Rezultatai |
SELECT ProductID, NZ(Discount,"No Detail Available") AS Expr2 FROM ProductSales; |
Stulpelyje Reiškinys1 pateikia "ProductID", įvertina "Null" reikšmes lauke "Nuolaida" ir pateikia visų neapibrėžtų reikšmių reikšmę "Nėra išsamios informacijos" (pateikia ne nulines reikšmes, kaip yra). |
SELECT ProductID, NZ(Nuolaida,"Nėra išsamios informacijos") AS ReplaceNull FROM ProductSales; |
Stulpelyje Produktas pateikia ProductID, įvertina lauko Nuolaida reikšmes Null ir pateikia visų Neapibrėžtų reikšmių (Null reikšmė yra) reikšmę Nėra išsamios informacijos ir ji 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