PDA

View Full Version : چرا Iif کار نمی کنه؟



vbapr2005
جمعه 25 فروردین 1385, 23:23 عصر
من کد زیر رو وارد کردم اما عمل نکرد(یعنی اون چیزی رو که ازش انتظار داریم انجام نداد):

IIf(SystemLabels, rdoNumberOnly.Checked = True, rdoNumberAndName.Checked = True)
اما وقتی خیلی معمولی از If استفاده کردم، نتیجه ی مورد نظر رو گرفتم

If SystemLabels Then rdoNumberOnly.Checked = True Else rdoNumberAndName.Checked = True
به نظرتون عجیب نیست؟؟؟

روح اله معینی زاده
شنبه 26 فروردین 1385, 06:38 صبح
سلام
چرا، خیلی هم عجیبه

اگه یادتون باشه بنده هم به همین مشکل برخورده بودم (حدود 7 یا 8 ماه پیش) و جالب بود که از چند تا پشت سر هم استفاده کرده بودم و هر کدوم که حال می کرد کار می کرد و هر کدومش هم که حال نمی کرد، کار هم نمی کرد.:گیج:

بعد از آن دیگه ازش استفاده نکرده‌ام. البته دوستان جواب‌هایی داده بودند، اما در نهایت چون هر کاری که کردم مشکلم حل نشد، ولش کردم و با دستور if کارم رو پیش بردم، بدون این که مشکلی داشته باشه.


اوصیکم به تقوی الله و Useing IF instead of IIf

با احترام- خدانگهدار

habedijoo
شنبه 26 فروردین 1385, 07:11 صبح
دوست عزیز vbapr2005 این مورد تا حالا برای چندین چند نفر از دوستان اتفاق افتاده . به نظر یکی از باگهای دات نت باشه .

vbapr2005
شنبه 26 فروردین 1385, 08:34 صبح
دوست عزیز vbapr2005 این مورد تا حالا برای چندین چند نفر از دوستان اتفاق افتاده . به نظر یکی از باگهای دات نت باشه .
خیلی شرمندم، اینو دیگه فکر نمی کردم که باید سرچ می کردم.:بامزه:
خوب هدایت جان هم از تو و هم از آقای معینی زاده تشکر می کنم.

behzad_gh
شنبه 26 فروردین 1385, 12:11 عصر
سلام
اشتباه شما اینه که برای قسمت True و False که از نوع Object است یک Command قرار می‌دهید
که این کار غیر ممکن است شما برای این کار نمی‌توانید از IIF استفاده نمایید چون کاملا غیر منطقی است.

موفق باشید. :تشویق:

Parham.G
شنبه 26 فروردین 1385, 12:24 عصر
ضمن تایید پست فوق، تکمیل میکنم که:
IIF یک تابع خاص است و نه یک متد. و مانند توابع دیگر مقدار برمیگردونه. پارامتر اول شرط شماست و پارامتر دوم مقدار برگشتی در صورت صحیح بودن شرط و پارامتر سوم مقدار برگشتی در صورت نادرست بودن شرط.
مثلا کاربرد به این شکله:


Dim intVar AS Integer = IIF(1 > 2, 5, 10)

که بعد از این خط مقدار متغیر intVar عدد 10 خواهد بود.

Hamedm
شنبه 26 فروردین 1385, 13:20 عصر
سلام

من کد زیر رو وارد کردم اما عمل نکرد(یعنی اون چیزی رو که ازش انتظار داریم انجام نداد):

IIf(SystemLabels, rdoNumberOnly.Checked = True, rdoNumberAndName.Checked = True) اما وقتی خیلی معمولی از If استفاده کردم، نتیجه ی مورد نظر رو گرفتم

If SystemLabels Then rdoNumberOnly.Checked = True Else rdoNumberAndName.Checked = True
به نظرتون عجیب نیست؟؟؟IIF هیچ مشکلی نداره.

در پناه حق موفق باشید و پرتوان

niloufar
شنبه 26 فروردین 1385, 19:15 عصر
سلام
IIF هیچ مشکلی نداره.

در پناه حق موفق باشید و پرتوان
سلام
چرا مشکلی نداره؟
همونطور که دوستان گفتند، IIF یه شرط میگیره، در صورت صحت یه مقدار برمیگردونه و در صورت عدم صحت یه مقدار دیگه. قرار نیست توش یه دستور بنویسیم!!!!

vbapr2005
یک شنبه 27 فروردین 1385, 01:27 صبح
ضمن تایید پست فوق، تکمیل میکنم که:
IIF یک تابع خاص است و نه یک متد. و مانند توابع دیگر مقدار برمیگردونه. پارامتر اول شرط شماست و پارامتر دوم مقدار برگشتی در صورت صحیح بودن شرط و پارامتر سوم مقدار برگشتی در صورت نادرست بودن شرط.
مثلا کاربرد به این شکله:


Dim intVar AS Integer = IIF(1 > 2, 5, 10)

که بعد از این خط مقدار متغیر intVar عدد 10 خواهد بود.
:اشتباه: بله بله درسته. از دوستان عزیزم (مخصوصا پرهام) تشکر می کنم.
من از این تابع میخواستم یه کاری برام انجام بده! درصورتی که تابع همیشه فقط یه مقدار برمیگردونه. کاری برای آدم نمیکنه. اینم برای خودش نکته ای بود.
حالا یه چیزی: الان که من me.text رو برابر با مقدار برگشتی تابع قرار دادم (و پارامتر اول true بود، اون بالا فقط نوشت true. یعنی ننوشت rdoNumberOnly.Checked = True.

logix
یک شنبه 27 فروردین 1385, 02:04 صبح
سلام،
اگر انتظار داشتی متن داخل textbox به rdoNumberOnly.Checked = True تغییر کنه، باید برای آرگومان دوم و سوم یک جفت کوتیشن هم میذاشتی.
گاهی اوقات به این توجه کن که دقیقاً چه چیزی میخوای. درسته که یک مساله فقط یک راه نداره ولی همینکه در ذهنت مرور کنی چه چیزی میخوای همه چی به سادگی حل میشه.

vbapr2005
یک شنبه 27 فروردین 1385, 22:48 عصر
سلام،
اگر انتظار داشتی متن داخل textbox به rdoNumberOnly.Checked = True تغییر کنه، باید برای آرگومان دوم و سوم یک جفت کوتیشن هم میذاشتی.
نه دوست من
اگه یه نگاه به سوالی که کردم میداختی متوجه میشدی که میخواستم چیکار کنم. (با استفاده از اون If مشکلم حل شد)
موفق باشی :چشمک: