Puede usar la función Nz para devolver cero, una cadena de longitud cero (" ") u otro valor especificado cuando una variante es nula. Por ejemplo, puede usar esta función para convertir un valor nulo en otro valor y evitar que se propague a través de una expresión.
Sintaxis
Nz(variant [, valorsiesnull ] )
La sintaxis de la función Nz consta de los siguientes argumentos:
| Argumento | Descripción |
|---|---|
| variant | Obligatorio. Variable de tipo de datos Variant. |
| valueifnull | Opcional (a menos que se use en una consulta).
Variante: una variante que proporciona un valor que se devolverá si el argumento variant es nulo. Este argumento permite devolver un valor distinto de cero o una cadena de longitud cero. Nota: Si usa la función Nz en una expresión de una consulta sin usar el argumento valueifnull , los resultados serán una cadena de longitud cero en los campos que contengan valores nulos. |
Si el valor del argumento de variante es Nulo, la función Nz devuelve el número cero o una cadena de longitud cero (siempre devuelve una cadena de longitud cero cuando se usa en una expresión de consulta), dependiendo de si el contexto indica que el valor debe ser un número o una cadena. Si se incluye el argumento opcional valueifnull , la función Nz devolverá el valor especificado por ese argumento si el argumento de la variante es Null. Cuando se usa en una expresión de consulta, la función NZ siempre debe incluir el argumento valueifnull ,
Si el valor de variant no es nulo, la función Nz devuelve el valor de variant.
Observaciones
La función Nz es útil para expresiones que pueden incluir valores nulos . Para forzar a una expresión a evaluarse como un valor no nulo incluso cuando contiene un valor nulo , use la función Nz para devolver cero, una cadena de longitud cero o un valor devuelto personalizado.
Por ejemplo, la expresión 2 + varX siempre devolverá un valor nulo cuando la variantevarX sea nula. Sin embargo, 2 + Nz(varX) devuelve 2.
A menudo puede usar la función Nz como alternativa a la función SiInm . Por ejemplo, en el código siguiente, se necesitan dos expresiones, incluida la función SiInm, para devolver el resultado deseado. La primera expresión, incluida la función SiInm, se usa para comprobar el valor de una variable y convertirlo en cero si es nulo.
varTemp = IIf(IsNull(varFreight), 0, varFreight)
varResult = IIf(varTemp > 50, "High", "Low")
En el siguiente ejemplo, la función Nz proporciona la misma funcionalidad que la primera expresión y el resultado deseado se logra en un paso en lugar de dos.
varResult = IIf(Nz(varFreight) > 50, "High", "Low")
Si proporciona un valor para el argumento opcional valueifnull, se devolverá ese valor cuando variant sea Null. Si incluye este argumento opcional, puede evitar el uso de una expresión que contenga la función SiInm . Por ejemplo, la siguiente expresión usa la función SiInm para devolver una cadena si el valor de varFreight es Nulo.
varResult = IIf(IsNull(varFreight), _
"No Freight Charge", varFreight)
En el siguiente ejemplo, el argumento opcional proporcionado a la función Nz proporciona la cadena que se devolverá si varFreight es Null.
varResult = Nz(varFreight, "No Freight Charge")
Ejemplos de consulta
| Expresión | Resultados |
|---|---|
| SELECT ProductID, NZ(Discount,"No hay detalles disponibles") AS Expr2 FROM ProductSales; | Devuelve "ProductID" en la columna Expr1, evalúa los valores "nulos" del campo "Descuento" y devuelve "No hay detalles disponibles" para todos los valores nulos (devuelve los valores no nulos tal como están). |
| SELECT ProductID, NZ(Discount,"No hay detalles disponibles") AS ReplaceNull FROM ProductSales; | Devuelve "ProductID" en la columna Producto, evalúa los valores "nulos" en el campo "Descuento" y devuelve "Sin detalles disponibles" para todos los valores nulos (devuelve los valores no nulos tal cual) y se muestra en la columna ReplaceNull. |
Ejemplo VBA:
Nota
Los ejemplos siguientes muestran el uso de esta función en un módulo de Visual Basic para Aplicaciones (VBA). Para obtener más información sobre cómo trabajar con VBA, seleccione referencia para desarrolladores en la lista desplegable situada junto a búsqueda y escriba uno o varios términos en el cuadro de búsqueda.
En el ejemplo siguiente se evalúa un control de un formulario y se devuelve una de las dos cadenas en función del valor del control. Si el valor del control es nulo, el procedimiento usa la función Nz para convertir un valor nulo en una cadena de longitud cero.
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