PDA

View Full Version : سوال: کمک برای کار با دستور شرطی



ehsan32909
جمعه 01 آبان 1388, 21:50 عصر
سلام
اساتید من یه جدول دارم که توش سه تا فیلد هستش و میخوام یه دستور شرطی بزارم که مقادیر فیلد اول رو چک کنه و بعد مقادیر فیلد دوم رو چک کنه و با توجه به مقادیر فیلد اول و دوم ، مقداری رو که در شرط نوشتم داخل ستون سوم قرار بده.

یعنی فیلد اول یه کمبو باکس هستش با 8 مقدار و فیلد دوم هم یه کمبو باکس هستش با 3 مقدار حالا می خوام یه دستور شرطی باشه که فیلد اول رو چک کنه و اگر مقدار مثلا 2 بود حالا بره و فیلد دوم رو چک کنه و اگر مثلا 3 بود ، در فیلد سوم مثلا عدد 44 رو قرار بدهک
لطفا به طور کامل توضیح بدید چون من تازه اکسس رو شروع کردم.
با تشکر

ehsan32909
یک شنبه 03 آبان 1388, 07:23 صبح
از اساتید کسی نبود به ما جواب بده؟

dadsara
یک شنبه 03 آبان 1388, 07:31 صبح
از اساتید کسی نبود به ما جواب بده؟
سلام
خوب طبیعی است در رخداد مورد نظرتان همین را که گفتید بنویسید

if text1=8 and text2=2 then
text3=44
endif

ehsan32909
یک شنبه 03 آبان 1388, 15:04 عصر
ممنون از پاسخ شما ولی من این رو میدونستم.
مشکل من این هستش که این دستور رو می خوام برای چند مقدار اجرا کنم یعنی اگر text1=2 and text2=3
یه رخداد و اگر
text1=2 and text2=4
یه رخداد دیگه و اگر
text1=5 and text2=3
یه رخداد دیگه و الا اخر که فکر کنم باید با دستور if ... if else استفاده کنم که این دستور در access وجود نداره و باید یه کد vba نوشت ولی من قوانین فرمول نویسی اکسس رو بلد نیستم یعنی چه جوری به یک ابجکت یا فیلد کد نسبت بدم یا براش کد بنویسم اگه مرجعی (فارسی یا انگلیسی) دارید به من معرفی کنید.
به طور مثال یک فیلد رو باید به این صورت نوشت : [field name]

nabeel
یک شنبه 03 آبان 1388, 16:57 عصر
سلام ehsan32909


باید با دستور if ... if else استفاده کنم

دستور ElseIf در داخل اکسس وجود داره , تابع IIf نیز همین کار رو انجام میده ولی با محدودیت تعداد شرط روبرو میشید . توصیه میکنم از روشی که در ادامه براتون توضیح میدم استفاده کنید . ( ارائه مثال در صورت حصول نتیجه به عهده خودتون )

از دستور Caseاستفاده کنید , مدیریت این دستور راحت تر از دستورات if تو در تو هستش

فرض میکنیم شما دو کامبو با نامهای ComboA و ComboB دارید


Select Case ComboA + ComboB
Case 3
TextX = 6
Case 5
TextX = 8
Case 11
TextX = 13
.
.
.

Case Else

End Select

با این روش اعمال تغییرات آتی بسیار ساده تر هستش ضمناً شما تنها از یک دستور Case استفاده میکنید , سرعت Case تا حدودی بیشتر از If هستش .

در انتظار ارسال نمونه نهایی شما که در اون مشکل رو حل کردید , هستیم .

موفق باشید

bitasoft.ir
چهارشنبه 20 آبان 1388, 20:53 عصر
در مورد Case یه مثال کاربردی هم میزاشتین بد نبود

nabeel
چهارشنبه 20 آبان 1388, 21:51 عصر
سلام

یه نمونه جهت بررسی روش کلی

39693

موفق باشید

mahdi shoghiyan
چهارشنبه 20 آبان 1388, 23:05 عصر
سلام دوست عزیز.
من هم با مشکل مشابهی برخورد کردم و یک راه چاره ای یافتم یک فایل شامل فایل کومبو قرار دادم که می تونه تکس باکس باشه.
با امید موفقیت برای شما.:لبخندساده:
http://barnamenevis.org/forum/attachment.php?attachmentid=39353&d=1257351805

yaheidar
چهارشنبه 30 آذر 1390, 07:19 صبح
سلام.اگه ممکنه در مورد سوالی که در پست اول پرسیده شده بیشتر راهنمایی بفرمایید.
متشکرم