Compartir a través de


método Application.Nz (Access)

Use la función Nz para devolver cero (0), una cadena de longitud cero ("") u otro valor especificado cuando variant es Null. Por ejemplo, se puede usar esta función para convertir un valor Null en otro valor y evitar que se propague a través de una expresión.

Sintaxis

expresión. Nz (Value, ValueIfNull)

expresión Variable que representa un objeto Application.

Parámetros

Nombre Obligatorio/opcional Tipo de datos Descripción
Valor Obligatorio Variant Variable del tipo de datos Variant.
ValueIfNull Opcional Variant Opcional. Un tipo Variant que proporciona el valor que se devolverá si el argumento variant es Null. Este argumento permite devolver un valor que no sea cero ni 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 contienen valores Null .

Valor devuelto

Variant

Comentarios

Si el valor del argumento variant es Null, la función Nz devuelve un valor Variant sin asignar, el valor especial Empty. En VBA, cuando se evalúa, Empty dará como resultado el número cero o una cadena de longitud cero, dependiendo de si el contexto indica que el valor debe ser un número o una cadena. Por ejemplo:

Nz(Null) + 2    ' returns 2
Nz(Null) & 2    ' returns "2"
Nz(Null) + "2"  ' returns "2"
Nz(Null) & "2"  ' returns "2"

Cuando se usa en una expresión de consulta, Nz devolverá valores de resultado similares.

Si se incluye el argumento ValueIfNull opcional, la función Nz devolverá el valor especificado por ese argumento si el argumento variant es Null.

Si el valor de Variant no es Null, la función Nz devuelve el valor de Variant.

La función Nz es útil para las expresiones que pueden incluir valores Null. Para forzar que una expresión tenga un valor que no sea Null aunque contenga un valor Null, use la función Nz para que se devuelva cero, una cadena de longitud cero o un valor personalizado.

Por ejemplo, la expresión 2 + varX siempre devolverá un valor Null cuando VariantvarX sea Null. Sin embargo, 2 + Nz(varX) devuelve 2.

A menudo, puede usar la función Nz como alternativa a la función IIf . Por ejemplo, en el código siguiente, son necesarias dos expresiones que contengan la función IIf para que se devuelva el resultado deseado. La primera expresión con la función IIf 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 siguiente ejemplo, la función Nz proporciona la misma funcionalidad que la primera expresión y el resultado deseado se logra en una línea en lugar de dos.

varResult = IIf(Nz(varFreight) > 50, "High", "Low")

Si proporciona un valor para el argumento opcional ValueIfNull, ese valor se devolverá cuando Value sea Null. Si se incluye este argumento opcional, puede que no haya que usar una expresión que contenga la función IIf. Por ejemplo, la expresión siguiente usa la función IIf para devolver una cadena si el valor de varFreight es Null.

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 va a devolver si varFreight es Null.

varResult = Nz(varFreight, "No Freight Charge")

Ejemplo:

En el siguiente ejemplo se evalúa un control ubicado en un formulario y se devuelve una de las dos cadenas según el valor del control. Si el valor del control es Null, el procedimiento usa la función IsNull para seleccionar el mensaje y, después, la función Nz para reemplazar un valor Null por un mensaje.

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 using IsNull.
    varResult = IIf(IsNull(ctl.Value), _ 
        "No value.", "Value is " & ctl.Value & ".") 
 
    ' Display result using IsNull. 
    MsgBox varResult, vbExclamation, "Using IsNull" 

    ' Choose result based on value of control using Nz. 
    ' "Value is" + Str(Null) evaluates to Null.
    varResult = Nz("Value is" + Str(ctl.Value), "No value") & ".") 
 
    ' Display result using Nz. 
    MsgBox varResult, vbExclamation, "Using Nz"
 
End Sub

Soporte técnico y comentarios

¿Tiene preguntas o comentarios sobre VBA para Office o esta documentación? Vea Soporte técnico y comentarios sobre VBA para Office para obtener ayuda sobre las formas en las que puede recibir soporte técnico y enviar comentarios.