Aplicar Función format a un campo de texto calculado (letra dni)

Quisiera saber de qué manera y dónde debo escribir la función "Format" para que una vez teclado los números del Dni aparezca en el campo del formulario separado por puntos de "miles" y un guión entre la última cifra y la letra.

Representación:

11.111.111-A

Después de leer comentarios sobre la función Format he creado diferentes variantes sin ningún fruto hasta el momento, no sé si porque coloco la instrucción en el evento equivocado (creo que los he probado todos, jajajajaj), o que la instrucción no es válida.

Una de las instrucciones utilizada ha sido la siguiente:

me.txtDni.value=Format(txtdni, "90.000.000\-L").

1 respuesta

Respuesta
2

Y digo yo, ¿no te sería más sencillo usar la propiedad "mascara de entrada" del cuadro de texto?

Un saludo.


Si lo quieres hacer con código, y no en las propiedades del formulario (o tabla), la propiedad es InputMask:

https://docs.microsoft.com/es-es/office/vba/api/access.textbox.inputmask

Muchas gracias Sveinbjorjn El Rojo por contestar.

Decirte que si utilizo la máscara de entrada en el formulario de entrada de datos (Nros DNI) el campo bloquea el formulario. La máscara me sirve si lo que trato de hacer es simplemente "mostrar" el nif. Eso ocurre en otros formularios en donde se muestra el NIF.

He tenido el atrevimiento de subir un archivo reducido de la BD a la nube por si decidieras echarle un vistazo. La dirección es la siguiente:

https://drive.google.com/file/d/12iOpyuoxCQ78cnUynS-TJI0seIzgbKwP/view?usp=sharing 7

Muchas gracias

He subido a la nube un archivo que da error porque la máscara que había puesto era 90.000.000\->L;0;_.

Ahora subo la que creo no genera error. Disculpa

https://drive.google.com/open?id=1LCO-eaPh8-PiC22juBDypdJjuO1Mxvzv 

El problema no es la máscara, sino todos los códigos que has puesto en los distintos eventos del cuadro NIF. Cuando usas una máscara de entrada ya estás limitando los caracteres que puedes introducir en cada posición (números donde defines números, letras donde defines letras...), por lo que controlar eso en un evento con los códigos de teclas pulsadas es totalmente innecesario (además de que tal como lo tienes no te dejará escribir la letra del DNI...). Al código que tienes en el evento "Al cambiar", le pasa un poco lo mismo, con la máscara ya defines la longitud que tendrá el valor que introduces, por lo que controlarlo así, tampoco es necesario (además de que tal como está siempre se va al final de la máscara lo que hace incomodísimo escribir un DNI)

Te devuelvo el archivo con los dos códigos comentados, y sin ningún otro cambio, para que veas que la máscara funciona correctamente, aunque te obliga a meter manualmente una letra (luego tu código se encarga de corregirla si fuese necesario): http://www.filebig.net/files/q6TqSxwe6m

Muchas gracias Sveinbjorjn El Rojo. Decirte que aunque no he probado de manera profusa la instrucción que has implementado todo parece indicar que funciona correctamente. 

Solamente me resta darte las gracias.

Un saludo

No hay de qué, pero no añadí nada a tu BD, solo le quité los códigos de los dos eventos que te mencionaba... XD

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas