Cambia la apariencia de los datos con una máscara de entrada

PorLucía Montero Rodríguez

Cambia la apariencia de los datos con una máscara de entrada

Si queremos definir correctamente los campos de nuestras tablas y mantener la eficiencia de nuestra base de datos, resulta imprescindible ahondar en las propiedades de los campos; por eso, dada la importancia de la que ahora nos ocupa, vamos a dedicarle un artículo en exclusiva.

¿Para qué sirve una máscara de entrada?

Esta propiedad permite mostrar el contenido de los campos de forma personalizada (similar a como lo haría la propiedad Formato), controlar la introducción del dato concreto y todo eso sin tener que reservar más espacio en disco.

Su potencia se refleja en campos de tipo texto pero que deben contener un número exacto de cifras y/o letras, como por ejemplo: teléfono, carnet, código postal…

La máscara de entrada se crea a partir de una serie de caracteres especiales, que se emplearán según convengan en cada situación. Son los siguientes:

Carácter Descripción
0 Dígito (0 a 9, entrada obligatoria, signos más y menos no permitidos)
9 Dígito o espacio (entrada no obligatoria, signos más y menos no permitidos)
# Dígito o espacio (entrada no obligatoria, los espacios se muestran en blanco en el modo Edición, pero se eliminan cuando se guardan los datos: signos más y menos permitidos)
L Letra (A a Z, entrada obligatoria)
? Letra (A a Z, entrada opcional)
A Letra o dígito (entrada obligatoria)
a Letra o dígito (entrada opcional)
& Cualquier carácter o un espacio (entrada obligatoria)
C Cualquier carácter o un espacio (entrada opcional)
. , : ; – / Marcador de posición decimal y separadores de miles, hora y fecha
< Hace que todos los caracteres se conviertan a minúsculas
> Hace que todos los caracteres se conviertan a mayúsculas
! Hace que la máscara e entrada se muestre de derecha a izquierda, en lugar de izquierda a derecha.
\ Hace que el carácter siguiente se muestre como un carácter literal (por ejemplo, \Z se muestra sólo como Z)

Si te fijas, algunos caracteres están en mayúsculas y otros en minúsculas; ésto es importante, ya que deberás emplear el exacto para que la máscara de entrada funcione sin problemas.

Ejemplo para un Código Postal

Comenzamos por algo sencillo. En la tabla Clientes de la base de datos Librería.mdb encontramos el campo CP, definido como Texto con longitud 5; lo hicimos así para obligar a introducir 5 caracteres y que respetara además, los ceros por la izquierda.

Campo Cóodigo Postal sin máscara de entrada

Como el Código postal está compuesto por cinco dígitos y obligatoriamente, tenemos que introducir esos cinco, necesitamos un carácter de máscara de entrada que represente la entrada obligatoria de número; y si consultamos la lista anterior veremos que es el 0.

Teniendo en cuenta que el tamaño de este campo es 5, en la propiedad Máscara de entrada habrá que escribir 00000, un cero por cada carácter de longitud asociada, de la siguiente forma:

Propiedad máscara de entrada asignada y definida

Si al ir a la vista Hoja de datos, ya existieran CP erróneos anteriores, la máscara NO los modificará, pero sí que obligará a introducir la información de la manera correcta para los nuevos registros. ¡Pruébalo!

Ejemplo para el NIF

Una demostración clásica sobre la misma tabla: el campo NIF, definido como Texto de tamaño 9; es decir, lo justo para los 8 dígitos y la letra final. Sin embargo queremos que, además de esos ocho números y letra obligados, incorpore caracteres de separación para dar una mejor visibilidad, eso sí, sin ocupar espacio en disco.

Comenzamos por la máscara inicial, que será 00000000L; el 0 por cada cifra obligatoria y la L porque el último carácter deber ser una letra también de entrada forzosa. Esta propuesta ya evitará por si sola errores de escritura.

Si queremos, por ejemplo, separar los números con puntos de miles (pero emplea el del teclado alfabético para asegurarte), la modificamos para que sea 00.000.000L. Si cambias a la vista de datos, podrás comprobar fácilmente como los datos se adaptarán a nuestra propuesta.

Campo NIF con máscara de entrada incompleta

También podemos separar la letra de los números con un guión; empleando por ejemplo la siguiente máscara de entrada: 00.000.000-L

Al pasar a otro campo, guardar la  tabla o cambiar de vista, Access modificará ligeramente la máscara añadiendo delante del guión la barra inclinada \; no te preocupes, lo hace para indicar a la aplicación que el carácter que viene detrás (el guión) debe aparecer tal cual.

Vuelve un momentito a la figura anterior. En ella puedes ver que hay letras del NIF que aparecen en mayúsculas, y letras en minúsculas; pues bien, con la máscara de entrada, también podemos hacer que se escriban como se escriban, siempre se muestran en mayúsculas.

El carácter > hace que todos los que se añadan detrás del mismo aparezcan en mayúsculas. En consecuencia, nuestra máscara final quedará definida como 00.000.000->L. El resultado final será el siguiente. Interesante, ¿verdad?

Campo NIF con máscara de entrada completa

Acerca del autor

Lucía Montero Rodríguez administrator

13 comments so far

Jorge Cervantes ArriolaPublicado en4:12 pm - Sep 22, 2017

Hola, muy buena explicación, concisa, clara y directamente al tema. Gracias me sirvió de mucho. Un abrazo 🙂

RafaelPublicado en7:31 pm - Abr 28, 2018

Buenas tardes necesito trabajar con una tabla en la que los 4 primeros dígitos son los mismos y solo varían los 5 siguientes ¿Como puedo hacerlo.?
Gracias

freddy barrios bravoPublicado en5:43 pm - Jun 22, 2018

Hola amiga, mi caso necesito crear una mascara donde el primer caracter sea la letra «C» y este fija y solo poder colar los siguentes 4 numeros
ejemplo : C4523

saludos

    Lucía Montero RodríguezPublicado en10:52 am - Jun 27, 2018

    Hola Freddy, en tal caso crea un campo de tipo número entero y asigna como máscara de entrada «C»0000. Después, en la vista tabla de datos, cuando el campo reciba el foco, sólo tendrás que completar el contenido numérico, pero ten en cuenta que la C no aparecerá en pantalla hasta que no pulse el primero de los dígitos.
    Un saludo,

ANTONYPublicado en6:15 pm - Sep 4, 2018

MUCHAS GRACIAS POR EL CONCEPTO COMPARTIDO QUE TENGAS MUCHA SUERTE.

EliasPublicado en2:19 pm - Mar 5, 2021

Buenos días Lucía.
¿Como puedo conseguir que una máscara de entrada esté siempre visible?
Yo la creo pero hasta que no entro en el campo no se hace visible dicha máscara y me gustaría que estubiese visible desde el momento en que abro el formulario.
Gracias

Manuel HidalgoPublicado en6:46 am - Nov 11, 2023

Hola Lucia, buenas noches. Quería pedir de tu ayuda con un problema que tengo

Tengo una tabla «Proveedores» y una Tabla «Cabecera Facturas de Compra» y en el campo RUT o DNI para algunos países, le agregue una máscara de entrada 00.000.000->A;0;_;;_
La cual me funciona bien, pero en el formulario Cabecera Facturas de Compras cuando ingreso una factura y quiero colocar el RUT del proveedor en el cuadro combinado en el momento de digitar el primer número se despliega la lista de RUT que tengo disponible en la tabla, pero aparece la lista del número menor al mayor, y debería salir la lista del número que digito hacia el mayor. Ejemplo; digito el 7 y se despliega la lista comenzando con el numero 03.256.896-K que es el primer RUT y debería aparecer en la lista desplegable todos los RUT que comiencen con 7#.###.###-#
En el cuadro combinado en el evento «al cambiar» tengo este código
Private Sub Rut_Change()
RUT.Dropdown
End Sub
para que al digitar un número se despliegue la lista de todos los RUT que están en la tabla.
En la hoja de propiedades del cuadro combinado en la columna «Datos» en «Expansión automática está en «NO»
De antemano muchas gracias

Deja un comentario

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