Метод Application.Nz (Access)

Используйте функцию Nz для возврата нуля (0), строки нулевой длины (""), или другого указанного значения, если variant имеет значение NULL. Например, эту функцию можно использовать для преобразования значения NULL в другое значение и предотвращения его распространения через выражение.

Синтаксис

expression. Nz (Value, ValueIfNull)

выражение: переменная, представляющая объект Application.

Параметры

Имя Обязательный или необязательный Тип данных Описание
Value (Значение) Обязательный Variant Переменная типа данных Variant.
ValueIfNull Необязательный Variant Необязательно. Объект Variant, предоставляющий возвращаемое значение, если аргумент variant имеет значение NULL. Этот аргумент позволяет возвращать значение, отличное от нуля или строки нулевой длины.

ПРИМЕЧАНИЕ. Если вы используете функцию Nz в выражении в запросе без использования аргумента ValueIfNull , результатом будет строка нулевой длины в полях, содержащих значения NULL .

Возвращаемое значение

Variant

Примечания

Если значение аргумента variant равно NULL, то функция Nz возвращает неназначенную переменную Variant, специальное значение Empty. В VBA при вычислении значение Empty приведет к нули или нулевой длине строки в зависимости от того, указывает ли контекст, что значение должно быть числом или строкой. Например:

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

При использовании в выражении запроса Nz возвращает аналогичные значения результатов.

Если включен необязательный аргумент ValueIfNull , функция Nz вернет значение, указанное этим аргументом, если аргумент variant имеет значение NULL.

Если значениеVariant не равно NULL, функция Nz возвращает значениеVariant.

Функция Nz полезна для выражений, которые могут содержать значения NULL . Чтобы принудить выражение к значению, отличному от NULL , даже если оно содержит значение NULL , используйте функцию Nz для возврата нуля, строки нулевой длины или настраиваемого возвращаемого значения.

Например, выражение 2 + varX всегда возвращает значение NULL , если значение VariantvarX равно NULL. 2 + Nz(varX) Однако возвращает значение 2.

Часто можно использовать функцию Nz в качестве альтернативы функции IIf . Например, в следующем коде два выражения, включая функцию IIf , необходимы для возврата требуемого результата. Первое выражение, включающее функцию IIf , используется для проверки значения переменной и преобразования его в ноль, если оно имеет значение NULL.

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

В следующем примере функция Nz предоставляет те же функции, что и первое выражение, и требуемый результат достигается в одной строке, а не в двух.

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

Если указать значение для необязательного аргумента ValueIfNull, это значение будет возвращено, если значение равно NULL. Включив этот необязательный аргумент, можно избежать использования выражения, содержащего функцию IIf . Например, следующее выражение использует функцию IIf для возврата строки, если значение varFreight равно Null.

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

В следующем примере необязательный аргумент, предоставленный функции Nz , предоставляет строку, возвращаемую, если varFreight имеет значение NULL.

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

Пример

В следующем примере элемент управления вычисляется в форме и возвращается одна из двух строк на основе значения элемента управления. Если значение элемента управления равно NULL, процедура использует функцию IsNull для выбора сообщения, а затем функцию Nz , чтобы заменить значение NULL сообщением.

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

Поддержка и обратная связь

Есть вопросы или отзывы, касающиеся Office VBA или этой статьи? Руководство по другим способам получения поддержки и отправки отзывов см. в статье Поддержка Office VBA и обратная связь.