Se incrementando y se resetee a 0 cambie la semana

Necesito realizar un campo "OrdendeLanzamiento" un numero que se valla incrementando y se resetee a 0 cuando cambie la semana a la vez ese texbox contiene concatenado a ese numero que se incremente el numero de semana, mes y año. Tal que cada vez que se lanzara un programa para una pieza quedar tal que así: 2-15-5-11 y el siguiente seria: 3-15-5-11. Si cambiara la semana se restearía a 0. 1-16-5-11.
Este campo se guardara en la tabla llamada Programa. Y tiene un campo que se autoincrementa y des ese campo cogía el primer valor numerio que hasta ahora funcionaba con dMax, pero he pensado que si restearía a 0 seguiría coguiendo el máximo valor y no funcionaria. Entonces habría que coger el ultimo registro.
Lo que quisiera es si me podrías ayudar en las 2 situaciones, a restear el numero a 0 cuando cambie el numero de la semana, y a cojre el ultimo registroe del campo que se autoincrementa, ya que puede pasar de 98,99,100 a 0, y quiero coger el 0 el ultimo registro.

1 respuesta

Respuesta
-1
Disculpa la tardanza en contestar. Entiendo que con lo que has hecho ese valor no queda registrado en ninguna tabla, sólo es una forma de numerar un campo en un informe. Pero también interpreto que tu lo que querías era asignarle un valor a un campo que guarde la numeración. ¿Es así?. Si ese el caso lo que hace falta es traducir esa misma fórmula que has escrito a código de procedimiento y asociarla al evento por ejemplo "Al activar registro", añadiendo la condición de que si es un registro que ya tiene un código no vuelva a hacer el cálculo. Es decir sólo para nuevos registros.
Veo que tienes buenas nociones de formulación, así que sólo falta que me digas si sabes transformar esto en código VB. Esto resolvería el bache que aún te queda por completar, que me pones en tu segundo comentario.
Hola, quería informarte que creo que ya lo he solucionado, en el subinforme en el texbox de el numero de orden en la propiedad valor predeterminado he puesto este conjunto de funciones como control.
=SiInm(Formato(Ahora();"aa")<10;"0" & Formato(Ahora();"aa");Formato(Ahora();"aa")) & "-" & SiInm(Mes(Fecha())<10;"0" & Mes(Fecha());Mes(Fecha())) & "-" & SiInm(Formato(Ahora();"ee")<10;"0" & Formato(Ahora();"ee");Formato(Ahora();"ee")) & "-" & SiInm(SiInm(DÚltimo("Semana";"Programa")<>Formato(Ahora();"ee");DMáx("OrdenPrograma";"Programa")-DMáx("OrdenPrograma";"Programa")+1;DMáx("OrdenPrograma";"Programa")+1)<10;"0" & SiInm(DÚltimo("Semana";"Programa")<>Formato(Ahora();"ee");DMáx("OrdenPrograma";"Programa")-DMáx("OrdenPrograma";"Programa")+1;DMáx("OrdenPrograma";"Programa")+1);SiInm(DÚltimo("Semana";"Programa")<>Formato(Ahora();"ee");DMáx("OrdenPrograma";"Programa")-DMáx("OrdenPrograma";"Programa")+1;DMáx("OrdenPrograma";"Programa")+1))
Es un poco extensa pero me funciona, quedando el formato ordenado de fecha anterior a fecha más actual.
numOrden
11-04-15-07.
Controlo que si es menor de 10 se ponga un 0 delante para que m lo ordene bien.
Me queda un pequeño detalle, que al activar un nuevo registro ne el subformulario, el numOrden del el siguiente posible registro que se encuentra vacío para añadir no se actualiza, solo se actualiza si cambio la selección de un combobox que esta vinculado con el subinforme. Gracias de antemano
Pues en realidad en acess ando algo novato, solo se buscarme la vida un poco con lo que hay. Si me pudieras adelantar como transformarlo te lo agradecería.
Disculpa la tardanza. Dame un par de días para desentrañar lo que has formulado y convertirlo en código. `Probablemente con alguna variación.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas