إرجاع أحد جزأين، استنادا إلى تقييم تعبير.
يمكنك استخدام IIf في أي مكان يمكنك فيه استخدام التعبيرات. يمكنك استخدام IIf لتحديد ما إذا كان التعبير الآخر صحيحا أو خاطئا. إذا كان التعبير صحيحا، فإن IIf ترجع قيمة واحدة؛ إذا كان خطأ، فإرجاع IIf آخر. يمكنك تحديد القيم التي ترجعها IIf.
بناء الجملة
IIf ( expr ، truepart ، falsepart )
بناء جملة الدالة IIf على هذه الوسيطات:
الوسيطة |
الوصف |
expr |
مطلوبة. التعبير الذي تريد تقييمه. |
truepart |
مطلوبة. القيمة أو التعبير الذي يتم إرجاعه إذا كان expr هو True. |
falsepart |
مطلوبة. القيمة أو التعبير الذي يتم إرجاعه إذا كان exprFalse. |
ملاحظات
تقيم IIf دائما كل من truepart و falsepart،على الرغم من أنها ترجع واحدا منها فقط. ولهذا السبب، يجب عليك مراقبة التأثيرات الجانبية غير المرغوب فيها. على سبيل المثال، إذا كان تقييم falsepart ينتج عنه خطأ قسمة على صفر، يحدث خطأ حتى لو كان expr هو True.
أمثلة
استخدام IIf في نموذج أو تقرير لنفترض أن لديك جدول "العملاء" يحتوي على حقل يسمى «البلد/البلد». في نموذج، تريد الإشارة إلى ما إذا كانت الإيطالية هي اللغة الأولى من جهة الاتصال. يمكنك إضافة عنصر تحكم واستخدام IIf في الخاصية "مصدر عنصر التحكم" الخاصة به، كما يلي:
=IIf([CountryRegion]="Italy", "Italian", "some other language")
عند فتح النموذج في طريقة عرض النموذج، يعرض عنصر التحكم "الإيطالية" كلما كانت قيمة البلد/البلد/منطقة هي إيطاليا، و"بعض اللغات الأخرى" كلما كانت البلد/منطقة أي قيمة أخرى.
استخدام IIf في التعبيرات المعقدة يمكنك استخدام أي تعبير كجزء من عبارة IIf. يمكنك أيضا "تداخل" تعبيرات IIf، مما يسمح لك بتقييم سلسلة من التعبيرات التابعة. للمتابعة مع المثال السابق، قد تحتاج إلى اختبار قيم البلد/المناطق المختلفة، ثم عرض اللغة المناسبة استنادا إلى القيمة الموجودة:
=IIf([CountryRegion]="Italy", "Italian", IIf([CountryRegion]="France", "French", IIf([CountryRegion]="Germany", "German", "some other language")))
النص "بعض اللغات الأخرى" هو الوسيطة falsepart للدالة IIf الأ داخلي. بما أن كل دالة IIf متداخلة هي وسيطة falsepart للدالة IIf التي تحتوي عليها، يتم إرجاع النص "بعض اللغات الأخرى" فقط إذا تم تقييم كل وسيطات expr لكل دالات IIf إلى False.
على سبيل المثال، افترض أنك تعمل في مكتبة. تحتوي قاعدة بيانات المكتبة على جدول باسم "سحب" يحتوي على حقل، يسمى "تاريخ الاستحقاق"، يحتوي على تاريخ الاستحقاق الذي يعود فيه دفتر معين. يمكنك إنشاء نموذج يشير إلى حالة عنصر تم سحبه في عنصر تحكم باستخدام الدالة IIf في خاصية مصدر عنصر التحكم هذا، كما يلي:
=IIf([تاريخ الاستحقاق]<Date(),"OVERDUE",IIf([Due Date]=Date(),"Due today","Not Yet Due"))
عند فتح النموذج في طريقة عرض النموذج، يعرض عنصر التحكم "متأخر" إذا كانت قيمة "تاريخ الاستحقاق" أقل من التاريخ الحالي، و"مستحق اليوم" إذا كان مساويا والتاريخ الحالي، و"لم يتم الاستحقاق بعد" بخلاف ذلك.
ملاحظة: لاستخدام عوامل التشغيل المنطقية مثل "And" أو "Or" في الوسيطة expr لل الدالة IIf، يجب تضمين التعبير المنطقي في الدالة Eval. راجع الجدول المثال التالي.
استخدام IIf في استعلام
يتم استخدام الدالة IIf بشكل متكرر لإنشاء حقول محسوبة في الاستعلامات. بناء الجملة هو نفسه، باستثناء أنه في الاستعلام، يجب أن تقوم ب مقدمة التعبير باستخدام اسم الحقل المستعار و النقطتين (:) بدلا من علامة المساواة (=). لاستخدام المثال السابق، يمكنك كتابة ما يلي في صف الحقل في شبكة تصميم الاستعلام:
اللغة: IIf([CountryRegion]="Italy", "Italian", "some other language")
في هذه الحالة، "اللغة:" هو الاسم المستعار الحقل.
لمزيد من المعلومات حول إنشاء الاستعلامات والحقول المحسوبة، راجع المقالة "إنشاء استعلام تحديد بسيط".
استخدام IIf في التعليمات البرمجية ل VBA
ملاحظة: توضح الأمثلة التالية استخدام هذه الدالة في وحدة نمطية في Visual Basic for Applications (VBA). لمزيد من المعلومات حول استخدام VBA، حدد "مرجع المطور" في القائمة المنسدل إلى جانب "البحث" وأدخل مصطلحا واحدا أو أكثر في مربع البحث.
يستخدم هذا المثال الدالة IIf لتقييم المعلمة TestMe للإجراء CheckIt وإرجاع الكلمة "Large" إذا كان المبلغ أكبر من 1000؛ وبخلاف ذلك، ترجع الكلمة "Small".
Function CheckIt (TestMe As Integer)
CheckIt = IIf(TestMe > 1000, "Large", "Small")
End Function
المزيد من الأمثلة
التعبير |
النتائج |
=IIf([AirportCode]="ORD","Chicago",IIf([AirportCode]="ATL","At seattle",IIf([AirportCode]="SEA","Seattle","Other"))) |
إذا كان [رمز المطار] هو "ORD"، فإرجاع "شيكاغو". بخلاف ذلك، إذا كان [رمز المطار] هو "ATL"، يتم إرجاع "Atlanta". بخلاف ذلك، إذا كان [رمز المطار] هو "SEA"، يتم إرجاع "Seattle". وبخلاف ذلك، ارجع "غير ذلك". |
=IIf([ShipDate]<Date(),"Shipped",IIf([ShipDate]=Date(),"Shipping today","Unshipped")) |
إذا كانت [ShipDate] قبل تاريخ اليوم، يتم إرجاع "تم الشحن". وإلا، إذا كانت [تاريخ الشحن] تساوي تاريخ اليوم، يتم إرجاع "الشحن اليوم". وبخلاف ذلك، ارجع "غير منترب". |
=IIf([PurchaseDate]<#1/1/2008#,"Old","New") |
إذا كانت [PurchaseDate] قبل 1/1/2008، يتم إرجاع "قديم". وبخلاف ذلك، يتم إرجاع "جديد". |
=IIf(Eval([Volts] Between 12 And 15 And [Amps] Between 0.25 and 0.3),"OK","Out of calibration") |
إذا كانت [Volts] بين 12 و15 و[Amps] بين 0.25 و0.3، يتم إرجاع "OK". وبخلاف ذلك، يتم إرجاع "خارج المعايرة". |
=IIf(Eval([CountryRegion] In ("كندا","USA","Mexico")),"North America","Other") |
إذا كانت [البلد/المنطقة] هي "كندا" أو "الولايات المتحدة الأمريكية" أو "المكسيك"، فإرجاع "أمريكا الشمالية". وبخلاف ذلك، ارجع "غير ذلك". |
=IIf([Average]>=90,"A",IIf([Average]>=80,"B",IIf([Average]>=70,"C",IIf([Average]>=60,"D","F")))) |
إذا كان [Average] هو 90 أو أكثر، يتم إرجاع "A". بخلاف ذلك، إذا كان [Average] هو 80 أو أكبر، يتم إرجاع "B". بخلاف ذلك، إذا كان [Average] هو 70 أو أكثر، يتم إرجاع "C". بخلاف ذلك، إذا كان [Average] هو 60 أو أكبر، يتم إرجاع "D". وبخلاف ذلك، ارجع "F". |
ملاحظة: إذا كنت تستخدم الدالة IIf لإنشاء حقل محسوب في استعلام، فاستبدل علامة المساواة (=) باسم مستعار حقل وناقطتين (:). على سبيل المثال، الحالة: IIf([ShipDate]<Date(),"Shipped",IIf([ShipDate]=Date(),"Shipping today","Unshipped"))