Puteți utiliza funcția Nz pentru a returna zero, un șir de lungime zero (" ") sau o altă valoare specificată atunci când variant este Nul. 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ă de tipul de date Variant. |
| valueifnull | Opțional (doar dacă nu se utilizează într-o interogare). O variantă care furnizează o valoare care să se returneze dacă argumentul variant este Nul. 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 valueifnull , rezultatele vor fi un șir de lungime zero în câmpurile care conțin valori nule. |
Dacă valoarea argumentului variant este Nulă, 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 ar trebui să includă întotdeauna argumentul valueifnull ,
Dacă valoarea variant nu este nulă, funcția Nz returnează valoarea 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 nulă atunci când variantavarX este nulă. 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 este varFreightnulă.
varResult = IIf(IsNull(varFreight), _
"No Freight Charge", varFreight)
În exemplul următor, argumentul opțional furnizat pentru funcția Nz furnizează șirul de returnat dacă varFreight este Nul.
varResult = Nz(varFreight, "No Freight Charge")
Exemple de interogare
| expresie | Rezultatele |
|---|---|
| SELECT ProductID, NZ(Discount,"No Detail Available") AS Expr2 FROM ProductSales; | Returnează "ProductID" în coloana Expr1, evaluează valorile "Nule" din câmpul "Reducere" și returnează "Nu sunt disponibile detalii" pentru toate valorile nule (returnează valorile nenule așa cum sunt). |
| SELECT ProductID, NZ(Discount,"No Detail Available") AS ReplaceNull FROM ProductSales; | Returnează "IDProdus" în coloana Produs, evaluează valorile "Nule" din câmpul "Reducere" și returnează "Nu sunt disponibile detalii" pentru toate valorile nule (returnează valorile nenule așa cum sunt) ș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