Programación General > Visual Basic para principiantes

 Texbox Que Solo Admita Números

<< < (2/3) > >>

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 &#60; 48 Or keyascii &#62; 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 &#60; 48 Or keyascii &#62; 57) And KeyAscii &#60;&#62; 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 &#34;OK&#34; Else Msgbox &#34;Solo Numeros&#34; 
 :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

[0] Índice de Mensajes

[#] Página Siguiente

[*] Página Anterior

Ir a la versión completa