Jo, en fundering. När jag i en "TextBox" skriver in ett tal vill jag kontrollera att det verkligen är ett tal som blivit inskrivit. Hur kan man på ett smidigt sätt kontrollera det? Läser jag in TextBoxen direkt till en integer så skiter det ju sig direkt om jag skriver in en bokstav. Tips och hjälp tack! Hej Om man bara vill kolla tecken så räcker det väl att kolla Ascii tecken 48 - 57? Mitt förslag går ut på att använda Validate. Vilket infördes med vb6 om jag inte misstager mig. Ger möjlighet att Validera värdet innan kontrollen förlorar focus. Vilket är ett bra tillfälle att utföra kontroll av värdet... HejTal kontroll
Sv: Tal kontroll
Gammalt kärt ämne komletera detta med
kontroll efter ev inklistring.
Private Sub Text1_KeyPress(KeyAscii As Integer)
Select Case KeyAscii
Case 8,22, 13, 44, 45, 46, 48 To 57
'om man vill att punkt alltid
'skrivs som kommatecken
If KeyAscii = 44 Then KeyAscii = 46
Case Else
KeyAscii = 0
End Select
End SubSv: Tal kontroll
Tack för svaret förresten!Sv: Tal kontroll
Här kommer ett litet exempel:
Option Explicit
Private mValue As Long
Private Sub Form_Load()
Text1 = mValue
End Sub
Private Sub Text1_Validate(Cancel As Boolean)
If IsNumeric(Text1) Then
mValue = CLng(Text1)
Else
MsgBox "Var vänlig att ange ett numeriskt värde!", vbExclamation
Cancel = True
End If
End SubSv: Tal kontroll
>Om man bara vill kolla tecken så räcker det väl att kolla Ascii tecken 48 - 57?
Kanske det men användaren kanske vill skriva decimaltal
och kanske negativa tal ex -123,5467,han/hon vill kanske göra
backspase för att korrigera felslagning,kanske trycka Enter
för validering. KeyAscii 22 gör att det går att klistra in ett tal.
Lägg till KeyAscii 9 om du vill tillåta Tab.
mvh
Sven