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?
| |||
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? |
| |||
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 ![]() |
| ||||
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 |
| |||
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 ![]() |
| |||
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!!! |
| |||
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? |