** NORMAS DEL FORO **
Inicio del foro Inicio del foro > Access y VBA > Access y VBA
  Mensajes nuevos Mensajes nuevos RSS - Calculo horas
  Preguntas frecuentes Preguntas frecuentes  Buscar en el foro   Eventos   Registro Registro  Iniciar sesion Iniciar sesion

Tema cerradoCalculo horas

 Responder Responder
Autor
Mensaje
koldo Ver desplegable
Habitual
Habitual
Avatar

Unido: 12/Febrero/2008
Estado: Sin conexión
Puntos: 53
Enlace directo a este mensaje Tema: Calculo horas
    Enviado: 31/Enero/2018 a las 14:51
Hola a todos, a ver si me podéis ayudar estoy creando una nueva bbdd en la que se tienen que calcular las horas entre dos campos de fecha-hora, hasta aquí no hay problema el problema viene por que se tienen que calcular y sumar horas en base a unos rangos de horas establecidos en días normales y días festivos, es decir
Normales (Cjheck)
Rango1= de 19:00 a 22:00  (2*1h)
Rango2= de 22: a 7:00  (2* 2h)
Festivos (Check)
Rango1= 7:00 a 22:00  
Rango2= 22:00 a 7:00

inicio 19/01/2018 16:00 
fin: 20/01/2018 02:00

la diferencia son 10h  a esas 10 horas habría que añadir 3h del rango1 y 4h del rango2+

Lo que he hecho he calculado 
Diff: DifFecha("n";[HoraInicio];[HoraFin])/60 y luego con la funcion Rango1:SiInm([Normales]=Verdadero;SiInm([Inicio]>#19:00:00#; SiInm([fin]<#22:00:00#;[Diff];0))
no me lo calcula por que me debe faltar algo en la parte de > #19:00:00# >#22:00:00#, si el inicio y fin tienen formato hora si me lo calcula

Se puede establecer las partes de las horas tanto de indicio como de fin en que rango están? en vez de tener que establecerlo con la función SiInm por cada una de las posibilidades

Gracias
Arriba
ceac Ver desplegable
Colaborador
Colaborador
Avatar

Unido: 05/Octubre/2007
Localización: Colombia
Estado: Sin conexión
Puntos: 1467
Enlace directo a este mensaje Enviado: 31/Enero/2018 a las 17:33
Utiliza Fecha Inicio y Fecha Final, para saber el rango, en un consulta solo digitas en el criterio:

Between #19:00:00# and #22:00:00#

Saludos!



Editado por ceac - 31/Enero/2018 a las 17:38
«Todos morimos, pero sólo unos pocos viven de verdad» Mel Gibson - Corazón Valiente

Arriba
koldo Ver desplegable
Habitual
Habitual
Avatar

Unido: 12/Febrero/2008
Estado: Sin conexión
Puntos: 53
Enlace directo a este mensaje Enviado: 03/Febrero/2018 a las 23:30
Hola
Al final he tenido que parametrizar las horas en una consulta
FormatDateTime([Fecha] & " " & #15:15:0#) AS H15, FormatDateTime([Fecha] & " " & #19:0:0#) AS H19, FormatDateTime([Fecha] & " " & #22:0:0#) AS H22

y luego con DateDiff comparar con las horas parametrizadas todas las posibilidades

DateDiff("n",[HoraInicio],[HoraFin])/60 AS DIF, IIf([HoraInicio]<[H19],IIf([HoraFin]<[H19],DateDiff("n",[HoraInicio],[HoraFin])/60,DateDiff("n",[HoraInicio],[H19])/60),0) AS [15-19]...

igual había una forma mas sencilla pero no la he encontrado

saludos
Arriba
 Responder Responder
  Compartir tema   

Ir al foro Permisos de foro Ver desplegable