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.