Access - Calcular horas trabajadas si salen al día siguiente

 
Vista:
sin imagen de perfil

Calcular horas trabajadas si salen al día siguiente

Publicado por Ronnie (3 intervenciones) el 18/04/2018 21:10:39
Estimados tengo dos tablas en access, una registra la fecha y entrada al trabajo, en la otra se registra la fecha y hora de salida
el problema en que algunas personas entran a trabajar el dia viernes en la tarde y salen en la madrugada del sabado como lo puedo hacer para calular las horas trabajadas y que ese dia se cuente como uno solo ya que el dia sabado ese mismo trabajador entrara en la tarde y saldra en la madrugada del domingo
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Norberto
Val: 1.094
Oro
Ha mantenido su posición en Access (en relación al último mes)
Gráfica de Access

Calcular horas trabajadas si salen al día siguiente

Publicado por Norberto (753 intervenciones) el 19/04/2018 09:13:46
Hola.

Si restas al día y hora de entrada el día y hora de salida, obtendrás el resultado en fración de día. Múltiplicalo por 24 y tendrás las horas trabajadas. También puedes no multiplicarlo y darle el formato HH:MM.

Otra opción es, si la hora de salida es menor que la hora de entrada, sumarle 1 a la diferencia de horas tal que así:

HorasTrabajadas: HoraSalida - HoraEntrada - (HoraSalida < HoraEntrada)*

Ejemplos:

HoraEntrada = 06:00 y HoraSalida = 14:00
14:00 - 06:00 - (14:00 < 06:00)
14:00 - 06:00 - (0)
08:00

HoraEntrada = 22:00 y HoraSalida = 06:00
06:00 - 22:00 - (06:00 < 22:00)
06:00 - 22:00 - (-1)
06:00 - 22:00 + 24:00
08:00

Un saludo,

Norberto.

______________________________
* La expresión puede resultar extraña. La explico:

HoraSalida < HoraEntrada devuelve -1 si es cierto y 0 si es falso. Por tanto, si la hora de salida es menor que la de entrada (entró ayer y sale hoy), devolverá -1. Si ese valor lo restamos de la diferencia de horas, es como si sumáramos 1 día o 24 horas. Si, por el contrario entran y salen el mismo día, la expresión será 0 y no alterará el resultado.

Se debe de introducir entre paréntesis para alterar el orden de evaluación de la expresión. Si no lo hacemos, Access evaluará primero los operadores matemáticos (HoraSalida - HoraEntrada - HoraSalida = - HoraEntrada) y mirará si es menor que HoraEntrada. Como el primero es negativo, siempre será menor y siempre devolverá -1.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Calcular horas trabajadas si salen al día siguiente

Publicado por jose (830 intervenciones) el 19/04/2018 14:11:15
Hola Ronie

otra posibilidad es que uses el el campo como date es decir fecha completa 11/12/2018 15:26:34

y entonces utilizar la funcion datediff de esta forma :

DateDiff("periodo", fecha1, fecha2)
´ Contar dias
dias = DateDiff("d", fechainicial, fechaactual)
´ Contar meses
meses = DateDiff("m", fechainicial, fechaactual)
´ Contar años
anios = DateDiff("yyyy", fechainicial, fechaactual)
´ Contar horas
horas = DateDiff("h", fechainicial, fechaactual)
´ Contar minutos
minutos = DateDiff("m", fechainicial, fechaactual)
´ Contar segundos
segundos = DateDiff("s", fechainicial, fechaactual)
´ Contar SEMANAS
segundos = DateDiff("ww", fechainicial, fechaactual)
Laborables = Laborables - DateDiff("ww", FechaDesde, FechaHasta, vbSaturday)
Laborables = Laborables - DateDiff("ww", FechaDesde, FechaHasta, vbSunday)
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar