Функцію Nz можна використовувати, щоб повертати нуль, рядок нульової довжини ("") або інше вказане значення, коли змінна Variant має Null-значення. Наприклад, за допомогою цієї функції можна перетворювати значення Null на інше значення, запобігаючи його розповсюдженню у виразі.
Синтаксис
Nz ( значення_змінної_Variant [, значення_якщо_Null] )
Синтаксис функції Nz має такі аргументи:
Аргумент |
Опис |
Варіант |
Обов’язковий. Змінна, що належить до тип даних варіант (Variant). |
значення_якщо_null |
Необов’язковий (за винятком використання в запитах). Вираз типу варіант (Variant), що вказує значення, яке слід повернути, якщо аргумент варіант має Null-значення. За допомогою цього аргументу можна повертати значення, відмінні від нуля або рядка нульової довжини. Примітка.: Якщо використати функцію Nz у виразі в запиті без використання аргументу значення_якщо_null, то для полів, які містять Null-значення, повертатиметься рядок нульової довжини. |
Якщо аргумент значення_змінної_Variant має Null-значення, функція Nz повертає число нуль або рядок нульової довжини (у виразі запиту завжди повертається рядок нульової довжини), залежно від того, що потрібно за контекстом: число чи рядок. Якщо вказано додатковий аргумент значення_якщо_Null, функція Nz повертає значення, задане цим аргументом за умови, що аргумент значення_змінної_Variant має Null-значення. Якщо функція NZ використовується у виразі запиту, вона завжди має містити аргумент значення_якщо_Null.
Якщо значення аргументу значення_змінної_Variant не дорівнює Null, функція Nz повертає значення змінної Variant.
Примітки
Функцію Nz зручно використовувати для виразів, які можуть містити значення Null. Щоб обчислений результат виразу не дорівнював Null, навіть якщо він містить значення Null, можна використати функцію Nz, яка повертатиме число нуль, рядок нульової довжини або інше вказане значення.
Наприклад, вираз 2 + varX завжди повертає значення Null, коли значення змінної Variant varX дорівнює 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, яка повертає рядок, якщо значення varFreight дорівнює Null.
varResult = IIf(IsNull(varFreight), _
"No Freight Charge", varFreight)
У наступному прикладі необов’язковий аргумент, переданий до функції Nz, містить рядок, який повертається, якщо varFreight дорівнює Null.
varResult = Nz(varFreight, "No Freight Charge")
Приклади запитів
Вираз |
Результати |
SELECT ProductID, NZ(Знижка;"Немає доступних відомостей") AS вираз2 FROM ProductSales; |
Повертає значення "ProductID" у стовпці Expr1, обчислює значення Null у полі "Знижка" та повертає значення "Немає доступних відомостей" для всіх Null-значень (повертає значення, не null, як є). |
SELECT ProductID, NZ(Знижка;"Немає відомостей") AS ReplaceNull FROM ProductSales; |
Повертає значення "Ідентифікатор товару" у стовпці "Продукт", обчислює значення "Null" у полі "Знижка" та повертає значення "Немає доступних відомостей" для всіх 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