Voit käyttää Nz-funktiota palauttamaan nollan, tyhjän merkkijonon (" ") tai muun määritetyn arvon, kun muuttuja on tyhjäarvoinen. Voit esimerkiksi muuntaa tämän funktion avulla Null-arvon toiseksi arvoksi ja estää sitä välittymästä lausekkeessa.
Syntaksi
Nz(variantti [, valueifnull ] )
Nz-funktion syntaksilla on seuraavat argumentit:
| Argumentti | Kuvaus |
|---|---|
| variantti | Pakollinen. Muuttuja, jonka tietotyyppi on Variantti. |
| valueifnull | Valinnainen (ellei käytetä kyselyssä).
Variantti, joka antaa palautettavan arvon, jos varianttiargumentti on tyhjäarvoinen. Tämä argumentti mahdollistaa sen, että voit palauttaa jonkin muun arvon kuin nollan tai tyhjän merkkijonon. Huomautus: Jos käytät Nz-funktiota kyselyn lausekkeessa käyttämättä valueifnull-argumenttia , tuloksena on tyhjä merkkijono tyhjiä arvoja sisältävissä kentissä. |
Jos muuttuja-argumentin arvo on tyhjäarvo, Nz-funktio palauttaa numeron nolla tai tyhjän merkkijonon (palauttaa aina tyhjän merkkijonon, jos käytetään kyselylausekkeessa) sen mukaan, näkyykö kontekstista arvon olevan numero vai merkkijono. Jos valinnainen valueifnull-argumentti sisällytetään, Nz-funktio palauttaa kyseisen argumentin määrittämän arvon, jos varianttiargumentti on tyhjäarvoinen. Kun NZ-funktiota käytetään kyselylausekkeessa, siihen tulee aina sisältyä valueifnull-argumentti ,
Jos variantin arvo ei ole tyhjäarvo, Nz-funktio palauttaa variantin arvon.
Huomautuksia
Nz-funktio on hyödyllinen lausekkeissa, jotka saattavat sisältää Null-arvoja. Voit pakottaa lausekkeen määrittämään muun kuin Null-arvon, vaikka se sisältäisikin Null-arvon, palauttamalla Nz-funktion avulla nollan, tyhjän merkkijonon tai mukautetun palautusarvon.
Lauseke 2 + varX palauttaa esimerkiksi aina tyhjäarvon , kun muuttujavarX on tyhjäarvoinen. Palauttaa 2 + Nz(varX) kuitenkin arvon 2.
Voit usein myös käyttää Nz-funktiota vaihtoehtona IIf-funktiolle. Esimerkiksi seuraavassa koodissa olevat kaksi lauseketta, joihin sisältyy IIf-funktio, ovat tarpeellisia, jotta haluttu tulos voidaan palauttaa. Ensimmäistä lauseketta, joka sisältää IIf-funktion, käytetään tarkistamaan muuttujan arvo ja muuntamaan se nollaksi, jos se on Null.
varTemp = IIf(IsNull(varFreight), 0, varFreight)
varResult = IIf(varTemp > 50, "High", "Low")
Seuraavassa esimerkissä Nz-funktio toimii samalla tavalla kuin ensimmäisessä lausekkeessa, ja haluttu tulos saavutetaan yhdessä vaiheessa kahden asemesta.
varResult = IIf(Nz(varFreight) > 50, "High", "Low")
Jos annat arvon valinnaiseen argumenttiin valueifnull, kyseinen arvo palautetaan, jos variantti on Null. Lisäämällä tämän valinnaisen argumentin saatat välttää IIf-funktion sisältämän lausekkeen käytön. Esimerkiksi seuraava lauseke palauttaa IIf-funktion avulla merkkijonon, jos arvo varFreight on Null.
varResult = IIf(IsNull(varFreight), _
"No Freight Charge", varFreight)
Seuraavassa esimerkissä Nz-funktioon annettu valinnainen argumentti antaa palautettavan merkkijonon, jos varFreight se on tyhjäarvoinen.
varResult = Nz(varFreight, "No Freight Charge")
Esimerkkejä kyselyistä
| Lauseke | Tulokset |
|---|---|
| SELECT ProductID, NZ(Discount,"No Detail Available") AS Expr2 FROM ProductSales; | Palauttaa arvon "Tuotetunnus" sarakkeeseen Expr1, laskee Discount-kentän Null-arvot ja palauttaa "Tietoja ei saatavilla" kaikille Null-arvoille (palauttaa muut kuin Null-arvot sellaisenaan). |
| SELECT ProductID, NZ(Discount,"No Details Available") AS ReplaceNull FROM ProductSales; | Palauttaa arvon "Tuotetunnus" sarakkeeseen "Tuote", arvioi Alennus-kentän Null-arvot ja palauttaa "Tietoja ei saatavilla" kaikille Null-arvoille (palauttaa muut kuin Null-arvot sellaisenaan) ja näkyy sarakkeessa ReplaceNull. |
VBA-esimerkki
Huomautus
Seuraavissa esimerkeissä kerrotaan, kuinka tätä funktiota käytetään Visual Basic for Applications (VBA) -moduulissa. Jos haluat lisätietoja VBA:n käytöstä, valitse Sovelluskehittäjän opasHaku-kentän viereisestä luettelosta ja anna yksi tai useampi hakuehto hakukenttään.
Seuraavassa esimerkissä määritetään ohjausobjekti lomakkeessa ja palautetaan toinen kahdesta ohjausobjektin arvoon perustuvasta merkkijonosta. Jos ohjausobjektin arvo on Null, toimintosarja muuntaa Null-arvon tyhjäksi merkkijonoksi käyttämällä Nz-funktiota.
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