Necesito saber como se validan los datos en visual basic 6.0, ¿por ejemplo tengo un textbox donde almaceno en la cedula de identidad del usuario y obligatoria mente necesito que sea de tipo numérico... Como ago para que ese textbox no acepte ninguna letra o carácter especial? ¿Y para que en el caso de que yo requiera los letras no acepte números o caracteres especiales?
Este caso es sencillo, para poder validar el contenido de un text box se puede hacer de varias formas, una es utilizando el evento LostFocus de los textbox ( cualquier componente tiene este evento) dentro de este evento puedes tratar de convertir el texto del textbox en un numero entero o double, si la conversión falla atrapas el mensaje de error y limpias el textbox o mandas un mensaje avisando al usuario. Otra forma es utilizando alguno de los 3 eventos de los text box: key press, key down, key up, estos tres métodos reciben un ascii o keycode, mediante estos parámetros puedes validar que el valor que introducieron sea un numero de acuerdo a su ascii o keycode, la diferencia entre los 3 métodos es el tiempo en el que se escribe el carácter. El primero es al presionar la tecla, el segundo es al estar presionada y el último al liberarla, el ideal es el último. Este código podrías adaptarlo a lo que necesites: LostFocus(...) dim valor as integer 'Crea una variable de tipo número On error goto validaNumero ' activa el error handling, si se encuentra error a partir de aquí va a la etiqueta "validaNumero" valor=Cint(tutextbox.text) 'convierte el contenido del textbox a un entero con CInt , Si no hay problema no pasa nada, pero si se da error al convertir algún texto alfanumérico entonces manda error, el cual es atrapado por el error handling y manda a "validaNumero" ValidaNumero: 'atrapa el error y ejecuta lo siguiente MsgBox("No se aceptan letras, símbolos") ' manda un mensaje de advertencia y limpia el textbox tutextbox.text="" exit sub 'Finalmente le dice que salga de la función y no pasa nada más, no aborta la ejecución Todo este código te haría la verificación cada vez que pierda el foco el text box, ahora si lo que quieres es que la haga al momento de presionar una tecla puedes usar el evento keyup o keypress. La desventaja que tiene usar los eventos que utilizan el keycode es que todas las teclas tienen un keycode diferente, tanto los números encima de las teclas como los numero del numberpad, mientras ascii no diferencia eso sino el símbolo Para cualquiera de los tres eventos ajustándolo a keycode o keyascii podrías usar el siguiente código Si el evento usa keycode if keyCode >= keyCodeoKeyAsciidelCero AND keyCode = keyCodeoKeyAsciidelCero AND KeyAscii <=keyCodeoKeyASciidelNueve then msgbox("numero valido") else msgbox("numero no valido") tutextbox.text="" Si no conoces los keycode o keyascii de las teclas puedes mandar un msgbox con el keycode o el keyascii dentro de uno de estos eventos para que anotes que códigos de teclas o símbolos necesitas. Si tienes alguna duda extra házmela saber y aquí te ayudo a solucionarla.
1 comentario
me sirvio musho esto de aqui hise mi tarea - Elizabeth Reyes
Yo se, ¿qué es el keypress... pero mi pregunta es como es el código para que solo acepte números o letras?
Yo te lo conteste en la otra pregunta
Verifica en el evento keypress Si el carácter digiutado esta en en rango de códigos ASCII de números o de letras, dependiendo de lo que estas validando.
me sirvio musho esto de aqui hise mi tarea - Elizabeth Reyes