Você pode usar a função Nz para retornar zero, uma cadeia de comprimento zero (" ") ou outro valor especificado quando um Variant é Null. Por exemplo, você pode usar essa função para converter um valor Nulo em outro valor e impedir que ele se propague 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. Observação: 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 comprimento zero nos campos que contêm valores nulos. |
Se o valor do argumento variant for Nulo, a função Nz retornará o número zero ou uma cadeia de comprimento zero (sempre retorna uma cadeia 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 for 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 sempre deve incluir o argumento valueifnull ,
Se o valor de variant não for Null, a função Nz retornará o valor de variant.
Comentários
A função Nz é útil para expressões que podem incluir valores nulos . Para forçar uma expressão a ser avaliada como um valor não Nulo mesmo quando ela contém um valor Nulo , use a função Nz para retornar zero, uma cadeia de comprimento zero ou um valor de retorno personalizado.
Por exemplo, a expressão 2 + varX sempre retornará um valor Nulo quando a variantevarX for Nula. 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 SeImend, é usada para marcar o valor de uma variável e convertê-la em zero se for Nula.
varTemp = IIf(IsNull(varFreight), 0, varFreight)
varResult = IIf(varTemp > 50, "High", "Low")
No exemplo a seguir, a função Nz fornece a mesma funcionalidade que a primeira expressão, e o resultado desejado é obtido em uma etapa em vez de duas.
varResult = IIf(Nz(varFreight) > 50, "High", "Low")
Se você fornecer um valor para o argumento opcional valueifnull, esse valor será retornado quando variant for Null. Incluindo esse argumento opcional, você poderá evitar o uso de uma expressão que contenha a função IIf . Por exemplo, a expressão a seguir usa a função SeImed para retornar uma cadeia de caracteres se o valor de varFreightfor Nulo.
varResult = IIf(IsNull(varFreight), _
"No Freight Charge", varFreight)
No exemplo a seguir, o argumento opcional fornecido para a função Nz fornecerá 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,"No Detail Available") AS Expr2 FROM ProductSales; | Retorna "IDProduto" na coluna Expr1, avalia os valores 'Nulos' no campo "Desconto" e retorna "Nenhum detalhe disponível" para todos os valores nulos (retorna os valores não nulos no estado em que se encontram). |
| SELECT ProductID, NZ(Discount,"No Detail Available") AS ReplaceNull FROM ProductSales; | Retorna "IDProduto" na coluna Produto, avalia os valores 'Nulos' no campo "Desconto" e retorna "Nenhum detalhe disponível" para todos os valores nulos (retorna os valores não nulos no estado em que se encontram) e exibe na coluna ReplaceNull. |
Exemplo de VBA
Observação
Os exemplos a seguir demonstram o uso dessa função em um módulo do Visual Basic for Applications (VBA). 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 de duas cadeias de caracteres com base no valor do controle. Se o valor do controle for Nulo, o procedimento usará a função Nz para converter um valor Nulo em uma cadeia 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