Funkciju Nz var izmantot, lai atgrieztu nulli, nulles garuma virkne (" ") vai citu norādītu vērtību, ja variants ir Null. Piemēram, šo funkciju var izmantot, lai vērtību Null pārvērstu par citu vērtību un neļautu to pavairot izteiksmē.
Sintakse
Nz ( variant [, vērtība_null_gadījumā ] )
Funkcijas Nz sintaksē ir šādi argumenti:
Arguments |
Apraksts |
variant |
Obligāts. Mainīgais, kura datu tips ir Variant. |
vērtība_null_gadījumā |
Neobligāts (ja vien netiek izmantots vaicājumā). Variant, kas nodrošina vērtību, kura jāatgriež, ja arguments variant ir Null. Šis arguments ļauj atgriezt citu vērtību, nevis nulli vai nulles garuma virkni. Piezīme.: Ja funkciju Nz izmantojat vaicājuma izteiksmē, nenorādot argumentu vērtība_null_gadījumā, rezultāts būs nulles garuma virkne laukos, kuros ir Null vērtības. |
Ja argumenta variant vērtība ir Null, funkcija Nz atgriež skaitli nulle vai nulles garuma virkni (vienmēr atgriež nulles garuma virkni, ja tiek izmantota vaicājuma izteiksmē) atkarībā no tā, vai konteksts norāda, ka vērtībai jābūt skaitlim vai virknei. Ja ir iekļauts neobligātais arguments vērtība_null_gadījumā, funkcija Nz atgriež argumenta norādīto vērtību, ja arguments variant ir Null. Ja funkcija NZ tiek izmantota vaicājuma izteiksmē, tai vienmēr ir jānorāda arguments vērtība_null_gadījumā.
Ja variant vērtība nav Null, funkcija Nz atgriež variant vērtību.
Piezīmes
Funkcija Nz ir noderīga izteiksmēm, kuras var ietvert vērtības Null. Lai piespiestu izteiksmi novērtēt uz citu, nevis Null vērtību arī tad, ja tā satur vērtību Null, izmantojiet funkciju Nz, lai atgrieztu nulli, nulles garuma virkni vai pielāgotu atgriezto vērtību.
Piemēram, izteiksme, 2 + varX vienmēr atgriezīs vērtību Null , ja varianta varXir Null. Taču 2 + Nz(varX) 2.
Funkciju Nz bieži vien var izmantot kā alternatīvu funkcijai IIf. Piemēram, tālāk norādītajā kodā ir nepieciešamas divas izteiksmes ar funkciju IIf, lai atgrieztu vajadzīgo rezultātu. Pirmā izteiksme ar funkciju IIf tiek izmantota, lai pārbaudītu mainīgā vērtību un to pārvērstu par nulli, ja tas ir Null.
varTemp = IIf(IsNull(varFreight), 0, varFreight)
varResult = IIf(varTemp > 50, "High", "Low")
Nākamajā piemērā funkcija Nz nodrošina tādu pašu funkcionalitāti kā pirmā izteiksme, un vajadzīgais rezultāts tiek sasniegts vienā solī, nevis divos.
varResult = IIf(Nz(varFreight) > 50, "High", "Low")
Ja norādāt vērtību neobligātajam argumentam vērtība_null_gadījumā, šī vērtība tiek atgriezta, ja variant ir Null. Norādot šo neobligāto argumentu, jūs varat izvairīties no izteiksmes, kurā ir funkcija IIf. Piemēram, šajā izteiksmē tiek izmantota funkcija IIf, lai atgrieztu virkni, ja varFreight ir Null.
varResult = IIf(IsNull(varFreight), _
"No Freight Charge", varFreight)
Nākamajā piemērā funkcijai Nz norādītais neobligātais arguments nodrošina virkni, kas jāatgriež, ja varFreight ir Null.
varResult = Nz(varFreight, "No Freight Charge")
Vaicājumu piemēri
Izteiksme |
Rezultāti |
SELECT ProductID, NZ(Discount,"No Detail Available") AS Expr2 FROM ProductSales; |
Atgriež "Produkta_ID" kolonnā Expr1, novērtē vērtības "Null" laukā "Atlaide" un atgriež "Nav informācijas pieejams" visām Null vērtībām (atgriež vērtības, kas nav Null vērtības, kā ir). |
SELECT ProductID, NZ(Discount,"No Detail Available") AS ReplaceNull FROM ProductSales; |
Atgriež "Produkta_ID" kolonnā Produkts, novērtē vērtības "Null" laukā "Atlaide" un atgriež "Nav informācijas pieejams" visām null vērtībām (atgriež vērtības, kas nav Null vērtības, kā ir) un tiek parādītas kolonnā ReplaceNull. |
VBA piemērs
Piezīme.: Turpmākajos piemēros redzama šīs funkcijas izmantošana Visual Basic for Applications (VBA) modulī. Lai iegūtu papildinformāciju par darbu ar VBA, nolaižamajā sarakstā atlasiet Uzziņas materiāli izstrādātājiem blakus meklēšanas lodziņam un ievadiet šajā lodziņā vienu vai vairākus vārdus.
Tālāk esošajā piemērā tiek novērtēta formas vadīkla un atgriezta viena no divām virknēm, pamatojoties uz vadīklas vērtību. Ja vadīklas vērtība ir Null, procedūra izmanto funkciju Nz, lai vērtību Null pārvērstu par nulles garuma virkni.
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