¿Se puede mostrar formulario dividido en formulario de navegación en access?

Los miembros de esta comunidad. Les comento que tengo una base de datos en access, la cual estoy trabajando para poder llevar el control de las vacaciones de los colaboradores de mi empresa, por lo que en access tengo tres tablas, 1 con la matriz de vacaciones, es decir, los días que corresponden de acuerdo a la antigüedad de cada colaborador, 1 tabla en la que se registra cada una de las solicitudes por cada colaborador y otra tabla en la que se registra el total de días que cada colaborador ha solicitado, y por medio de macros se calculan los días que les restan. Esto es de forma general la manera en la que funciona la base, y hasta el momento esto lo hago de forma "Manual", por lo que he creado un formulario dividido para el registro de las solicitudes de cada colaborador, pero mi idea es que se puedan sumar automáticamente por cada periodo los días que cada colaborador ha solicitado, para que dicha cantidad, pueda registrarse en el formulario que corresponde al total de los días que le restan por usar, sin embargo, al trasladar este formulario dividido dentro de un formulario de navegación, no me muestra los datos correspondientes a la tabla, ¿hay alguna forma en que se puedan visualizar?

¿O existe alguna otra opción para que en automático la suma de dichos días me aparezca en la tabla del total de días usados?

Agradezco de antemano su apoyo a todos los que conforman esta sociedad.

1 Respuesta

Respuesta
2

No dices como calculas la antiguedad de los empleados, si por años completos o por años meses y días. Tampoco si las vacaciones van por grupo de años, así que si tengo una tabla Empleados con el nombre y la fecha en que empezaron a trabajar

Y otra tabla en que la pone los día que les corresponden en función de los años trabajados.

Con la tabla Empleados y otra que llamo Vacaciones, relacionada con la anterior por el Idempleado hago un formulario con subformulario

La antiguedad de ese empleado en años me la actualiza cada vez que abra el formulario. Es decir que si hoy mismo lo abres te pondría 19 años. Si no volvieras a abrirlo hasta el año que viene, entonces te pondría 20. Y un cuadro de texto donde muestra los días que le corresponden en función de esa antiguedad.

En el subformulario anotas la fecha en la que te pide las vacaciones, los días que te pide y al pulsar Enter, en Remanente te aparece los días que les quedan por disfrutar.

Si me voy a Carlos

La ventaja del código es que cuando cambie el año, te hace los cálculos sobre este nuevo año.

El código del evento Al activar el registro, para que te calcule su antiguedad y los días que le corresponden a cada empleado es

Private Sub Form_Current()
Antiguedad = Fix((Date - FechaInicio) / 365.24)
Dias = DLookup("dias", "antiguedad", "antiguedad=" & Me.Antiguedad & "")
End Sub

Y el código del evento Después de actualizar del cuadro de texto DiasSolicitados del subformulario es

Private Sub DiasSolicitados_AfterUpdate()
DoCmd.RunCommand acCmdSaveRecord
Remanente = Me.Parent!Dias - DSum("diassolicitados", "vacaciones", "idempleado=" & Me.IdEmpleado & " and year(date())=year([fechasolicitud])")
End Sub

Es decir, le resta a los días que le corresponden(del formulario) la suma acumulada de los días que ha solicitado.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas