Nz-funktion avulla voit palauttaa nollan, tyhjän merkkijonon (" ") tai muun määritetyn arvon, kun variantti on Null. 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 tietotyypistä Variantti. |
| valueifnull | Valinnainen (ellei käytetä kyselyssä).
Variantti, joka antaa palautettavan arvon, jos variantti-argumentti on Tyhjäarvo. 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 , tulokset ovat tyhjäarvoisia arvoja sisältävien kenttien tyhjä merkkijono. |
Jos variantti-argumentin arvo on Tyhjäarvo, Nz-funktio palauttaa numeron nolla tai tyhjän merkkijonon (palauttaa aina tyhjän merkkijonon, kun sitä käytetään kyselylausekkeessa) sen mukaan, ilmaiseeko konteksti arvon olevan luku vai merkkijono. Jos valinnainen valueifnull-argumentti sisältyy, Nz-funktio palauttaa kyseisen argumentin määrittämän arvon, jos variantti-argumentti on Null. Kun NZ-funktiota käytetään kyselylausekkeessa, sen pitäisi aina sisältää 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.
Esimerkiksi lauseke 2 + varX palauttaa aina tyhjäarvon , kun varianttivarX on Tyhjäarvo. Palauttaa kuitenkin 2 + Nz(varX) 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 käyttää IIf-funktiota merkkijonon palauttamiseen, jos arvo varFreight on Null.
varResult = IIf(IsNull(varFreight), _
"No Freight Charge", varFreight)
Seuraavassa esimerkissä Nz-funktiolle annettu valinnainen argumentti antaa merkkijonon palautettavan, jos varFreight se on Tyhjäarvo.
varResult = Nz(varFreight, "No Freight Charge")
Esimerkkejä kyselystä
| Lauseke | Tulokset |
|---|---|
| SELECT ProductID, NZ(Discount,"No Detail Available") AS Expr2 FROM ProductSales; | Palauttaa "ProductID" sarakkeessa Lauseke1, laskee "Null"-arvot kentässä "Alennus" ja palauttaa "Ei tietoja käytettävissä" kaikille Null-arvoille (palauttaa muut kuin tyhjäarvot sellaisenaan). |
| SELECT ProductID, NZ(Discount,"No Detail Available") AS ReplaceNull FROM ProductSales; | Palauttaa "ProductID" sarakkeessa Tuote, laskee "Null"-arvot kentässä "Alennus" ja palauttaa "Ei tietoja käytettävissä" kaikille Null-arvoille (palauttaa muut kuin tyhjäarvot sellaisenaan) ja näkyy sarakkeessa KorvaaNull. |
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