الدالة Nz

ينطبق على
Access لـ Microsoft 365 Access 2024 Access 2021 Access 2019 Access 2016

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

بناء الجملة

Nz(variant [, valueifnull ] )

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

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

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

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

ملاحظات

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

على سبيل المثال، سيرجع التعبير 2 + varX دائما قيمة Null عندما يكون المتغيرvarXخاليا. لكن ترجع 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")

إذا قمت بتوفير قيمة للوسيطة الاختيارية valueifnull، فسيتم إرجاع هذه القيمة عندما يكون المتغيرخاليا. بتضمين هذه الوسيطة الاختيارية، قد تتمكن من تجنب استخدام تعبير يحتوي على الدالة IIf . على سبيل المثال، يستخدم التعبير التالي الدالة IIf لإرجاع سلسلة إذا كانت قيمة varFreightNull.

varResult = IIf(IsNull(varFreight), _
    "No Freight Charge", varFreight)

في المثال التالي، توفر الوسيطة الاختيارية المقدمة للدالة Nz السلسلة المراد إرجاعها إذا varFreight كانت خالية.

varResult = Nz(varFreight, "No Freight Charge")

أمثلة عن الاستعلام

التعبير النتائج
SELECT ProductID, NZ (Discount,"لا توجد تفاصيل متوفرة") AS Expr2 FROM ProductSales; ترجع "معرف المنتج" في العمود Expr1، وتقيم القيم "Null" في الحقل "خصم" وترجع "لا توجد تفاصيل متوفرة" لكل القيم الفارغة (ترجع القيم غير الخالية كما هي).
SELECT ProductID, NZ (Discount,"لا توجد تفاصيل متوفرة") AS replaceNull FROM ProductSales; ترجع "معرف المنتج" في عمود "المنتج"، وتقيم القيم "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