Función de diferencia de fechas laborales en una consulta de Access

DiferFecha_L_a_V: SiInm([Fecha_hora_Inic_Rad]<=[Fecha_hora_final_Rad],Redondear((([Base]![Fecha_hora_final_Rad]-[Base]![Fecha_hora_Inic_Rad])+1)-DifFecha("ww",[Base]![Fecha_hora_Inic_Rad],[Base]![Fecha_hora_final_Rad],1)-DifFecha("ww",[Base]![Fecha_hora_Inic_Rad],[Base]![Fecha_hora_final_Rad],7)),Redondear((([Base]![Fecha_hora_Inic_Rad]-[Base]![Fecha_hora_final_Rad])+1)-DifFecha("ww",[Base]![Fecha_hora_final_Rad],[Base]![Fecha_hora_Inic_Rad],1)-DifFecha("ww",[Base]![Fecha_hora_final_Rad],[Base]![Fecha_hora_Inic_Rad],7)))

donde Base es el nombre de la tabla donde están los campos y Fecha_hora_Inic_Rad] y [Fecha_hora_final_Rad] son los campos de la tabla.

SiInm se usa para condicionar cual es la fecha mas alta y mas baja, para que el resultado no de negativo y la de redondear por si la fecha tiene horas que nos de un entero.

(([Base]![Fecha_hora_final_Rad]-[Base]![Fecha_hora_Inic_Rad])+1) nos resta las fechas sin restar la ultima lo cual incluye sábados y domingos, el primer DifFecha nos cuenta la cant de Domingos y el segundo DifFecha cuenta la cant de Sábados que hay entre fechas. Estos dos datos se restan al total de la primera diferencia.

Añade tu respuesta

Haz clic para o