مشكل در ساخت دفترچه كد شهرها

شروع موضوع توسط parsbin ‏27 فوریه 2006 در انجمن Visual Basic 6

  1. parsbin

    parsbin Registered User

    تاریخ عضویت:
    ‏21 جولای 2005
    نوشته ها:
    1,157
    تشکر شده:
    2
    محل سکونت:
    كرج- پلاك 10
    من تازه برنامه نويسي با وي بي رو آغاز كردم.
    ميخوام يك فرم درست كنم تا در text box1 نام هر شهري كه وارد شد در textbox2 كد اون شهر و در مراحل بعد در textbox 3 استان اون شهر هم نمايش داده بشه.
    همين اول كار به مشكل برخوردم.من كدها رو اينجا قرار ميدم ممنون ميشم راهنمايي كنيد.

    Private Sub Command1_Click()
    If Val(Text1.Text) = "tehran" Then Text2.Text = 21 And Text3.Text = "tehran"


    End Sub

    Private Sub Command2_Click()
    End
    End Sub

    Private Sub Form_Load()
    Text1.Text = ""
    Text2.Text = ""
    Text3.Text = ""
    End Sub

    در ضمن فرم با سه تكست باكس و دو دكمه exit و run تشكيل شده
     
  2. balabala

    balabala کاربر قدیمی پرشین تولز

    تاریخ عضویت:
    ‏22 می 2005
    نوشته ها:
    7,344
    تشکر شده:
    1,314
    محل سکونت:
    یه خورده اونورتر
    تابع Val برای برگرداندن عدد از یک رشته هست. شما یک رشته رو تبدیل میکنید به عدد که اینجا میشه 0 و هیچوقت شرطتون جواب نمیده.
     
  3. parsbin

    parsbin Registered User

    تاریخ عضویت:
    ‏21 جولای 2005
    نوشته ها:
    1,157
    تشکر شده:
    2
    محل سکونت:
    كرج- پلاك 10
    ميشه بيشتر راهنمايي كنيد.
    بايد چيكار كنم
    اگر خط اول تصحيح بشه و با يك شهر جواب بگيرم بقيه رو هم فكر كنم بتونم برم
    با select case يا if
    نميدونم
     
  4. balabala

    balabala کاربر قدیمی پرشین تولز

    تاریخ عضویت:
    ‏22 می 2005
    نوشته ها:
    7,344
    تشکر شده:
    1,314
    محل سکونت:
    یه خورده اونورتر
    خب بهترینش استفاده از case هستش و اگرم دیتابیس بلدید که استفاده از دیتابیس بهتره.

    کد شما یه خطای دیگه هم داره، از And استفاده کردید. در وی بی اگر میخواید چند دستور رو روی یک خط بیارید باید از : استفاده کنید. و همونطور که گفتم استفاده از Val لازم نیست چون این تابع مقدار عددی یک string رو برمیگردونه. کد شما اینطوری میشه:

    کد:
     
    Private Sub Command1_Click() 
    If LCase(Text1.Text) = "tehran" Then Text2.Text = 21 : Text3.Text = "tehran" 
    If LCase(Text1.Text) = "abcd" Then Text2.Text = 21 : Text3.Text = "abcd" 
     
    End Sub 
    
    یا
    کد:
    Private Sub Command1_Click() 
    If LCase(Text1.Text) = "tehran" Then
     Text2.Text = 21
     Text3.Text = "tehran"
    ElseIf LCase(Text1.Text) = "abcd" Then
     Text2.Text = 21
     Text3.Text = "abcd"
    ElseIf LCase(Text1.Text) = "efg" Then
     Text2.Text = 21
     Text3.Text = "efg"
    End if
    End Sub 
    یا
    کد:
    Private Sub Command1_Click() 
    Select Case LCase(Text1.Text)
     Case "tehran"
      Text2.Text = 21
      Text3.Text = "tehran"
     Case "abcd"
      Text2.Text = 21
      Text3.Text = "abcd"
     Case "efg"
      Text2.Text = 21
      Text3.Text = "efg"
    End Select
    End Sub
    حالا خودتون شهرهای دیگه رو اضافه کنید من یادم نمیاد! :happy:

    من از تابع LCase هم استفاده کردم تا string رو کلا حروف کوچک کنیم. چون ممکنه کسی تایپ کنه Tehran یا TeHrAn و اینها اونوقت برابر با tehran نمیشن.

    در ضمن خالی کردن تکست باکسها در هنگاه لود برنامه لازم نیست اگر در دیزاین مود، مقدار Text رو از پنجره Properties پاک کنید.
     
  5. parsbin

    parsbin Registered User

    تاریخ عضویت:
    ‏21 جولای 2005
    نوشته ها:
    1,157
    تشکر شده:
    2
    محل سکونت:
    كرج- پلاك 10
    راهنمايي ميخواستم شما همش رو انجام داديد!:blush:
    واقعا متشكرم
    پروژه عقب افتادم بود
     
  6. balabala

    balabala کاربر قدیمی پرشین تولز

    تاریخ عضویت:
    ‏22 می 2005
    نوشته ها:
    7,344
    تشکر شده:
    1,314
    محل سکونت:
    یه خورده اونورتر
    موفق باشید [​IMG]
     
zarpopخرید بک لینک عسل طبیعی و گرده گل ایرانیfootbal