Gå til innhold

[løst] select case problemer.


Anbefalte innlegg

Private Sub Command1_Click()

Select Case kcal.Text
Case Is > "120"
Label14.Caption = "over 120"

Case Is > "100"
Label14.Caption = "over 100"

Case Is > "60"
Label14.Caption = "over 60"

Case Is > "30"
Label14.Caption = "over 30"

Case Is > "0"
Label14.Caption = "over 0"

End Select

End Sub

 

Når jeg kjøer dette, og hvis jeg skriver inn 59 i kcal så får jeg opp "over 120".

Mulig jeg er meget overtrøtt og ikke ser hvorfor dette ikke funker, men

noen som kan forklare meg hva jeg gjør galt?

Endret av Stig Jøran
Lenke til kommentar
Videoannonse
Annonse

Fant en løsning, du må få koden til å behanle det som integer:

 

       Dim Tmp As Integer = Me.TextBox1.Text

 

       Select Case Tmp

           Case Is > "120"

               Me.Label1.Text = ">120"

           Case Is > "100"

               Me.Label1.Text = ">100"

           Case Is > "60"

               Me.Label1.Text = ">60"

           Case Is > "30"

               Me.Label1.Text = ">30"

           Case Is > "0"

               Me.Label1.Text = ">0"

       End Select

Endret av ze5400
Lenke til kommentar

Å tilordne en text til en integervariabel er å stole litt mye på de gode makter, det er også dårlig stil. Og tall med gåsetegn rundt er tekst, ikke tall. Tekst vurderes alfabetisk, og dermed er 5 større enn 1, hvilket var problemet fra starten av.

 

Dim Tmp As Integer 
Tmp = Val(Me.TextBox1.Text)
Select Case Tmp
          Case Is > 120
              Me.Label1.Text = ">120"
          Case Is > 100
              Me.Label1.Text = ">100"

 

HTH. beste hilsen Harald

Lenke til kommentar

Det er da ikke så rart. Alfabetisk er 5 større enn 1, dermed kommer 5 etter 10000 akkurat som F kommer etter ABAKUS. Numerisk er derimot 10000 større enn 5, så det har allverdens betydning om dataene dine er tall eller tekst. Uttrykket "kcal.Text" gir en slags indikasjon om nettopp det.

 

HTH. beste hilsen Harald

Lenke til kommentar
  • 1 måned senere...

Jeg har ikke testet denne koden, men jeg har brukt den med stor suksess før:

Dim Tmp as string

Tmp=Textbox1.Text

Select Case Val(Tmp)
         Case Is > 120
             Me.Label1.Text = ">120"
         Case Is > 100
             Me.Label1.Text = ">100"
osv...

 

Degeim

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...