PDA

View Full Version : متوقف کردن برنامه در میان شرط ها



41134100
شنبه 15 خرداد 1389, 15:31 عصر
سلام
راستش هرچی سرچ کردم به نتیجه نرسیدم
یعنی نمیدونستم که باید چی سرچ کنم.

مشکلم اینه
من توی form load چندین شرط نوشتم. میخوام وقتی که یه شرط صحیح در میاد دیگه ادامه نده برنامه و شرط های دیگه رو برسی نکنه




Private Sub Form_Load()
If x = "123" Then
login.Show
Else
Unload Me
End If


If x = "123123" Then
login1.Show
Else
Unload Me
End If

If x = "5" Then
login2.Show
Else
Unload Me
End If


If x = "1" Then
login3.Show
Else
Unload Me
End If


End Sub

Babak.Hassanpour
شنبه 15 خرداد 1389, 15:42 عصر
select case x
case "123123"
msgbox "123123"
case "1"
msgbox "1"
end select

41134100
شنبه 15 خرداد 1389, 15:47 عصر
متوجه منظورم نشدید
فرض کنید من میخوام وقتی یه شرطی صحیح بود فرم لود end sub بشه

Babak.Hassanpour
شنبه 15 خرداد 1389, 16:07 عصر
اینم برنامه شما.


Private Sub Form_Load()
Select Case x
Case "123"
login.Show
Case "123123"
login1.Show
Case "5"
login2.Show
Case "1"
login3.Show
Case Else
Unload Me
End Select
End Sub

41134100
شنبه 15 خرداد 1389, 16:20 عصر
مثل اینکه قدرت بیان من خیلی ضعیفه
من کلی دستور و شرط مینویسم تو فرم لود . میخوام وسط دستورها فرم لود end sub بشه. (قبل اینکه به end sub خود ویژوال برسه)

Babak.Hassanpour
شنبه 15 خرداد 1389, 16:33 عصر
ببینید دوست عزیز
اگر قراره که خروج از فرم با تطبیق با شرط خاصی صورت بگیره شما اگر زود تر خارج بشید چطور شرط های پایین تر رو بررسی می کنید؟
در کل راه پیاده سازی اونی بود که بالا اشاره شد.برای خروج هم هر جا دوست داشتید بنویسید exit sub

mohsensaghafi
یک شنبه 16 خرداد 1389, 00:13 صبح
سلام دوست عزیز.
با توجه به دستوراتی که نوشته اید در هر صورت دستور unload Me اجرا می شود مگر اینکه x=123 باشد. به دستورات دقت کنید و دوباره آن را مرور کنید. فرض کنید متغیر x برابر 123123 باشد. در if اول چون برابر 123 نیست پی unload Me اجرا می شود سپس به دستور if بعدی می رسد که احتمالا منظور شما این نبوده است. این را توضیح دهید تا بحث ادامه پیدا کند و بتوانیم بهتر راهنمایی کنیم.

Dr.Bronx
یک شنبه 16 خرداد 1389, 00:39 صبح
از Exit Sub استفاده کنید
به این صورت که

Private Sub Form_Load()
If x = "123" Then
login.Show
Exit sub
Else
Unload Me
End If


If x = "123123" Then
login1.Show
Exit sub
Else
Unload Me
End If

If x = "5" Then
login2.Show
Exit sub
Else
Unload Me
End If


If x = "1" Then
login3.Show
Exit sub
Else
Unload Me
End If


End Sub

موفق باشید ./

Dr.Bronx
یک شنبه 16 خرداد 1389, 00:48 صبح
حالا اگر نمی خواید هم با Case بنویسید با همون if میشه نوشت اما ساده تر
به این صورت

If x = "123" Then
Login.Show

Exit Sub

ElseIf x = "123123" Then
Login1.Show

Exit Sub

ElseIf x = "5" Then
Login2.Show

Exit Sub

ElseIf x = "1" Then
Login3.Show

Exit Sub

End If