Permitir introducir solo letras en un campo usando VBA

Escrito por Administrador

9 de noviembre de 2021

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

Esto es útil, por ejemplo, en campos donde queremos introducir nombres, apellidos, profesiones, categorías... y no queremos que exista la posibilidad de introducir números o cualquier otro carácter que no sea una letra. 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 "Nombre" y "Apellidos". La idea es bloquear la introducción de números en estos campos y solo introducir letras usando VBA.

solo-letras-vba

A continuación, os dejo el código que deberemos introducir en el evento "Al presionar una tecla" tanto en el campo "Nombre" como en el campo "Apellidos". Si os fijáis, están hecho de forma distinta, pero con idéntico resultado.

Private Sub Nombre_KeyPress(KeyAscii As Integer)

'Solo dejamos introducir letras

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

Else

KeyAscii = 0

End If

End Sub

Private Sub Apellidos_KeyPress(KeyAscii As Integer)

'Solo dejamos introducir letras

If InStr("ABCDEFGHIJKLMNÑOPQRSTUVWXYZ " & Chr(8), Chr(KeyAscii)) = 0 Then

KeyAscii = 0

End If

End Sub

Para el campo "Nombre", definimos en el comando IF qué caracteres NO QUEREMOS que se puedan introducir en el campo. Mientras que para el campo "Apellidos", definimos qué caracteres SI PUEDEN ser introducidos.

solo-letras-vba

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

Por último, invitarte a compartir tus dudas en los comentarios o en el foro, y a darle clic a la publicidad de abajo para ayudarme a seguir creando contenido.

Un saludo y hasta la próxima.

Descarga el archivo del ejemplo

Por favor, haz clic en el anuncio y ayúdame a seguir creando contenido. Solo te lleva un segundo 😉



2 Comentarios

  1. Avatar

    Hola Antonio,

    El código estaba bien, lo que era erróneo era el comentario porque realmente solo dejamos introducir letras, que es de lo que va el post.

    Ya está corregido. Muchas gracias por el aporte.

    Un saludo.

    Responder
  2. Avatar

    En la primera función hay un pequeño error, el KeyAscii=0 tiene que estar detras del if, no detras del else, pues de esta manera hace lo contrario de lo que se pretende, permite todos los caracteres menos los numeros.

    Quedaria asi:

    Private Sub Nombre_KeyPress(KeyAscii As Integer)

    'Solo dejamos introducir números

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

    End Sub

    Responder

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.

Últimas publicaciones

Categorías

febrero 2023
L M X J V S D
 12345
6789101112
13141516171819
20212223242526
2728  

Debates en el foro

Contacto