تقوم بإرجاع أحد جزأين، وذلك طبقاً لتقييم تعبير ما.
يمكنك استخدام IIf أي مكان يمكنك فيه استخدام التعبيرات. استخدم IIf لتحديد ما إذا كان تعبير آخر صحيحا أم خاطئا. إذا كان التعبير صحيحا، IIf فترجع قيمة واحدة. إذا كانت خاطئة، IIf فترجع قيمة أخرى. يمكنك تحديد القيم التي IIf ترجع.
بناء الجملة
IIf(expr, truepart, falsepart)
IIf يحتوي بناء جملة الدالة على هذه الوسيطات:
| الوسيطة | الوصف |
|---|---|
expr |
مطلوبة. التعبير الذي تريد تقييمه. |
truepart |
مطلوبة. القيمة أو التعبير الذي يتم إرجاعه إذا كان expr هو True. |
falsepart |
مطلوبة. القيمة أو التعبير الذي يتم إرجاعه إذا كان expr هو False. |
ملاحظات
IIf يقيم دائما كل من truepart و falsepart، على الرغم من أنه يرجع واحدا منهم فقط. وبسبب هذا السلوك، راقب الآثار الجانبية غير المرغوب فيها. على سبيل المثال، إذا كان تقييم falsepart يؤدي إلى خطأ القسمة على الصفر، يحدث خطأ حتى إذا كان expr هو True.
أمثلة
استخدام IIf في نموذج أو تقرير
لنفترض أن لديك جدولا Customers يحتوي على حقل يسمى CountryRegion. في نموذج، تريد إظهار ما إذا كانت اللغة الإيطالية هي اللغة الأولى لجهة الاتصال. يمكنك إضافة عنصر تحكم واستخدامه IIf في الخاصية الخاصة به Control Source :
=IIf([CountryRegion]="Italy", "Italian", "Some other language")
عند فتح النموذج في طريقة عرض النموذج، يتم عرض Italian عنصر التحكم كلما كانت قيمة CountryRegion .Italy يتم عرضه Some other language كلما كان CountryRegion له أي قيمة أخرى.
الاستخدام IIf في التعبيرات المعقدة
يمكنك استخدام أي تعبير في أي جزء من IIf عبارة. يمكنك أيضا تداخل IIf التعبيرات، والتي تتيح لك تقييم سلسلة من التعبيرات التابعة. للمتابعة مع المثال السابق، قد تحتاج إلى اختبار عدة قيم مختلفة CountryRegion ثم عرض اللغة المناسبة استنادا إلى القيمة:
=IIf([CountryRegion]="Italy", "Italian", IIf([CountryRegion]="France", "French", IIf([CountryRegion]="Germany", "German", "Some other language")))
النص Some other language هو وسيطة falsepart الدالة الأعمق IIf . نظرا لأن كل دالة متداخلة IIffalsepart هي وسيطة الدالة IIf التي تحتوي عليها، يتم إرجاع النص Some other language فقط إذا تم تقييم جميع expr وسيطات IIf الدالات إلى False.
على سبيل المثال آخر، افترض أنك تعمل في مكتبة. تحتوي قاعدة بيانات المكتبة على جدول يسمى Check Outs يحتوي على حقل يسمى Due Date، والذي يحتوي على تاريخ استحقاق كتاب معين. يمكنك إنشاء نموذج يعرض حالة عنصر تم سحبه في عنصر تحكم باستخدام الدالة IIf في خاصية عنصر التحكم Control Source هذا:
=IIf([Due Date]<Date(),"OVERDUE",IIf([Due Date]=Date(),"Due today","Not Yet Due"))
عند فتح النموذج في طريقة عرض النموذج، يعرض OVERDUE عنصر التحكم ما إذا كانت قيمة Due Date أقل من التاريخ الحالي، Due today وإذا كانت مساوية للتاريخ الحالي، وبخلاف Not Yet Due ذلك.
ملاحظة
لاستخدام عوامل التشغيل المنطقية مثل And أو Or في expr وسيطة الدالة IIf ، يجب إحاطة التعبير المنطقي في دالة Eval . راجع جدول المثال التالي.
استخدام IIf في استعلام
IIf غالبا ما تستخدم الدالة لإنشاء حقول محسوبة في الاستعلامات. بناء الجملة هو نفسه، باستثناء أنه في استعلام يجب عليك تمهيد التعبير باسم مستعار للحقل وعلامة نقطتين (:) بدلا من علامة التساوي (=). لاستخدام المثال السابق، اكتب ما يلي في صف الحقل لشبكة تصميم الاستعلام:
Language: IIf([CountryRegion]="Italy", "Italian", "Some other language")
في هذه الحالة، Language: هو الاسم المستعار للحقل.
لمزيد من المعلومات حول إنشاء الاستعلامات والحقول المحسوبة، راجع إنشاء استعلام تحديد بسيط.
الاستخدام IIf في التعليمات البرمجية ل VBA
ملاحظة
توضح الأمثلة التالية كيفية استخدام هذه الدالة في وحدة Visual Basic for Applications (VBA). لمزيد من المعلومات حول العمل مع VBA، حدد مرجع المطور في القائمة المنسدلة بجوار البحث، ثم أدخل مصطلحا واحدا أو أكثر في مربع البحث.
يستخدم هذا المثال الدالة IIf لتقييم معلمة TestMeCheckIt الإجراء وإرجاع الكلمة Large إذا كان المبلغ أكبر من 1000. وإلا، فإنه يرجع الكلمة Small.
Function CheckIt(TestMe As Integer)
CheckIt = IIf(TestMe > 1000, "Large", "Small")
End Function
المزيد من الأمثلة
التعبير:
=IIf([AirportCode]="ORD","Chicago",IIf([AirportCode]="ATL","Atlanta",IIf([AirportCode]="SEA","Seattle","Other")))النتيجة: إذا كانت
[AirportCode]، فسترجع"ORD""Chicago". وإلا، إذا كان[AirportCode]، فسترجع"ATL""Atlanta". وإلا، إذا كان[AirportCode]، فسترجع"SEA""Seattle". وإلا، ارجع"Other".التعبير:
=IIf([ShipDate]<Date(),"Shipped",IIf([ShipDate]=Date(),"Shipping today","Unshipped"))النتيجة: إذا كان
[ShipDate]أقدم من تاريخ اليوم، فارجع"Shipped". وإلا، إذا كان[ShipDate]يساوي تاريخ اليوم، فسترجع"Shipping today". وإلا، ارجع"Unshipped".التعبير:
=IIf([PurchaseDate]<#1/1/2008#,"Old","New")النتيجة: إذا كان
[PurchaseDate]أقدم من1/1/2008، فارجع"Old". وإلا، ارجع"New".التعبير:
=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". وإلا، ارجع"Out of calibration".التعبير:
=IIf(Eval([CountryRegion] In ("Canada","USA","Mexico")),"North America","Other")النتيجة: إذا كانت
[CountryRegion]أو"USA""Canada"أو"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 لإنشاء حقل محسوب في استعلام، فاستبدل علامة المساواة (=) باسم مستعار للحقل وعلامة نقطتين (:). على سبيل المثال، Status: IIf([ShipDate]<Date(),"Shipped",IIf([ShipDate]=Date(),"Shipping today","Unshipped")).