Programación General > Visual Basic para principiantes
Texbox Que Solo Admita Números
Toph:
--- Cita de: "RadicalEd" ---
Puede reacomodar tú código de esta manera sin tantos If
--- Código: Text ---Private Sub text1_keypress(keyascii As Integer)If (keyascii < 48 Or keyascii > 57) And KeyAscii == 8 Then keyascii = 0 End Ifsalir:End Sub
--- Fin de la cita ---
:ph34r: ademas de que hay un signo igual (=) extra, lo probe y no acepta la tecla BACKSPACE porque deberia ser asi:
--- Código: Text ---Private Sub text1_keypress(keyascii As Integer)If (keyascii < 48 Or keyascii > 57) And KeyAscii <> 8 Then keyascii = 0 End Ifsalir:End Sub
Epa:
Buenas.
Aqui te dejo un codigo para validar entrada de datos.
En caso de que quieras admitir mas caracteres, los agregas a la variable letras y le cambias el tamaño segun la cantidad de caracteres que almacena
Dim Letras As String * 11 'La variable que contendra los caracteres admitidos
Dim Car As String 'La variable que recuperara el caracter ingresado
Private Sub Form_Load()
Letras = "0123456789" & vbBack 'Se guardan los valores admitidos en la variable
End Sub
Private Sub Text1_KeyPress(KeyAscii As Integer)
Car = Chr(KeyAscii) 'Se guarda el caracter ingresado, Chr convierte un valor en su
'respectivo caracter
If InStr(1, Letras, Car) = 0 Then 'Si el caracter no se encuentra dentro de los
KeyAscii = 0 'admitidos
End If
End Sub
Siempre es bueno usar la propiedad .text para comparar, cambiar o recuperar datos porque sino haces referencia al control en si y no a su contenido, asi como usar las comillas ya que sino, estaras comparando una cadena de texto con un numero, que aveces puede traer problemas
If txtTalla.text = "0" then
...
Bueno, eso es todo, espero te sirva de algo
Saludos
Soultaker:
--- Cita de: "X.Cyclop" --- También puedes usar la función IsNumeric(). :whistling:
--- Fin de la cita ---
Asi es
--- Código: Text ---If IsNumeric(Text1.Text) Then Msgbox "OK" Else Msgbox "Solo Numeros"
:comp:
F_Tanori:
'//Quisiera hacer mi aportacion
'//Este código tambien limita a que no se pueda introducir texto que no sea numeros aun a traves del comando pegar (CTRL+V) o click derecho Pegar porque en los demas codigos si lo permite :P
'//Lo aporto a sus concideraciones cualquier correccion bienvenida !
Private Sub Text1_Change()
Dim ls_texto As String
Dim c As Integer
ls_texto = Trim(Me.Text1)
For c = 1 To Len(ls_texto)
If Not IsNumeric(Mid(ls_texto, c, 1)) Then
ls_texto = Mid(ls_texto, 1, Len(ls_texto) - 1)
End If
Next c
Me.Text1 = ls_texto
Me.Text1.SelStart = Len(ls_texto)
End Sub
Saludos
Mexicali B.C.
cj_sw:
Muchas gracias a todos, quiero ser sincero y en verdad me sorprendió el interés que han puesto en responder mi pregunta, voy a probar todos los códigos y luego se los comento.
Gracias.
Navegación
[#] Página Siguiente
[*] Página Anterior
Ir a la versión completa