Лучше всего работать в считанные секунды. Используйте функцию Mid(), чтобы разбить строку и вычислить количество секунд, суммировать время и затем форматировать результат, как вам нравится. Если вы напишете его как один запрос, вам нужно будет использовать одно и то же длинное выражение в трех разных местах, поэтому для повышения удобочитаемости я сделаю это как два запроса. Первый:
SELECT eno, sum(val(mid(time,1,2))*3600+val(mid(time,3,2))*60+val(mid(time,5,2))) AS secs
FROM table
GROUP BY eno;
Сохраните этот запрос при доступе как «enosums», например. Второй запрос:
SELECT eno, format(secs/3600, "00:") & format((secs/60 Mod 60), "00:") & format(secs Mod 60, "00")
FROM enosums;
Поэтому я предлагаю этот метод является то, что даже если вам удастся преобразовать значения даты и времени (которые вы можете сделать с помощью Mid() функция и оператор конкатенации, чтобы преобразовать «ччммсс» string в формат «hh: mm: ss», а затем применить функцию TimeValue), нет простого способа распечатать это в нужном формате, потому что функция Format() будет увеличиваться до 23:59:59, а затем завернуть обратно в 00:00:00.