Insertar dato en el siguiente registro en tabla

Tengo una tabla con los siguientes campos id_tabla1, nombre, fecha inicio, fecha_final, y por ultimo fecha_final_anterior, lo que quería saber como en un formulario podría al ingresar en el control fecha_inicio automáticamente queda reflejado en el siguiente registro en el control fecha_inicio_nuevo, esto lo quiero hacer para hacer una resta en una consulta de fecha inicio de la fecha_final_anterior, o si hay alguna forma distinta para hacerlo.

1 respuesta

Respuesta
1
Para empezar no mencionas que dispongas de un campo llamado fecha_inicio_nuevo, por lo que no podría indicarte EXACTAMENTE como proceder.
Ahora bien, si el campo id_tabla1 es un autonumérico, la cosa puede ser bastante fácil.
En realidad se trata de utilizar la propiedad Valor predeterminado del control que quieres que muestre ese valor. Para ello puedes combinar la utilización de funciones agregadas de dominio: concretamente DBúsq y DMáx.
Imaginemos que lo hacemos por pasos.
1. Recuperar el id_tabla1 máximo:
DMáx("id_tabla1", "tabla")
2. recuperar el valor de la fecha que contiene ese valor máximo.
DBúsq("Fecha", "tabla", "id_tabla1 = " & DMáx("id_tabla1", "tabla"))
3. ahora ya podemos predeterminar la fecha:
="#" & DBúsq("Fecha", "tabla", "id_tabla1 = " & DMáx("id_tabla1", "tabla")) & "#"
Dado que se trata de una fecha, debemos ponerle los 'cuadradillos' antes y después. Adicionalmente es posible que debieras formatearla al formato americano para que Access la entienda:
="#" & Formato(DBúsq("Fecha", "tabla", "id_tabla1 = " & DMáx("id_tabla1", "tabla")); "mm/dd/aaaa") & "#"
Ahora solo te queda adaptarlo a tus controles y necesidades.
Por cierto, no entendí el objetivo... así que, a lo mejor, lo que te digo no tiene nada que ver con lo que buscas...
En realidad el objetivo es control del tiempo transcurrido entre realizar una tarea y otra: Tengo una empresa con trabajadores, y lo que quiero saber cuantos días está el trabajador parado entre una tarea y otra, es decir si un trabajodor ha recibido la orden de realizar una tarea el 12-09-2009, ha terminado la tarea el 13-09-2009, recibe otra orden de realizar otra tarea el 14-09-2009, el resultado es un día sin trabajar y así a lo largo del mes sabré los días. Esto me hace plantear crear otra tabla solo para trabajadores y relacionarla con la tabla días.
Un saludo.
Vaya por dios. Después de escribirte la "charla"... va y pierdo la conexión... (el tren no es el mejor sitio)
Resumidamente. Tu estimación de que ha estado un día parado (según tu ejemplo) dependerá de las horas en que se ejecuta cada acción. Según como le tendrás que pagar horas extras...
Para controlar eso necesitaras controlar las horas de inicio y final así como el horario de los trabajadores (caso de turnos porque entonces se complica el tema)
Eso si, me parece que va a ser algo complicado y laborioso por lo que te recomiendo que estudies detenidamente si el resultado va a compensar el esfuerzo.
Si tienes muchos trabajadores y/o sospechas que hay demasiados tiempos muertos, entonces adelante.
Aunque si decides tirar p'adelante no veo yo muy claro como enfocarlo con los datos que has proporcionado.
Muchas gracias por contestar, y perdona por ser tan pesado, lo que me resulta difícil de hacer es como extraer mediante consulta o código el tiempo de cada trabajador por separado y calcular la diferencia entre ls dos fechas. Intentaré con lo que me has dicho.
Un saludo

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas