È possibile usare la funzione Nz per restituire zero, una stringa di lunghezza zero (" ") oppure un altro valore specificato quando un Variant è Null. Ad esempio, si può usare questa funzione per convertire un valore Null in un altro valore ed evitare che si propaghi tramite un'espressione.
Sintassi
Nz ( variante [, valsenull ] )
La sintassi della funzione Nz è composta dai seguenti argomenti:
Argomento |
Descrizione |
variante |
Argomento obbligatorio. Una variabile di tipo di dati Variant. |
valsenull |
Argomento facoltativo, a meno che non venga utilizzato in una query. Un tipo di dati Variant che fornisce un valore da restituire se l'argomento variante è Null. Questo argomento consente la restituzione un valore diverso da zero o una stringa di lunghezza zero. Nota: Se si usa la funzione Nz in un'espressione di una query senza utilizzare l'argomento valsenull, nei campi che contengono valori Null risulterà una stringa di lunghezza zero. |
Se il valore dell'argomento variante è Null, la funzione Nz restituisce il numero zero o una stringa di lunghezza zero( restituisce sempre una stringa di lunghezza zero se usata in un'espressione di query), a seconda che il contesto indichi se il valore deve essere un numero o una stringa. Se l'argomento facoltativo valsenull è incluso, la funzione Nz restituirà il valore specificato da tale argomento se l'argomento variante è Null. Se usata in un'espressione di query, la funzione NZ deve sempre includere l'argomento valsenull ,
Se il valore dell'argomento variante non è Null, la funzione Nz restituirà il valore dell'argomento variante.
Osservazioni
La funzione Nz risulta particolarmente utile per le espressioni che possono includere valori Null. Per forzare un'espressione a restituire un valore non Null anche quando contiene un valore Null, usare la funzione Nz per restituire zero, una stringa di lunghezza zero o un valore restituito personalizzato.
Ad esempio, l'espressione 2 + varX restituirà sempre un valore Null quando il valore dell'elemento Variant varX è Null. L'espressione 2 + Nz(varX) restituisce tuttavia il valore 2.
È spesso possibile usare la funzione Nz in alternativa alla funzione IIf. Nell'esempio di codice seguente sono necessarie due espressioni che contengono la funzione IIf per restituire il risultato desiderato. La prima espressione che contiene la funzione IIf viene usata per controllare il valore di una variabile e convertirlo in uno zero nel caso in cui questo sia Null.
varTemp = IIf(IsNull(varFreight), 0, varFreight)
varResult = IIf(varTemp > 50, "High", "Low")
Nel prossimo esempio la funzione Nz offre la stessa funzionalità della prima espressione e il risultato desiderato viene ottenuto in un solo passaggio anziché in due.
varResult = IIf(Nz(varFreight) > 50, "High", "Low")
Se viene specificato un valore per l'argomento facoltativo valsenull, verrà restituito tale valore quando l'argomento variante è Null. L'uso di questo argomento facoltativo consente di evitare di usare un'espressione contenente la funzione IIf. Ad esempio, l'espressione seguente usa la funzione IIf per restituire una stringa se il valore di varFreight è Null.
varResult = IIf(IsNull(varFreight), _
"No Freight Charge", varFreight)
Nel prossimo esempio l'argomento facoltativo fornito alla funzione Nz specifica la stringa da restituire se varFreight è Null.
varResult = Nz(varFreight, "No Freight Charge")
Esempi di query
Espressione |
Risultati |
SELECT ProductID, NZ(Discount,"No Detail Available") AS Expr2 FROM ProductSales; |
Restituisce "IDProdotto" nella colonna Espr1, valuta i valori 'Null' nel campo "Discount" e restituisce "Nessun dettaglio disponibile" per tutti i valori Null (restituisce i valori non Null così come sono). |
SELECT ProductID, NZ(Discount,"No Detail Available") AS ReplaceNull FROM ProductSales; |
Restituisce "IDProdotto" nella colonna Product, valuta i valori 'Null' nel campo "Discount" e restituisce "No Details Available" per tutti i valori Null (restituisce i valori non Null così come sono) e viene visualizzata nella colonna ReplaceNull. |
Esempio di VBA
Nota: Gli esempi seguenti illustrano l'uso di questa funzione in un modulo di Visual Basic, Applications Edition (VBA). Per altre informazioni sull'uso di VBA, selezionare Riferimenti per sviluppatori nell'elenco a discesa accanto a Cerca e immettere uno o più termini nella casella di ricerca.
Nell'esempio seguente viene valutato un controllo di una maschera e restituita una delle due stringhe in base al valore del controllo. Se il valore del controllo è Null, viene usata la funzione Nz per convertire un valore Null in una stringa di lunghezza 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