يمكنك استخدام الدالة Nz لإرجاع صفر أو سلسلة فارغة (" ") أو قيمة محددة أخرى عندما يكون المتغير فارغا. على سبيل المثال، يمكنك استخدام هذه الدالة لتحويل قيمة Null إلى قيمة أخرى ومنعها من النشر عبر تعبير.
بناء الجملة
Nz ( variant [, valueifnull ] )
يشتمل بناء جملة دالة Nz على هذه الوسيطات:
الوسيطة |
الوصف |
variant |
مطلوب. متغير من نوع البياناتVariant . |
valueifnull |
اختيارية (إلا في حالة استخدامها في استعلام). تقوم وسيطة Variant تقوم بتوفير قيمة يتم إرجاعها إذا كانت قيمة variant هي Null. تمكنك هذه الوسيطة من إرجاع قيمة غير صفرية أو سلسلة فارغة. ملاحظة: إذا استخدمت الدالة Nz في تعبير في استعلام دون استخدام الوسيطة valueifnull، فستكون النتائج عبارة عن سلسلة ذات طول صفري في الحقول التي تحتوي على قيم فارغة. |
إذا كانت قيمة الوسيطة المتغيرفارغة، ترجع الدالة Nz الرقم صفرا أو سلسلة ذات طول صفري (ترجع دائما سلسلة ذات طول صفري عند استخدامها في تعبير استعلام)، اعتمادا على ما إذا كان السياق يشير إلى أن القيمة يجب أن تكون رقما أو سلسلة. إذا تم تضمين الوسيطة valueifnull الاختيارية، فسترجع الدالة Nz القيمة المحددة بواسطة هذه الوسيطة إذا كانت الوسيطة المتغيرةNull. عند استخدامها في تعبير استعلام، يجب أن تتضمن الدالة NZ دائما الوسيطة valueifnull ،
إذا كانت قيمة المتغير ليست Null، فترجع الدالة Nz قيمة المتغير.
ملاحظات
الدالة Nz مفيدة للتعبيرات التي قد تتضمن قيم Null . لفرض تقييم تعبير إلى قيمة غير فارغة حتى عندما يحتوي على قيمة Null ، استخدم الدالة Nz لإرجاع صفر أو سلسلة ذات طول صفري أو قيمة إرجاع مخصصة.
على سبيل المثال، سيرجع التعبير 2 + varX دائما قيمة Null عندما يكون varX Variant هو Null. ومع ذلك، 2 + Nz(varX) بإرجاع 2.
يمكنك غالبا استخدام الدالة Nz كبديل لدالة IIf . على سبيل المثال، في التعليمات البرمجية التالية، هناك تعبيران بما في ذلك الدالة IIf ضروريان لإرجاع النتيجة المطلوبة. يتم استخدام التعبير الأول بما في ذلك الدالة IIf للتحقق من قيمة متغير وتحويله إلى صفر إذا كان خاليا.
varTemp = IIf(IsNull(varFreight), 0, varFreight)
varResult = IIf(varTemp > 50, "High", "Low")
في المثال التالي، توفر الدالة Nz نفس وظيفة التعبير الأول، ويتم تحقيق النتيجة المطلوبة في خطوة واحدة بدلا من خطوتين.
varResult = IIf(Nz(varFreight) > 50, "High", "Low")
إذا قمت بتوفير قيمة لقيمة الوسيطة الاختياريةifnull، فسيتم إرجاع هذه القيمة عندما يكون المتغيرفارغا. بتضمين هذه الوسيطة الاختيارية، قد تتمكن من تجنب استخدام تعبير يحتوي على الدالة IIf . على سبيل المثال، يستخدم التعبير التالي الدالة IIf لإرجاع سلسلة إذا كانت قيمة varFreightفارغة.
varResult = IIf(IsNull(varFreight), _
"No Freight Charge", varFreight)
في المثال التالي، توفر الوسيطة الاختيارية المتوفرة للدالة Nz السلسلة التي سيتم إرجاعها إذا كانت varFreightNull.
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 (إرجاع القيم غير الخالية كما هي). |
SELECT ProductID, NZ(Discount,"No Detail Available") AS ReplaceNull FROM ProductSales; |
إرجاع "ProductID" في العمود Product، وتقييم القيم "Null" في الحقل "Discount" وإرجاع "No Details Available" لجميع القيم 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