Máscara de entrada que se actualize con el año

Tengo una base de datos con un campo long en el que utilizo una máscara de entrada"22"/0000/00;0;0_ que es el código con el que registramos la entrada de ordenes de trabajo.

¿Cómo puedo conseguir que se reinicie todo al cambiar de año?

1 Respuesta

Respuesta
1

La verdad que no le veo objeto a la máscara de entrada. Por ejemplo, supongamos que en el campo borras eso de la máscara de entrada y haces un formulario como el de la imagen

Y en el evento Al recibir el enfoque del cuadro de texto Producto le digo

Producto = "22" & "/" & Year(Date) & "/" & "00"

El resultado es que cuando el cursor llegue al control te quedará

la máscara es porque nos piden que sea así el código numérico que vamos incrementando cada vez que recibimos una nueva avería.

la forma en la que quedaría sería:

22/0001/17

22/0002/17 y seguiríamos aumentando ese valor

lo suyo es que fuera automático y cambiase al cambiar el año empezando de nuevo en 1 ¿es posible?

Muchísimas gracias por tu tiempo

Todo depende de como tengas construida la base. Por ejemplo, supongamos que tienes un formulario Entradas, donde anotas la fecha en que entra un documento

Como puedes ver, cuando cambias la fecha de entrada, el contador Nº OT empieza otra vez desde 1

El código está en el evento Después de actualizar del cuadro de texto Fecha

El cuadro de texto se llama NOT aunque en la etiqueta aparezca Nº OT

¡Gracias!  de verdad, es un problema simple pero que me estaba dando dolor de cabeza. Voy a probarlo

Éste es el formulario y he metido el código en el campo nº ot pero no consigo que funcione, perdona pero no se nada de código, lo hago todo con macros ¿Me puedes guiar por favor?

Muchísimas gracias

la fecha la introducimos manualmente porque es la fecha de la orden y no la actual, aunque a veces coincidan

Ante todo Feliz año 2018. Ahora me doy cuenta del mi error, de que la fecha va al final. En el código que te puse cambia por

Me.NOT = "22" & "/" & Format(DCount("*", "entradas", "year([fecha])=year(date())"), "0000") & "/" & Format([Fecha], "yy")

En tu caso, donde yo pongo Fecha tu tienes que poner el nombre del cuadro de texto F_OT y donde yo pongo Entradas tienes que poner el nombre de la tabla o consulta origen del formulario.

Honestamente, no sé como se haría con una macro. Nunca las he usado, no dejan de ser un trozo de código de VB al que le han puesto un nombre en "cristiano". Por ejemplo, si tu haces una Imprimir informe, en realidad le estás diciendo

Docmd. Openreport"nombre informe", acpreview

Te quedará así

Feliz año nuevo para ti también. Ante todo perdón por ser tan inútil a la hora de ejecutar tus recomendaciones, como ya te dije no soy bueno con códigos ya que nunca los he estudiado, yo hago las bases de datos con martillo pilón. Después de pedirte mil disculpas, he introducido el código pero me aparece el error que te mando. ¿Qué hago mal?. He quitado la máscara de entrada.

 No sabes lo que agradezco el tiempo y la ayuda que me estas prestando.

Eso sucede cuando haces referencia a un control, cuadro de texto, combinado o lo que sea, que realmente no se llama así. Los nombres de los controles son los que aparecen en sus propiedades-Otras-Nombre y es el que se usa en el código de VB.

Vamos a hacer una cosa. Si quieres, repito, si quieres, mándame la tabla, sólo la tabla, VACIA(bueno, si le pones dos o tres registros inventados mejor) a [email protected] y te mando el formulario. Si lo haces, en el asunto del mensaje pon tu alias Francisco, ya que si no sé quien me escribe no los abro.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas