Функція Nz

Застосовується до
Access для Microsoft 365 Access 2024 Access 2021 Access 2019 Access 2016

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

Синтаксис

Nz(variant [, значення_якщо_null ] )

Синтаксис функції Nz має такі аргументи:

Аргумент Опис
Варіант — обов’язковий аргумент. Змінна типу даних Variant.
значення_якщо_null Необов’язковий (за винятком використання в запитах). Значення, що надає значення, що повертається, якщо аргумент Variant має Null-значення. За допомогою цього аргументу можна повертати значення, відмінні від нуля або рядка нульової довжини.
Примітка. Якщо у виразі запиту використати функцію Nz без аргументу valueifNull, у результатах відображатимуться рядки нульової довжини в полях із Null-значеннями.

Якщо аргумент variant має Null-значення, функція Nz повертає число нуль або рядок нульової довжини (у виразі запиту завжди повертається рядок нульової довжини), залежно від того, що потрібно за контекстом: число чи рядок. Якщо є необов'язковий аргумент valueifnull , функція Nz поверне значення, указане цим аргументом, якщо аргумент variant має Null-значення. Якщо функція NZ використовується у виразі запиту, вона завжди має включати аргумент valueifnull ,

Якщо значення аргументу «Значення » відмінне від Null-значення, функція Nz повертає значення значення.

Примітки

Функцію 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")

Якщо вказати значення необов’язкового аргументу значення_якщо_Null, функція поверне його, якщо аргумент значення_змінної_Variant має Null-значення. Цей необов’язковий аргумент позбавляє необхідності використовувати вираз, який містить функцію IIf. Наприклад, у наведеному нижче виразі використовується функція IIf, яка повертає рядок, якщо значення Null-значенняvarFreight.

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 у полі "Discount" і повертає значення "Немає докладних відомостей" для всіх Null-значень (повертає значення без Null-значення).
SELECT ProductID, NZ(Discount;"Немає докладних відомостей") AS ReplaceNull FROM ProductSales; Повертає значення "ProductID" у стовпці "Product", оцінює значення Null у полі "Знижка" та повертає значення "Немає відомостей доступно" для всіх Null-значень (повертає звичайні значення) і відображається в стовпці ReplaceNull.

Приклад VBA

Примітка.

У прикладах нижче показано використання цієї функції в модулі Visual Basic for Applications (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