الدالة Nz

يمكنك استخدام الدالة Nz لإرجاع صفر أو قيمة سلسلة فارغة (" ") أو قيمة محددة أخرى عندما يكون المتغير Null. على سبيل المثال، يمكنك استخدام هذه الدالة لتحويل قيمة Null إلى قيمة أخرى ومنعها من النشر عبر تعبير.

بناء الجملة

Nz ( variant [, valueifnull ] )

يشتمل بناء جملة دالة Nz على هذه الوسيطات:

الوسيطة

الوصف

variant

مطلوب. متغير من نوع البياناتVariant .

valueifnull

اختيارية (إلا في حالة استخدامها في استعلام). تقوم وسيطة Variant تقوم بتوفير قيمة يتم إرجاعها إذا كانت قيمة variant هي Null. تمكنك هذه الوسيطة من إرجاع قيمة غير صفرية أو سلسلة فارغة.

ملاحظة: إذا استخدمت الدالة Nz في تعبير في استعلام دون استخدام الوسيطة valueifnull، فستكون النتائج عبارة عن سلسلة ذات طول صفري في الحقول التي تحتوي على قيم فارغة.

إذا كانت قيمة الوسيطة variant فارغة، فإن الدالة Nz ترجع الرقم صفر أو سلسلة فارغة (ترجع دائما سلسلة فارغة عند استخدامها في تعبير استعلام)، استنادا إلى ما إذا كان السياق يشير إلى أن القيمة يجب أن تكون رقما أو سلسلة. إذا كانت الوسيطة valueifnull الاختيارية مضمنة، فإرجاع الدالة Nz القيمة المحددة بواسطة هذه الوسيطة إذا كانت الوسيطة variantفارغة. عند استخدامها في تعبير استعلام، يجب أن تتضمن الدالة NZ دائما الوسيطة valueifnull،

إذا لم تكن قيمة المتغير خالية، فإن الدالة Nz ترجع قيمة المتغير.

ملاحظات

الدالة Nz مفيدة للتعبيرات التي قد تتضمن قيم Null. لإجبار تعبير على التقييم إلى قيمةغير خالية حتى عندما يحتوي على قيمة Null، استخدم الدالة Nz لإرجاع صفر أو سلسلة فارغة أو قيمة مرجع مخصصة.

على سبيل المثال، سيرجع التعبير 2 + varX دائما قيمة Null عندما يكون varX متغير القيمة Null. ومع ذلك 2 + Nz(varX) ترجع هذه.

يمكنك غالبا استخدام الدالة 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 فارغة. من خلال إضافة هذه الوسيطة الاختيارية، قد تتمكن من تجنب استخدام تعبير يحتوي على الدالة IIf. على سبيل المثال، يستخدم التعبير التالي الدالة IIf لإرجاع سلسلة إذا كانت 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" وإرجاع "No Details Available" لكل القيم Null (إرجاع القيم غير null كما هي).

SELECT ProductID, NZ(Discount,"No Detail Available") AS ReplaceNull FROM ProductSales;

إرجاع "ProductID" في العمود Product، وتقييم القيم "Null" في الحقل "Discount" وإرجاع "No Details Available" لكل القيم Null (إرجاع القيم غير null كما هي) وعرضها في العمود ReplaceNull.

مثال VBA

ملاحظة: توضح الأمثلة التالية استخدام هذه الدالة في وحدة نمطية في Visual Basic for Applications (VBA). لمزيد من المعلومات حول استخدام VBA، حدد "مرجع المطور" في القائمة المنسدل إلى جانب "البحث" وأدخل مصطلحا واحدا أو أكثر في مربع البحث.

يقوم المثال التالي بتقييم عنصر تحكم في نموذج وإرجاع سلسلة من سلسلتين استنادا إلى قيمة عنصر التحكم. إذا كانت قيمة عنصر التحكم فارغة، يستخدم الإجراء الدالة 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

هل تحتاج إلى مزيد من المساعدة؟

تعزيز مهارات Office
استكشاف التدريب
الحصول على الميزات الجديدة أولاً
الانضمام إلى Office Insider