IIF چیست

iif چیست و نحوه استفاده و برقراری شرط در کوئریهای اکسس چگونه است؟

IIF چیست

IIF چیست ؟ تا حالا شده بخواید برای برقراری شرط تو اکسس از فرمول استفاده کنین ؟ مثلا بخواید توی یه کوئری بگید مثلا اگر نمره زیر 15 بود بنویس “ضغیف” و اگر بالای 15 بود بنویس “خوب” ، خب حالا کاری که میکنید اینه پنجره expression builder رو باز میکنید و میخواید از if استفاده کنسد که میبینید که بجاش IIF وجود داره و سوال پیش میاد که این IIF چیست و چجوری باید ازش استفاده کنم .

برقراری شرط در اکسس و محیط VBA

برای استفاده از شرط تو محیط کدنویسی یا ماکرو اکسس میتونیم از تابع if استفاده کنیم که نمونه اون به شکل زیر میشه که این قطعه کد از آموزش ایجاد فروشگاه و صدور فاکتور 0 تا 100 برداشته شده :

If IsNull([txtNewPass]) Or [txtNewPass] = “” Then

lblAlarm.Caption = “پسورد وارد نشده یا اشتباه است”
lblAlarm.BackColor = 5684654
lblAlarm.ForeColor = 256565
Cancel = True
txtNewPass.SetFocus

Else

lblAlarm.Caption = “اکنون می توانید رمز خود را تغییر دهید”
lblAlarm.BorderColor = 12345456
txtNewPassConfirm.SetFocus

End If

میخوام با مثال بالا تفاوت بین IIF و IF رو شرح بدم ( البته سعی میکنم ) ، ببینید توی کد بالا نوشتیم که اگر مقدار txtNewPass خالی بود یه پیغام نمایش بده و پشت سرش هم یه سری کارها مثل تغییر رنگ و کنسل کردن  رو انجام بده و در ادامه گفتیم در غیر اینصورت که با کلمه Else مشخص شده ، یه سری کار دیگه انجام بده .

این کلیت استفاده از تابع IF توی اکسس بود و حالا کلیات استفاده از IIF چطوری هست ؟

IIF میاد یه شرط رو از لحاظ درست یا غلط بودن بررسی میکنه و در ازای درست بودن یک کار و در ازای غلط بودن یک دیگه انجام میده مثل If نمیتونید ازش بخواید در صورت برقرار بودن و یا نبودن شرط ، کلی کار انجام بده و در واقع خیلی خلاصه و مفیده.

IIF چیست ؟ ساختار IIF در اکسس و کاربرد آن

از IIF معمولا توی کوئریها استفاده میشه ، البته توی VBA هم میشه از اون استفاده کرده و خود ما هم توی خیلی برنامه هامون به دفعات استفاده کردیم ولی انصافا کاربردش توی محیط VBA اصلا به اندازه If نیست ولی بازهم بستگی به نوع برنامه و تصمیمات برنامه نویس داره ، بگذریم . خلاصش اینه که شما تو نمای کوئری نمیتونید از IF استفاده کنید و باید از IIF بهره بگیرید که خیلی هم راحته به شکل زیر نگاه کنید که داره ساختار کلی IIF رو نشون میده . در واقع میاد صحت یک موضوعی رو بررسی میکنه و اگه درست بود یه کار و اگه غلط بود یه کار دیگه که برنامه نویس مشخص میکنه رو انجام میده .

برقراری شرط در کوئریهای اکسس
برقراری شرط در کوئریهای اکسس

تفاوت IF و IIF در اکسس

بزرگترین تفاوتی که میتوان بیان کرد البته به نظر بنده این ایت که شما نمیتوانید از IF در کوئریها استفاده کنید ولی از IIF هم در VBA و هم در کوئریها می توانید استفاده کنید و IIF بسیارخلاصه و مفید است . ولی برای IF شما از Else و End IF هم استفاده میکنید . من چیز دیگه ای به ذهنم نمیرسه اگه کسی که این مطلب رو میخونه تفاوت بزرگ دیگه ای میبینه توی قسمت نظرات عنوان کنه .

 

شما راحت میتونید از IIF توی کوئریهای خودتون برای برقراری و بررسی شروط مختلف استفاده کنید مثلا فرض کنید اسامی دانش آموزان یه کلا رو توی کوئری خودتون دارید و میخواد جلوی اونهایی که نمره بالا 15 دارن نوشته بشه خوب و جلوی اونهایی نمره زیر 15 دارن نوسته بشه ضعیف ، برای این کار به راحتی و با یه خط کد و استفاده از IIF میتونید به هدفتون برسید ، کافیه تو یه فیلد خالی کوئری کد زیر رو بنویسید:

IIf( [Nomreh] >15,”خوب”,”ضعیف”)

خب مسلما به جای مثال بالا شما حتما باید فیلد Nomreh توی دیتابیس خودتون داشته باشین .

امیدوارم تونسته باشم خوب IIF رو توضیح داده باشم ف حالا بعدا یه ویدیو آموزشی هم به ماین مطلب اضافه میکنم تا بهتر مفهوم IF و IIF رو توی اکسس درک کنین.

 

دیدگاه‌ خود را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

17 دیدگاه دربارهٔ «iif چیست و نحوه استفاده و برقراری شرط در کوئریهای اکسس چگونه است؟»

  1. سلام استاد بحری ممنون از مطالب اموزشی که تو سایت قرار می دید اگه زحمتی نیست مطالبتون رو بصورت ویدئویی قرار بدین خیلی بهتر میشه فهمید واستفاده کردوالبته برتری استقبال از سایت شما همین ویدئوهای با کیفیت وکاربردی هست

  2. سلام

    آقای بحری
    اگر امکان داره یک آموزشی در نحوه ایجاد منوی راست کلیک و ایجاد منو برای برنامه اکسس در نسخه 2013 به بالا منتشر کنید که خیلی کاربردی هست.

    و یک سوال دیگه
    نسخه دوتا آفیس 2013 با تفاوت نسخه 64 و 32 بیتی بر روی یک سیستم مشکلی پیش نمیاره؟

    1. اصلا امکان نصب دو تا ورژن 32 و 64 همزمان امکان نداره .
      تو دوره مقدماتی توضیح دادم .

  3. سلام دستور ایجاد رکورد جدید در vb می خواستم.همراه با شرطی که اگر چند فیلد خالی بود پیغام اررو بدهد و پس از رفع رکورد صورت بگیرد.
    لطفا راهنمایی نمایید

  4. سلام استاد بحری من در اکسس میخواهم ماکرویی با شرط if بنویسم که به طور خودکار اجرا شود به گونه ای که وقتی داخل ستون نام کالا در کوئری متن خاصی مثل علی قرار گیرد ماکرو به صورت خودکار اجرا شده و پیام هشداری مبنی بر اشتباه بودن تایپ به من نشان دهد

  5. حمید عبدالله زاده

    سلام استاد
    ممنون از آموزش های بسیار عالی شما
    استاد من قصد دارم خروجی دلخواه از کوئری که استخراج کردم بگیرم.فرمت های خروجی که در اکسس هست مثل جدول یا اکسل یا ورد مورد نظم نیست.مثلا میخوام یک فایل تکست خروجی بگیرم که به ترتیب نام و مشخصات دانش آموز در خط اول ، نمره در خط دوم ، معدل در خط سوم بیاد و این برای همه دانش آموزان به صورت حلقه انجام بشه. ممنون میشم راهنماییم کنید ، آیا باید از کدنویسی استفاده کنم؟

  6. سلام خسته نباشید
    ببخشید می شه یه آموزش هم در رابطه با گزارش گیری بر اساس کلاس ها هم بذارین؟ ینی طوری میشه که بایک کوئری و گزارش بتونیم از همه کلاس ها جدا جدا گزارش بگیریم؟؟؟؟

  7. سلام
    در دستور iif اگر نتایج (اگر بود و اگر نیود ) چطوری از مقادیر متغییر استفاده کنبم
    مثلا من می خوام بگم اگر تکیت 1 و 2 خالی نبود
    اگر بود جواب بده همه رکوردها
    اگر نبود بین مقادبر تست 1 و 2 جواب بده (فیلتر کنه)

  8. سلام من تازه با سایتتون آشنا شدم واقعا آموزشاتون عالی هستن میخواستم بدونم زمانی که ما 3 فیلد در یک table داریم چطور میشه فیلد سوم رو با استفاده از 2 فیلد قبلی و همینطور اطلاعات خود فیلد سوم نوشت که تکراری نباشه در واقع بشه سه فیلد رو همزمان و وابسته به هم منحصر به فرد کرد

  9. با سلام
    آقای بحری کاربرای من در سطح وسیعی آمار وارد میکنن در تاریخ های متفاوت حالا من یه جدول از مکانها دارم و یه جدول هم از آماری که در اون وارد میکنن جدول مکان و آمار مسلما به هم وصلا
    حالا یکسری ها در تاریخ های متفاوت آمار رو نزدن من یک پرسوجو میخوام که لیست مکان ها رو از جدول مکانها بخونه و با جدول آمار چک کنه و در هر تاریخ انتخابی نام مکانی که در جدول آمار ثبت نشده رو لیست کنه
    امیدوارم توضیحم واضح بوده باشه
    میتونین راهنمایی بفرمایین

پیمایش به بالا