Você pode usar a função Nz para retornar zero, um cadeia de comprimento zero (" "), ou outro valor especificado quando uma Variant for 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 de tipo de dados Variant. |
valueifnull |
Opcional (a menos que seja usado em uma consulta). Um Variant que fornece um valor a ser retornado se o argumento variant for Nulo. Esse argumento permite que você retorne um valor diferente de zero ou uma cadeia de comprimento zero. Observação: Se você usar a função Nz em uma expressão de uma consulta sem usar o argumento valueifnull, os resultados serão uma cadeia de comprimento zero nos campos que contiverem 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 ovarXvariant 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 exemplo seguinte, 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