Permitir introducir solo números en un campo usando VBA

solo-números-vba

Escrito por Administrador

4 de noviembre de 2021

Vamos a ver hoy cómo permitir la introducción solo de números en una campo de nuestro formulario de Microsoft Access usando VBA.

Esto es útil, por ejemplo, en campos donde queremos introducir números de teléfono, edades, importes... y no queremos que exista la posibilidad de introducir letras o cualquier otro carácter que no sea un número. De esta manera, podemos minimizar el número de errores en los datos de entrada al rellenar los formularios.

En el archivo que adjunto a modo de ejemplo, tenemos un formulario para introducir datos personales. Entre otros, tenemos los campos "Edad" y "Teléfono".

A continuación, os dejo el código que deberemos introducir en el evento "Al presionar una tecla" tanto en el campo "Edad" como en el campo "Telefono", para bloquear la introducción de letras en estos campos e introducir solo números usando VBA.

Private Sub Edad_KeyPress(KeyAscii As Integer)

'Solo dejamos introducir números

If InStr("0123456789" & Chr(8), Chr(KeyAscii)) = 0 Then
KeyAscii = 0

End If

End Sub

Private Sub Telefono_KeyPress(KeyAscii As Integer)

'Solo dejamos introducir números

If InStr("0123456789" & Chr(8), Chr(KeyAscii)) = 0 Then
KeyAscii = 0

End If

End Sub

Dentro del comando IF definimos qué teclas van a ser aceptadas en dicho campo. En nuestro caso, los números del 0 al 9 y Chr(8), que es la tecla de borrado (back space). Cualquier otro caracter distinto va a ser ignorado.

Por último, puntualizar que si quisiésemos introducir importes usando puntos y comas, solo tendríamos que incluir dichos caracteres dentro de la sentencia IF.

If InStr("0123456789.," & Chr(8), Chr(KeyAscii)) = 0 Then

KeyAscii = 0

End If

Espero que con este ejemplo hayas aprendido a permitir introducir solo números en el campo de un formulario usando VBA. Esto te ayudará a minimizar errores en la introducción de datos.

Un saludo y hasta la próxima.

Descarga el archivo del ejemplo

0 comentarios

Enviar un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.

Quizá te interese,

Contacto