Foros del Web » Programación para mayores de 30 ;) » Programación General » Visual Basic clásico »

Validacion en un textbox (Visual Basic)

Estas en el tema de Validacion en un textbox (Visual Basic) en el foro de Visual Basic clásico en Foros del Web. Hola!!! Necesito ayuda tengo una programa en Visual Basic y quiero saber como le hago para que los textbox solo acepten números o letras, como ...
  #1 (permalink)  
Antiguo 29/05/2004, 15:26
 
Fecha de Ingreso: septiembre-2003
Ubicación: Morelos
Mensajes: 83
Antigüedad: 20 años, 7 meses
Puntos: 0
Validacion en un textbox (Visual Basic)

Hola!!!

Necesito ayuda tengo una programa en Visual Basic y quiero saber como le hago para que los textbox solo acepten números o letras, como puedo hacer esa restricción?
  #2 (permalink)  
Antiguo 30/05/2004, 16:19
 
Fecha de Ingreso: noviembre-2003
Ubicación: En Mi Kasa
Mensajes: 11
Antigüedad: 20 años, 5 meses
Puntos: 0
Yo Le Implemente Una Validacion En El Evento On Change, Cada Que Cambiaba El Contenido Del Texto Recorria El Texto Preguntado Por El Ascii Del Caracter Si Estaba Dentro Del Rango De Los Numeros 48 - 59 Lo Metia A Un String Y Luego Reemplazaba El Contenido Del TextBox Por El De La String, Asi Solamente Aceptaba Caracteres.

Se Ve Un Poco Enredoso Pero Esta Sencilla La Idea
  #3 (permalink)  
Antiguo 30/05/2004, 16:31
Avatar de Eternal Idol  
Fecha de Ingreso: mayo-2004
Ubicación: Lucentum
Mensajes: 6.192
Antigüedad: 20 años
Puntos: 74
Tal vez esto te sirva:

http://www.tek-tips.com/gfaqs.cfm/le...id/222/fid/302

Por cierto el 9 en ASCII es el 57.
__________________
¡Peron cumple, Evita dignifica! VIVA PERON CARAJO
  #4 (permalink)  
Antiguo 30/05/2004, 18:07
 
Fecha de Ingreso: marzo-2004
Mensajes: 34
Antigüedad: 20 años, 1 mes
Puntos: 0
haz esto!

ambos codigos pegalos en un modulo

Para comprobar que se ingresen numeros:

Public Function Numeros(Tecla As Integer) As Integer
Dim strValido As String
strValido = "0123456789"
If Tecla > 26 Then
'compara los numeros ke hay en la variable strValido _
con el numero ingresado(Tecla)
'si el numero ingresado(Tecla) no esta en la variable strValido entonces _
Tecla = 0, la funcion Chr convierte el numero a ascii
If InStr(strValido, Chr(Tecla)) = 0 Then
Tecla = 0
End If
End If
Numeros = Tecla
End Function

Para comprobar que se ingresen letras:

Public Function VLetras(Tecla As Integer) As Integer
Dim strValido As String
'letras no validas: .*-}¿'!%&/()=?¡]¨*[Ññ;:_ áéíó
strValido = "qwertyuioplkjhgfdsazxcvbnmQWERTYUIOPASDFGHJKLZXCV BNM, "
If Tecla > 26 Then
If InStr(strValido, Chr(Tecla)) = 0 Then
Tecla = 0
End If
End If
VLetras = Tecla
End Function

y Listo....luego llamas las funciones de la siguiente forma

Private Sub txtCiudad_KeyPress(KeyAscii As Integer)
KeyAscii = VLetras(KeyAscii)
End Sub

Espero te sirva
  #5 (permalink)  
Antiguo 30/05/2004, 19:01
 
Fecha de Ingreso: septiembre-2003
Ubicación: Morelos
Mensajes: 83
Antigüedad: 20 años, 7 meses
Puntos: 0
Gracias!!

Hola!!

Gracias por ayudarme con mi problema, mmm aun no lo pruebo pero confio en que funciona o al menos eso espero, yo había encontrado otra forma haciendolo directamente en keypress pero lo tuve que hacer en cada textbox e imagino que con un modulo pues ya no es necesario esto, solo lo mando llamar.

Bueno gracias!!!
  #6 (permalink)  
Antiguo 31/05/2004, 01:05
 
Fecha de Ingreso: mayo-2004
Mensajes: 86
Antigüedad: 20 años
Puntos: 0
Private Sub Text1_KeyPress(KeyAscii As Integer)
If KeyAscii < 48 Or KeyAscii > 57 Then
If KeyAscii <> 8 Then KeyAscii = 6
End If
End Sub
__________________
Alguien sabe como es?
  #7 (permalink)  
Antiguo 31/05/2004, 01:10
 
Fecha de Ingreso: mayo-2004
Mensajes: 86
Antigüedad: 20 años
Puntos: 0
Con este codigo solo te dejara introducir numeros teniendo en cuenta que los numeros del 1 al 0 son los codigos ASCII del 48 al 57, lo que hace esto es que si pulsas algo diferente a un numero cambiamos el valor del KeyAscii por un ACK que es el valor 6 (en realidad no hace nada)
Private Sub Text1_KeyPress(KeyAscii As Integer)
If KeyAscii < 48 Or KeyAscii > 57 Then
If KeyAscii <> 8 Then KeyAscii = 6
End If
End Sub

con las letras minusculas seria:

Private Sub Text1_KeyPress(KeyAscii As Integer)
If KeyAscii < 97 Or KeyAscii > 122 Then
If KeyAscii <> 8 Then KeyAscii = 6
End If
End Sub

o con las mayusculas:

Private Sub Text1_KeyPress(KeyAscii As Integer)
If KeyAscii < 65 Or KeyAscii > 90 Then
If KeyAscii <> 8 Then KeyAscii = 6
End If
End Sub

El ASCII que corresponde al 8 es el BackSpace, la tecla de borrar. Espero qe te sirva
__________________
Alguien sabe como es?
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 20:01.