Функцию 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 , даже если оно содержит значение 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, это значение будет возвращено, если параметр variant имеет значение Null. Включив этот необязательный аргумент, можно избежать использования выражения, содержащего функцию IIf . Например, следующее выражение использует функцию IIf для возврата строки, если значение varFreight равно Null.
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; | Возвращает "ProductID" в столбце Expr1, вычисляет значения NULL в поле "Скидка" и возвращает значение "Нет доступных сведений" для всех значений NULL (возвращает значения, отличные от NULL, как есть). |
| SELECT ProductID, NZ(Discount, "No Detail Available") AS ReplaceNull FROM ProductSales; | Возвращает "ProductID" в столбце Продукт, вычисляет значения NULL в поле "Скидка" и возвращает значение "Нет сведений доступно" для всех значений 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