Du kan bruke Nz-funksjonen til å returnere null, en nullengdestreng (" ") eller en annen angitt verdi når en Variant er Null. Du kan for eksempel bruke denne funksjonen til å konvertere en Null-verdi til en annen verdi og hindre at den overføres gjennom et uttrykk.
Syntaks
Nz ( variant [, verdihvisnull ] )
Syntaksen for Nz-funksjonen har disse argumentene:
Argument |
Beskrivelse |
variant |
Obligatorisk. En variabel av datatype Variant. |
verdihvisnull |
Valgfritt (hvis ikke det brukes i en spørring). En Variant-datatype som inneholder en verdi som skal returneres hvis variant-argumentet er Null. Dette argumentet gir deg muligheten til å returnere en annen verdi enn null eller en tom streng. Obs!: Hvis du bruker Nz-funksjonen i et uttrykk eller en spørring uten at du bruker verdihvisnull-argumentet, blir resultatet en tom streng i feltene som inneholder Null-verdier. |
Hvis verdien til variant-argumentet er Null, returnerer Nz-funksjonen tallet null eller en tom streng (den returnerer alltid en tom streng når den brukes i et spørreuttrykk), avhengig av om konteksten tilsier at verdien skal være et tall eller en streng. Hvis det valgfrie argumentet verdihvisnull er inkludert, vil Nz-funksjonen returnere verdien som er angitt av argumentet, hvis variant-argumentet er Null. Når NZ-funksjonen brukes i et spørreuttrykk, bør den alltid inneholde argumentet verdihvisnull.
Hvis verdien til variant ikke er Null, vil Nz-funksjonen returnere verdien til variant.
Merknader
Nz-funksjonen er nyttig for uttrykk som kanskje inneholder Null-verdier. Hvis du vil tvinge et uttrykk til å evalueres til en verdi som ikke er Null selv når det inneholder en Null-verdi, bruker du Nz-funksjonen til å returnere null, en tom streng eller en egendefinert returverdi.
Uttrykket 2 + varX vil for eksempel alltid returnere en Null-verdi når Variant varX er Null. Men 2 + Nz(varX) returnerer 2.
Du kan ofte bruke Nz-funksjonen som et alternativ til IIf-funksjonen. I følgende kode er det for eksempel nødvendig å ha to uttrykk som inkluderer IIf-funksjonen for at ønsket resultatet skal returneres. Det første uttrykket med IIf-funksjonen brukes til å kontrollere verdien til en variabel og konvertere den til null hvis den er Null.
varTemp = IIf(IsNull(varFreight), 0, varFreight)
varResult = IIf(varTemp > 50, "High", "Low")
I neste eksempel har Nz-funksjonen samme funksjonalitet som det første uttrykket, og ønsket resultatet oppnås i ett trinn i stedet for to.
varResult = IIf(Nz(varFreight) > 50, "High", "Low")
Hvis du oppgir en verdi for det valgfrie argumentet verdihvisnull, returneres denne verdien når variant er Null. Hvis du tar med dette valgfrie argumentet, slipper du kanskje å bruke et uttrykk som inneholder IIf-funksjonen. Følgende uttrykk bruker for eksempel IIf-funksjonen til å returnere en streng hvis verdien til varFreight er Null.
varResult = IIf(IsNull(varFreight), _
"No Freight Charge", varFreight)
I neste eksempel vil det valgfrie argumentet som leveres til Nz-funksjonen, gi strengen som skal returneres hvis varFreight er Null.
varResult = Nz(varFreight, "No Freight Charge")
Spørringseksempler
Expression |
Resultater |
SELECT ProductID, NZ(Discount,"No Detail Available") AS Expr2 FROM ProductSales; |
Returnerer «ProductID» i kolonne Uttrykk1, evaluerer Null-verdiene i feltet Rabatt og returnerer «Ingen detaljer tilgjengelig» for alle nullverdier (returnerer verdiene som ikke er null, som de er). |
SELECT ProductID, NZ(Discount,"No Detail Available") AS ReplaceNull FROM ProductSales; |
Returnerer "ProductID" i kolonnen Produkt, evaluerer Null-verdiene i feltet "Rabatt" og returnerer "Ingen detaljer tilgjengelig" for alle nullverdier (returnerer ikke-null-verdiene som de er) og vises i kolonnen ReplaceNull. |
VBA-eksempel
Obs!: I eksemplene nedenfor vises bruken av denne funksjonen i en VBA-modul (Visual Basic for Applications). Hvis du vil ha mer informasjon om hvordan du arbeider med VBA, velger du Utviklerreferanse fra rullegardinlisten ved siden av Søk og skriver inn ett eller flere søkeord i søkeboksen.
I følgende eksempel evalueres en kontroll i et skjema, og én av to strenger returneres, basert på kontrollens verdi. Hvis verdien til kontrollen er Null, brukes Nz-funksjonen til å konvertere en Null-verdi til en tom streng.
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