Buff, tiene miga la pregunta...
Al final, algo conseguí, a ver si te sirve: https://dl.dropboxusercontent.com/u/59469930/REND%20MINI.accdb
Te explico lo que hice, que está todo en la consulta "Rendibilitat clients v2". Además, eliminé de las tablas los registros vacíos (los que no tenían valor en el campo client), que supongo que los tienes porque importas los datos desde un excel:
1º/ En primer lugar, le quité el formato hora larga al campo en el que sumas las horas, lo renombré como aux y lo desplacé hacia la derecha (está en penúltimo lugar).
2º/ Creo un nuevo campo calculado (totalCuota) para mostrar la suma de las horas con el formato que deseas, con la salvedad de que ahora es un dato de tipo texto, y no de fecha/hora.
Para ello, trabajo sobre el campo "aux", sabiendo que para access, las fechas y horas son un número de tipo Doble, y que la parte entera representa los días, y la parte decimal las horas, minutos y segundos.
Teniendo esto en cuenta, si el campo "aux" empieza por 0, es que las horas no llegan a 24, y si empiezan por uno o más, la suma excede de 24 horas. En ese caso, hay que sacar los días, con la función Int(), que devuelve la parte entera de un número, y multiplicarlo por 24 horas. Por ejemplo, para el caso del cliente 270 nos da que acumuló 14 días, a 24 horas cada día, son 336 horas.
Esto lo hace esta parte del campo calculado: Int([aux])*24
A continuación, hay que calcular las horas, minutos y segundos que se corresponde la parte decimal de "aux", usando la función ParcFecha():
para las horas: ParcFecha("h";Int([aux])-[aux])
Para los minutos: ParcFecha("n";Int([aux])-[aux])
para los segundos: ParcFecha("s";Int([aux])-[aux])
Para el cliente 270 te da 7 horas, 15 min y 0 seg, que sumado a las 336 horas de los 14 días, da el total de 343:15:00
Ahora sólo queda juntar lso datos para obtener el formato deseado:
Format(Int([aux])*24+ParcFecha("h";Int([aux])-[aux]) & ":" & ParcFecha("n";Int([aux])-[aux]) & ":" & ParcFecha("s";Int([aux])-[aux]);"hh:nn:ss")
3º/ Para crear el campo que te calcule las horas entre el 01/01/2015 y el día actual, usas la función DifFecha(), así:
HorasHastaHoy: DifFecha("h";#01/01/2015#;Fecha())
Para crear un campo llamado HorasHastaHoy que muestre esa diferencia.
Si quieres saber las horas hasta la hora del día actual, para precisar más los cálculos, te hice este otro campo:
HorasHastaAhora: DifFecha("h";#01/01/2015#;Ahora())
Como verás, la diferencia está en el tercer parámetro, pues en el primer caso, utilizo la función Fecha() y en el segundo la función Ahora(), que además de la fecha devuelve la hora actual.
4º/ El siguiente campo calculado, no tengo muy claro qué es lo que pides, pero creo entender que quieres calcular un "precio/hora", dividiendo el TOTAL FRA entre el número de horas.
Para hacer esta división, hay que volver a trabajar con el campo "aux" y transformarlo todo a horas. Eso lo consigues con el campo calculado horasCuota:
Int([aux])*24+ParcFecha("h";Int([aux])-[aux])+ParcFecha("n";Int([aux])-[aux])/60+ParcFecha("s";Int([aux])-[aux])/3600
Que como verás es similar al cálculo del punto dos, pero ahora los minutos los transformo en horas dividiendo entre 60 y los segundos entre 3600, y sumando todo
Luego divides los dos campos, para obtener el campo PrecioHora. Además, le paso la función CMoneda() para que convierta en resultado en importe monetario:
PrecioHora: CMoneda([Total FRA]/[horasCuota])
Como comentario final, decirte que si quieres eliminar (u ocultar) de la consulta los campos "aux" y "horasCuota", has de reemplazar en las fórmulas anteriores aux por Suma([t cuota]) y [horasCuota] por toda la fórmula para calcularlo. Además, fíjate que los campos calculados están agrupados por "Expresión"
Un saludo, y espero que sea lo que pedías.