Função Nz

Aplica-se a
Access para Microsoft 365 Access 2024 Access 2021 Access 2019 Access 2016

Você pode usar a função Nz para retornar zero, uma cadeia de caracteres de comprimento zero (" "), ou outro valor especificado quando uma Variant é Null. Por exemplo, você pode usar essa função para converter um valor Nulo em outro valor e impedir que ela se propaga por meio de uma expressão.

Sintaxe

Nz(variant [, valueifnull ] )

A sintaxe da função Nz tem os seguintes argumentos:

Argumento Descrição
variant Obrigatório. Uma variável do tipo de dados Variant.
valueifnull Opcional (a menos que seja usado em uma consulta). Uma Variant que fornece 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 você usar a função Nz em uma expressão em uma consulta sem usar o argumento valueifnull , os resultados serão uma cadeia de caracteres de comprimento zero nos campos que contêm valores nulos.

Se o valor do argumento variant for Null, a função Nz retornará o número zero ou uma cadeia de caracteres de comprimento zero (sempre retorna uma cadeia de caracteres de comprimento zero quando usada em uma expressão de consulta), dependendo se o contexto indica que o valor deve ser um número ou uma cadeia de caracteres. Se o argumento valueifnull opcional estiver incluído, a função Nz retornará o valor especificado por esse argumento se o argumento variant for Null. Quando usada em uma expressão de consulta, a função NZ deve sempre incluir o argumento valueifnull ,

Se o valor da variante não for Null, a função Nz retornará o valor da variante.

Comentários

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

Por exemplo, a expressão 2 + varX sempre retornará um valor Nulo quando a VariantvarX for Null. No entanto, 2 + Nz(varX) retorna 2.

Geralmente, você pode usar a função Nz como uma alternativa à função IIf . Por exemplo, no código a seguir, duas expressões, incluindo a função IIf , são necessárias para retornar o resultado desejado. A primeira expressão, incluindo a função IIf, é usada para marcar o valor de uma variável e convertê-la em zero se 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 desejado é alcançado em uma etapa em vez de duas.

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

Se você fornecer um valor para o valor de argumento opcionalifnull, esse valor será retornado quando a variante for Null. Ao incluir esse argumento opcional, você pode ser capaz de evitar o uso de uma expressão que contém a função IIf . Por exemplo, a expressão a seguir usa 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 próximo exemplo, o argumento opcional fornecido à função Nz fornece a cadeia de caracteres a ser retornada se varFreight for Null.

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

Exemplos de consulta

Expressão. Resultados
SELECT ProductID, NZ(Discount"Sem Detalhes Disponíveis") AS Expr2 FROM ProductSales; Retorna "ProductID" na coluna Expr1, avalia os valores 'Null' no campo "Desconto" e retorna "Sem Detalhes Disponíveis" para todos os valores nulos (retorna os valores não nulos como está).
SELECT ProductID, NZ(Discount"Sem Detalhes Disponíveis") AS ReplaceNull FROM ProductSales; Retorna "ProductID" na coluna Product, avalia os valores 'Null' no campo "Desconto" e retorna "Sem Detalhes Disponíveis" para todos os valores nulos (retorna os valores não nulos como está) e exibe na coluna ReplaceNull.

Exemplo de VBA

Observação

Exemplos a seguir demonstram o uso dessa função em um módulo VBA (Visual Basic for Applications). Para obter mais informações sobre como trabalhar com o VBA, selecione Referência do Desenvolvedor na lista suspensa ao lado de Pesquisar e insira um ou mais termos na caixa de pesquisa.

O exemplo a seguir avalia um controle em um formulário e retorna uma das duas cadeias de caracteres com base no valor do controle. Se o valor do controle for Null, o procedimento usará a função Nz para converter um valor Null em uma cadeia de caracteres de comprimento 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