Partilhar via


método Application.Nz (Access)

Utilize a função Nz para devolver zero (0), uma cadeia de comprimento zero ("") ou outro valor especificado quando uma Variante for Nula. Por exemplo, essa função pode ser usada para converter um valor Null em outro valor e evitar que ele se propague por meio de uma expressão.

Sintaxe

expressão. Nz (Value, ValueIfNull)

expressão Uma variável que representa um Aplicativo objeto.

Parâmetros

Nome Obrigatório/Opcional Tipo de dados Descrição
Valor Obrigatório Variant Uma variável do tipo de dados Variant.
ValueIfNull Opcional Variant Opcional. Um Variant que fornecerá um valor a ser retornado se o argumento variant for Null. Esse argumento permite que você retorne um valor diferente de zero ou uma cadeia de comprimento zero.

NOTA: se utilizar a função Nz numa expressão numa consulta sem utilizar o argumento ValueIfNull , os resultados serão uma cadeia de comprimento zero nos campos que contêm valores Nulos .

Valor de retorno

Variant

Comentários

Se o Valor do argumento de variante for Nulo, a função Nz devolve uma Variante não atribuída, o valor especial Vazio. No VBA, quando avaliado, Vazio resultará no número zero ou numa cadeia de comprimento zero, dependendo se o contexto indica que o Valor deve ser um número ou uma cadeia. Por exemplo:

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

Quando utilizada numa expressão de consulta, a Nz devolverá valores de resultado semelhantes.

Se o argumento opcional ValueIfNull estiver incluído, a função Nz devolverá o valor especificado por esse argumento se o argumento variante for Nulo.

Se o Valor da Variante não for Nulo, a função Nz devolve o Valor da Variante.

A função Nz é útil em expressões que possam incluir valores Null. Para forçar uma expressão a ser avaliada como um valor diferente de Null mesmo quando contiver um valor Null, use a função Nz para retornar um zero, uma cadeia de comprimento zero ou um valor de retorno personalizado.

Por exemplo, a expressão 2 + varX devolverá sempre um valor Nulo quando a VariantevarX for Nula. Entretanto, 2 + Nz(varX) retorna 2.

Muitas vezes, pode utilizar a função Nz como alternativa à função ISe . No código a seguir, por exemplo, são necessárias duas expressões que incluam a função IIf para retornar o resultado desejado. A primeira expressão incluindo a função IIf é usada para verificar o valor de uma variável e convertê-lo em zero se ele for Null.

varTemp = IIf(IsNull(varFreight), 0, varFreight) 
varResult = IIf(varTemp > 50, "High", "Low")

No exemplo seguinte, a função Nz fornece a mesma funcionalidade que a primeira expressão e o resultado pretendido é alcançado numa linha em vez de duas.

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

Se fornecer um valor para o argumento opcional ValueIfNull, esse valor será devolvido quando Valor for Nulo. Ao incluir esse argumento opcional, pode-se evitar o uso de uma expressão contendo a função IIf. Por exemplo, a expressão seguinte usará a função IIf para retornar uma cadeia de caracteres se o valor de varFreight for Null.

varResult = IIf(IsNull(varFreight), "No Freight Charge", varFreight)

No exemplo seguinte, o argumento opcional fornecido à função Nz fornece a cadeia a devolver se varFreight for Nulo.

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

Exemplo

O exemplo a seguir avalia um controle em um formulário e retorna uma entre duas cadeias de caracteres com base no valor do controle. Se o valor do controlo for Nulo, o procedimento utiliza a função IsNull para selecionar a mensagem, junto à função Nz para substituir um valor Nulo por uma mensagem.

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

Suporte e comentários

Tem dúvidas ou quer enviar comentários sobre o VBA para Office ou sobre esta documentação? Confira Suporte e comentários sobre o VBA para Office a fim de obter orientação sobre as maneiras pelas quais você pode receber suporte e fornecer comentários.