/ Forside / Teknologi / Udvikling / VB/Basic / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
VB/Basic
#NavnPoint
berpox 2425
pete 1435
CADmageren 1251
gibson 1230
Phylock 887
gandalf 836
AntonV 790
strarup 750
Benjamin... 700
10  tom.kise 610
tal i tekstbokse
Fra : Michael


Dato : 10-05-01 22:19

Jeg skal undersøge om begge tekstbokse indeholder en talværdi og samtidig
skal tallet i den ene være større end i den anden. Jeg benytter følgende
kode:

Private Sub Command1_Click()
If IsNumeric(Text1.Text) And IsNumeric(Text2.Text) And Text1.Text >
Text2.Text Then

Et eller andet kode

Else: MsgBox "Fejl i indtastningen!", , "FEJL"
End If
End Sub

Det virker fint, hvis f.eks:

text1 = 10, text2 = 1

Men hvis tilfældet er:

text1 = 10, text2 = 2

så tror programmet at talværdien i text2 er størst og kommer med msgbox'en.
Er der en fornuftig forklaring på dette, og kan jeg omgå problemet?

På forhånd tak for hjælpen





 
 
Jens (10-05-2001)
Kommentar
Fra : Jens


Dato : 10-05-01 23:25

Hvad med......dette

Option Explicit
Dim Tal1 As Long
Dim Tal2 As Long

Private Sub Command1_Click()

On Error GoTo err

Tal1 = Text1.Text
Tal2 = Text2.Text

If Tal2 > Tal1 Then MsgBox "Tallet 2 er for stort !", vbCritical

MsgBox Tal1, vbInformation

Exit Sub
err:
MsgBox "Fejl ! det må kun være tal !", vbCritical

End Sub




Mikkel Ro Manzano Ch~ (11-05-2001)
Kommentar
Fra : Mikkel Ro Manzano Ch~


Dato : 11-05-01 11:15

> så tror programmet at talværdien i text2 er størst og kommer med
msgbox'en.
> Er der en fornuftig forklaring på dette, og kan jeg omgå problemet?

Det skyldes at de to værdier sammenligned som strenge.... Ret nemt at
løse...

Private Sub Command1_Click()
If IsNumeric(Text1.Text) And IsNumeric(Text2.Text) then
if Cint(Text1.Text) > cint(Text2.Text) Then

Et eller andet kode

Else: MsgBox "Fejl i indtastningen!", , "FEJL"
end if
Else: MsgBox "Fejl i indtastningen!", , "FEJL"
End If
End Sub

--
Mvh. / Regards Mikkel Christensen



K. P. Olesen (11-05-2001)
Kommentar
Fra : K. P. Olesen


Dato : 11-05-01 11:37

Hej

Fejlen ligger i følgende kode:

>Private Sub Command1_Click()
>If IsNumeric(Text1.Text) And IsNumeric(Text2.Text) And Text1.Text >
>Text2.Text Then
[...]

Du sammenligner de to tekster i tekstboksene direkte, og der er altså
korrekt at f.eks. "10" < "2" ved sammenligning af tekster.
Løsningen (som f.eks. vist i et andet svar på dit spørgsmål) er at
overføre indholdet af de to tekstbokse til "talvariable". Om det så
skal være "Long", "Double" eller ... afhænger selvfølgelig af om du
arbejder med heltal eller kommatal.

go' fornøjelse

K.P.Olesen


Søg
Reklame
Statistik
Spørgsmål : 177501
Tips : 31968
Nyheder : 719565
Indlæg : 6408527
Brugere : 218887

Månedens bedste
Årets bedste
Sidste års bedste