View Full Version : سوال: طريقه نوشتن ElseIf در حالتي كه IF بصورت IIF بكار ميرود
nazanin_90
سه شنبه 31 مرداد 1391, 11:56 صبح
سلام
در حالتي كه يك شرط را بصورت IIF بكار مي بريم Else را با علامت ; نشان ميدهيم ،در اين حالت ElseIf را به چه صورتي بايد بنويسيم؟
مي خواهم كد زير را در حالت IIf و در ControlSource يك تكست باكس بنويسم
If Mno < 3000 Or Mno = 3500 Or Mno = 4000 Then
Mandeh = sum([Bed] - [Bes])
ElseIf Mno > 3000 Or Mno <> 3500 Or Mno <> 4000 Then
Mandeh = sum([Bes] - [Bed])
End If
با تشكر
ARData
سه شنبه 31 مرداد 1391, 12:18 عصر
IIF در IIF :
x = IIf(m = n, 23, IIf(m > w, 9, 8), 0)
nazanin_90
سه شنبه 31 مرداد 1391, 13:26 عصر
IIF در IIF :
x = IIf(m = n, 23, IIf(m > w, 9, 8), 0)
با سلام
راستش از اين كد زياد سر در نياوردم
ممكن است همان كدي كه بنده در پست قبل ارائه نموده ام را عيناً در حالت IIF بكار ببريد؟
با تشكر
Abbas Amiri
سه شنبه 31 مرداد 1391, 18:05 عصر
سلام
همانطور که درتعریف IIf آمده ( IIf(expr, truepart, falsepart قسمت اول شرط ، قسمت دوم نتیجه درصورت درست بودن و قسمت سوم Else وحالت سومی نداریم درصورت احتیاج از ساختار If Then ویا Select Case استفاده کنید
حالا چه اصراری است از IIf استفاده شود که بمعنای If فوری است . آنرا به If تاخیری تبدیل نکنید
alirezabahrami
سه شنبه 31 مرداد 1391, 19:24 عصر
سلام
در حالتي كه يك شرط را بصورت IIF بكار مي بريم Else را با علامت ; نشان ميدهيم ،در اين حالت ElseIf را به چه صورتي بايد بنويسيم؟
مي خواهم كد زير را در حالت IIf و در ControlSource يك تكست باكس بنويسم
If Mno < 3000 Or Mno = 3500 Or Mno = 4000 Then
Mandeh = sum([Bed] - [Bes])
ElseIf Mno > 3000 Or Mno <> 3500 Or Mno <> 4000 Then
Mandeh = sum([Bes] - [Bed])
End If
با تشكر
سلام
با توجه به اینکه در کد شما به Sum اشاره شده قطعاً این شرط را برای جمع نتیجه تفضل Bed و Bes در بخش page footerمیخواهید. اینطور نیست؟
اگر برای این منظور می خواهید کد زیر را درکنترل سورس تکست باکس واردکن و نتیجه را ببین!
=IIf([MNO]<3000 Or [MNO]=3500 Or [MNO]=4000 ,Sum([Bed]-[Bes]),IIf([MNO]>3000 Or [MNO]<>3500 Or [MNO]<>4000,Sum([Bes]-[Bed])))
موفق باشید
nazanin_90
چهارشنبه 01 شهریور 1391, 05:13 صبح
سلام
با توجه به اینکه در کد شما به Sum اشاره شده قطعاً این شرط را برای جمع نتیجه تفضل Bed و Bes در بخش page footerمیخواهید. اینطور نیست؟
اگر برای این منظور می خواهید کد زیر را درکنترل سورس تکست باکس واردکن و نتیجه را ببین!
=IIf([MNO]<3000 Or [MNO]=3500 Or [MNO]=4000 ,Sum([Bed]-[Bes]),IIf([MNO]>3000 Or [MNO]<>3500 Or [MNO]<>4000,Sum([Bes]-[Bed])))
موفق باشید
سلام
دقیقاً همون جوابی است که می خواستم
ممنون
nazanin_90
چهارشنبه 01 شهریور 1391, 05:22 صبح
سلام
همانطور که درتعریف IIf آمده ( IIf(expr, truepart, falsepart قسمت اول شرط ، قسمت دوم نتیجه درصورت درست بودن و قسمت سوم Else وحالت سومی نداریم درصورت احتیاج از ساختار If Then ویا Select Case استفاده کنید
حالا چه اصراری است از IIf استفاده شود که بمعنای If فوری است . آنرا به If تاخیری تبدیل نکنید
باسلام
جناب آقای امیری !همانطور که عرض کردم این کد را باید در قسمت ControlSource يك تكست باكس وارد کنم و در قسمت کد نویسی ، نوشتن کد جواب نمیدهد . من نمیدانم برای قسمت ControlSource تكست باكس هم میتوان از ساختار If Then ویا Select Case استفاده کرد یا نه ؟ اگر جواب مثبته میشه لطف کنید در مورد نحوه نوشتن آن در این قسمت راهنمائی نمائید .
با تشکر
ARData
چهارشنبه 01 شهریور 1391, 09:02 صبح
شما در کنترل سورس به جاي "," از ";" استفاده نماييد : مثلا : ( IIf(expr, truepart, falsepart در کنترل سورس نوشته مي شود : ( IIf(expr; truepart; falsepart
Abbas Amiri
چهارشنبه 01 شهریور 1391, 20:26 عصر
این کد را باید در قسمت ControlSource يك تكست باكس وارد کنم
باعرض معذرت سوال شما را بادقت نخوانده بودم . اگر چه Control Source یک کنترل را میتوان در هرجای برنامه نوشت ، ولی درصورتیکه مجبورشویم ویا بعلتی بخواهیم دراثنای برنامه آنرا تغییردهیم
به همین دلیل پست 5 جناب آقای alirezabahrami (http://barnamenevis.org/member.php?90573-alirezabahrami) بهترین گزینه است
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.