Puteți utiliza funcția Nz pentru a returna zero, șir de lungime zero (" ") sau o altă valoare specificată atunci când variant este Null. De exemplu, puteți utiliza această funcție pentru a efectua conversia unei valori Null într-o altă valoare și a împiedica propagarea ei într-o expresie.
Sintaxă
Nz ( variant [, valueifnull ] )
Sintaxa funcției Nz are următoarele argumente:
Argument |
Descriere |
variant |
Obligatoriu. O variabilă cu tip de dateVariant. |
valueifnull |
Opțional (doar dacă nu se utilizează într-o interogare). Un Variant care furnizează o valoare care să se returneze dacă argumentul variant este Null. Acest argument permite returnarea unei valori diferite de zero sau un șir de lungime zero. Notă: Dacă utilizați funcția Nz într-o expresie dintr-o interogare fără a utiliza argumentul valoaredacănul, rezultatul va fi un șir diferit de zero în câmpul care conține valori nule. |
Dacă valoarea argumentului variant este Null, funcția Nz returnează cifra zero sau un șir de lungime zero (întotdeauna returnează un șir de lungime zero atunci când se utilizează într-o expresie de interogare), în funcție de context, care indică dacă valoarea trebuie să fie un număr sau un șir. Dacă argumentul opțional valueifnull este inclus, funcția Nz va returna valoarea specificată de argumentul respectiv dacă argumentul variant este Null. Când este utilizată într-o expresie de interogare, funcția NZ trebuie să includă întotdeauna argumentul valueifnull.
Dacă valoarea pentru variant nu este Null, funcția Nz returnează valoarea pentru variant.
Observații
Funcția Nz este utilă pentru expresii care pot include valori Null. Pentru a forța o expresie să se evalueze ca valoare non-Null chiar și atunci când aceasta conține o valoare Null, utilizați funcția Nz pentru a returna zero, un șir de lungime zero sau o valoare returnată particularizată.
De exemplu, expresia 2 + varX va returna întotdeauna o valoare Null atunci când variant varX este Null. Cu toate acestea, 2 + Nz(varX) returnează 2.
Puteți utiliza adesea funcția Nz ca alternativă la funcția IIf. De exemplu, în următorul cod, pentru a returna rezultatul dorit, sunt necesare două expresii care conțin funcția IIf. Prima expresie care conține funcția IIf este utilizată pentru a verifica valoarea unei variabile și a efectua conversia acesteia la zero dacă valoarea este Null.
varTemp = IIf(IsNull(varFreight), 0, varFreight)
varResult = IIf(varTemp > 50, "High", "Low")
În exemplul următor, funcția Nz oferă aceeași funcționalitate ca prima expresie, iar rezultatul dorit se obține într-un singur pas în loc de doi.
varResult = IIf(Nz(varFreight) > 50, "High", "Low")
Dacă furnizați o valoare pentru argumentul opțional valueifnull, valoarea respectivă va fi returnată atunci când variant este Null. Prin includerea acestui argument opțional, este posibil să puteți evita utilizarea unei expresii care conține funcția IIf. De exemplu, următoarea expresie utilizează funcția IIf pentru a returna un șir dacă valoarea varFreight este Null.
varResult = IIf(IsNull(varFreight), _
"No Freight Charge", varFreight)
În exemplul următor, argumentul opțional furnizat pentru funcția Nz furnizează șirul de returnat în cazul în care varFreight este Null.
varResult = Nz(varFreight, "No Freight Charge")
Exemple de interogare
Expresie |
Rezultatele |
SELECT ProductID, NZ(Reducere,"Niciun detaliu disponibil") AS Expr2 FROM ProductSales; |
Returnează "IDProdus" în coloana Expr1, evaluează valorile "Null" din câmpul "Discount" și returnează "Fără detalii disponibile" pentru toate valorile Null (returnează valorile nenule ca atare). |
SELECT ProductID, NZ(Reducere,"Niciun detaliu disponibil") AS ReplaceNull FROM ProductSales; |
Returnează "IDProdus" în coloana Produs, evaluează valorile "Null" din câmpul "Discount" și returnează "Fără detalii disponibile" pentru toate valorile Null (returnează valorile nenule ca atare) și se afișează în coloana ReplaceNull. |
Exemplu VBA
Notă: Exemplele care urmează demonstrează utilizarea acestei funcții într-un modul Visual Basic for Applications (VBA). Pentru mai multe informații despre lucrul cu VBA, selectați Referințe pentru dezvoltatori în lista verticală de lângă Căutare și introduceți unul sau mai mulți termeni în caseta de căutare.
Exemplul următor evaluează un control dintr-un formular și returnează unul din două șiruri bazate pe valoarea controlului. Dacă valoarea controlului este Null, procedura utilizează funcția Nz pentru a efectua conversia unei valori Null într-un șir de lungime zero.
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