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.
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.
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.
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:
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!
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.
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?
Hola, muy buena explicación, concisa, clara y directamente al tema. Gracias me sirvió de mucho. Un abrazo 🙂
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
Gracias por la explicación. Estaba desesperada que no entendia otras explicaciones .💗
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
MUCHAS GRACIAS POR EL CONCEPTO COMPARTIDO QUE TENGAS MUCHA SUERTE.
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
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
Acerca del autor