Функция Nz

Применяется к
Access для Microsoft 365 Access 2024 Access 2021 Access 2019 Access 2016

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

Синтаксис

Nz(variant [, valueifnull ] )

Функция Nz имеет аргументы, указанные ниже.

Аргумент Описание
Переменная — обязательный аргумент. Переменная типа данных Variant.
Значение_если_null Необязательный аргумент (если он используется не в запросе) типа Variant. Variant, который обеспечивает значение, возвращаемое, если аргумент variant равен Null. Этот аргумент позволяет вернуть значение, отличное от нуля или пустой строки.
Примечание. Если функция Nz используется в выражении запроса без аргумента valueifnull , результатом будет пустая строка в полях, содержащих значения Null.

Если значение аргумента variant равно Null, функция Nz возвращает нулевое или нулевое значение (при использовании в выражении запроса всегда возвращает пустую строку), в зависимости от того, является ли контекст числом или строкой. Если включен необязательный аргумент valueifnull , функция Nz вернет указанное этим аргументом значение, если аргумент variant равен Null. При использовании в выражении запроса функция NZ всегда должна включать аргумент valueifnull ,

Если значение аргумента variant не равно Null, функция Nz возвращает значение variant.

Замечания

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

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

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

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

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

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

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

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

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

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

Примеры запросов

Выражение Результаты
SELECT ProductID, NZ(Discount,"No Detail Available") AS Expr2 FROM ProductSales; Возвращает "КодТовара" в столбце Выраж1, оценивает значения Null в поле "Скидка" и возвращает сообщение "Сведения недоступны" для всех значений Null (возвращает непустые значения как есть).
SELECT ProductID, NZ(Discount,"No Detail Available") AS ReplaceNull FROM ProductSales; Возвращает "КодТовара" в столбце "Product", оценивает значения "Null" в поле "Скидка" и возвращает "Сведения недоступны" для всех значений Null (возвращает ненулевые значения как есть) и отображает в столбце ReplaceNull.

Пример VBA

Примечание

В примерах ниже показано, как использовать эту функцию в модуле Visual Basic для приложений (VBA). Чтобы получить дополнительные сведения о работе с VBA, выберите Справочник разработчика в раскрывающемся списке рядом с полем Поиск и введите одно или несколько слов в поле поиска.

В следующем примере вычисляется элемент управления в форме и возвращается одна из двух строк на основе значения элемента управления. Если элемент управления имеет значение Null, процедура использует функцию 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.
    varResult = IIf(Nz(ctl.Value) = vbNullString, _
        "No value.", "Value is " & ctl.Value & ".")
    ' Display result.
    MsgBox varResult, vbExclamation
End Sub