De esta forma se hace el proceso sobre la misma información para no presentar imágenes que no van al caso y lo mismo con teoría sin fundamento. Aparentemente la pregunta parece fácil, pero requiere de funciones.
Para hacer la consulta se hace por agrupación, pero se requieren de 2 funciones:
TiempoDuracion()
Calcula el tiempo por cada día. Utilizo la función Suma() para sumar los diferentes tiempos. El resultado de esta suma se convierte en horas y minutos con la función.
Tiempoencadena()
DISEÑO DE LA CONSULTA
Observe como selecciono el año y el mes con base en el campo FechaTrabajo, ya usted puede cambiar los parámetros a su gusto. La parte clave está en la Expresión:
TiempoTotal: tiempoencadena(Suma(TiempoDuracion([horainicio];[horafinaliza])))
Y es donde utilizo las 2 funciones.
RESULTADO DE LA CONSULTA
FUNCIONES
Public Function TiempoDuracion(dtmFrom As Date, dtmTo As Date) As Date
' Devuelve la duración entre dos valores de fecha/hora
' como un valor de fecha/hora
' Si los valores de tiempo que se pasan a la función
' si tiempo 'desde' es posterior al tiempo 'hasta', se supone que
' esto se relaciona con un 'turno' que abarca la medianoche y un día
' por lo tanto, se resta del tiempo 'desde'
' restar un día de la hora 'desde' si es posterior a la hora 'hasta'
If dtmTo < dtmFrom Then
If Int(dtmFrom) + Int(dtmTo) = 0 Then
dtmFrom = dtmFrom - 1
End If
End If
' obtener la duración como tipo de datos de fecha y hora
TiempoDuracion = dtmTo - dtmFrom
End Function
Public Function tiempoencadena(Interval As Double) As String
' Función convertir en cadena el total del tiempo
tiempoencadena = DateDiff("h", 0, Interval) & _
Format$(Interval, ":nn")
End Function
Debe copiar las funciones en un módulo. A su correo le envié el ejemplo, no obstante, pueda que alguien más presente otra alternativa.