Puede usar la función Nz para devolver cero, un cadena de longitud cero (" "), u otro valor especificado cuando un tipo de datos Variant es Null. Por ejemplo, puede usar esta función para convertir un valor Null en otro valor e impedir que se propague a través de una expresión.
Sintaxis
Nz ( variant [, valueifnull ] )
La sintaxis de la función Nz consta de los siguientes argumentos:
Argumento |
Descripción |
variant |
Necesario. Variable de tipo de datosVariant. |
valueifnull |
Opcional (a menos que se use en una consulta). Tipo de datos Variant que proporciona el valor que se va a devolver si el argumento variant es Null. 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 valorSiEsNulo, el resultado será una cadena de longitud cero en los campos que contengan valores nulos. |
Si el valor del argumento variant es Null, 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 variant 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 Null, la función Nz devuelve el valor de variant.
Comentarios
La función Nz es útil para expresiones que pueden incluir valores Null . Para forzar que una expresión se evalúe como un valor que no sea Null aunque contenga un valor Null , 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 Null cuando lavarXVariant sea Null. 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, son necesarias dos expresiones, incluida la función SiInm , para devolver el resultado deseado. La primera expresión que incluye la función SiInm se usa para comprobar el valor de una variable y convertirlo en cero si es Null.
varTemp = IIf(IsNull(varFreight), 0, varFreight)
varResult = IIf(varTemp > 50, "High", "Low")
En el ejemplo siguiente, 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, dicho valor se devolverá cuando variant sea Null. Al incluir este argumento opcional, es posible que pueda evitar el uso de una expresión que contiene 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 Null.
varResult = IIf(IsNull(varFreight), _
"No Freight Charge", varFreight)
En el ejemplo siguiente, 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
Expression |
Resultados |
SELECT ProductID, NZ(Discount,"No Detail Available") AS Expr2 FROM ProductSales; |
Devuelve "IdProducto" en la columna Expr1, evalúa los valores 'Nulos' en el campo "Descuento" y devuelve "No hay detalles disponibles" para todos los valores Null (devuelve los valores no nulos tal como están). |
SELECT ProductID, NZ(Discount,"No Detail Available") AS ReplaceNull FROM ProductSales; |
Devuelve "IdProducto" en la columna Producto, evalúa los valores "Nulos" en el campo "Descuento" y devuelve "No hay detalles disponibles" para todos los valores Null (devuelve los valores no nulos tal como están) 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 dos cadenas basadas en el valor del control. Si el valor del control es Null, el procedimiento usa la función Nz para convertir un valor Null 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