|
| 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
| |
|
|