Du kan använda funktionen Nnoll när du vill returnera noll, en nollängdssträng (" ") eller något annat angivet värde när en variant är noll (Null). Du kan till exempel använda den här funktionen om du vill konvertera ett noll-värde till ett annat värde och förhindra att det sprids via ett uttryck.
Syntax
Nnoll ( variant [; värdeomnull] )
Funktionen Nnoll har följande argument:
Argument |
Beskrivning |
variant |
Obligatoriskt. En variabel av datatyp Variant. |
värdeomnull |
Valfritt. Ett Variant-värde som anger det värde som ska returneras om argumentet variant är null. Argumentet är det värde som ska returneras i stället för noll eller en tom sträng. Obs!: Om du använder funktionen Nnoll i ett uttryck i en fråga utan att ange argumentet värdeomnoll returnerar funktionen en tom sträng för de fält som innehåller nullvärden. |
Om värdet på argumentet variant är null, returneras siffran noll eller en sträng med nollängd av funktionen Nnoll (i frågeuttryck returneras alltid en sträng med nollängd), beroende på om kontexten anger att värdet ska vara ett tal eller en sträng. Om det valfria argumentet värdeomnull anges, ger funktionen Nnoll det värde som anges av argumentet, om värdet på argumentet variant är Null. När funktionen Nnoll används i ett frågeuttryck bör den alltid innehålla argumentet värdeomnull.
Om värdet för variant inte är null, ger funktionen Nnoll värdet för variant.
Kommentarer
Funktionen Nnoll är användbar i uttryck som kan innehålla null-värden. Om du vill tvinga ett uttryck att utvärderas till ett annat värde än null även om det innehåller ett null-värde, använder du funktionen Nnoll för att returnera noll, en sträng med nollängd eller ett anpassat returvärde.
Ett exempel: med uttrycket 2 + varX får du alltid ett null-värde om variantenvarX är null. Med 2 + Nz(varX) returneras i stället 2.
Du kan ofta använda funktionen Nnoll som ett alternativ till funktionen OOM. I följande exempelkod behövs två uttryck med funktionen OOM för att returnera önskat resultat. Det första uttrycket med OOM används för att kontrollera värdet på en variabel och konvertera det till noll om det är null.
varTemp = IIf(IsNull(varFreight), 0, varFreight)
varResult = IIf(varTemp > 50, "High", "Low")
I följande exempel har Nnoll samma funktion som i det första uttrycket, men önskat resultat uppnås med ett steg i stället för två.
varResult = IIf(Nz(varFreight) > 50, "High", "Low")
Om du anger ett värde för det valfria argumentet värdeomnull kommer detta värde att returneras om argumentet variant är null. Genom att ange argumentet kan du undvika ett uttryck som innehåller funktionen OOM. I följande exempel används funktionen OOM för att returnera en sträng om värdet på varFreight är null.
varResult = IIf(IsNull(varFreight), _
"No Freight Charge", varFreight)
I nedanstående exempel kommer det valfria argument som skickas till Nnoll att tillhandahålla den sträng som ska returneras om varFreight är null.
varResult = Nz(varFreight, "No Freight Charge")
Frågeexempel
Uttryck |
Resultat |
SELECT ProductID, NZ(Discount,"No Detail Available") AS Uttr2 FROM ProductSales; |
Returnerar "ProductID" i kolumn Uttr1, utvärderar nullvärdena i fältet "Rabatt" och returnerar "Ingen information tillgänglig" för alla Null-värden (returnerar icke-null-värdena som de är). |
SELECT ProductID, NZ(Discount,"No Detail Available") AS ReplaceNull FROM ProductSales; |
Returnerar "ProductID" i kolumnen Produkt, utvärderar nullvärdena i fältet "Rabatt" och returnerar "Ingen information tillgänglig" för alla Null-värden (returnerar icke-null-värdena som de är) och visas i kolumnen ErsättNull. |
VBA-exempel
Obs!: I exemplen nedan visar vi hur du använder den här funktionen i en Visual Basic for Applications-modul (VBA). Om du vill läsa mer om hur man använder VBA, kan du välja Info för utvecklare i listrutan bredvid Sök och sedan skriva en eller flera söktermer i sökrutan.
I följande exempel utvärderas först en kontroll i ett formulär, och sedan returneras en av två strängar utifrån kontrollens värde. Om värdet på kontrollen är null, används funktionen Nnoll för att konvertera ett null-värde till en sträng med nollängd.
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