تقوم بإرجاع أحد جزأين، وذلك طبقاً لتقييم تعبير ما.
يمكنك استخدام 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 عنصر التحكم عندما تكون Italyقيمة CountryRegion . يتم عرضه 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 بما أن كل دالة متداخلة IIf هي falsepart وسيطة الدالة 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 في وسيطة الدالة IIf أو Or في expr وسيطة الدالة، يجب تضمين التعبير المنطقي في الدالة Eval. راجع الجدول النموذجي التالي.
الاستخدام IIf في استعلام
غالبا ما يتم استخدام هذه IIf الدالة لإنشاء حقول محسوبة في الاستعلامات. بناء الجملة هو نفسه، باستثناء أنه في الاستعلام يجب أن تبدأ التعبير بالاسم المستعار للحقل ونقطتان (:) بدلا من علامة المساواة (=). لاستخدام المثال السابق، اكتب ما يلي في صف "الحقل " بشبكة تصميم الاستعلام:
Language: IIf([CountryRegion]="Italy", "Italian", "Some other language")
في هذه الحالة، 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","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]كانت ,"Canada""USA", أو"Mexico", , return"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")).