Accessの 日付/時刻型 は日付と時刻を表すもので、時間を表すものではありません。
時刻と時間は別の概念というのは理解してますよね。(時刻は時間軸上の位置、時間は長さをあらわすものです。)
Accessには時間型というのはありませんので、テーブルに格納するときは分単位とか秒単位の数値に変換して格納することになります。書式【hh\時nn\分】としているとこうことは分単位で格納すればいいでしょう。
例えば、開始時刻 終了時刻 というのがあってそこから時間を計算する場合は、Datediff("n",[開始時刻],[終了時刻]) という式で分単位の時間に変換できます。これを集計することになります。
分単位の数値を hh時nn分という書式で表示するには、
[時間] \ 60 & "時" & [時間] Mod 60 & "分"
というような式で変換します。
Accessで時間を扱う場合の一例を提示しておきます。
(一つの例ですので他の方法もあります。)
テーブルに 開始時刻, 終了時刻 という日付/時刻型のフィールドがあるとします。
このテーブルからクエリを作成します。テーブル名は Tbl1 と仮定してます。
sql
1SELECT Tbl1.*, DateDiff("n",[開始時刻],[終了時刻]) As 時間 From Tbl1;
クエリ名は Qry1 と仮定します。
このクエリをフォームのレコードソースとします。このフォームで
開始時間:8:00
終了時間:8:17
と入力すると時間には、17 と分単位の数値が表示されます。
開始時間:8:00
終了時間:10:17
だと、137 と表示されます。137分という意味です。
これを、2時間17分と表示させたい場合は、テキストボックスを配置して、コントロールソースを下記のように設定します。
=[時間] \ 60 & "時間" & Format([時間] Mod 60, "00") & "分"
ここまでVBAは必要ありません。
この時間を集計クエリで集計したい場合もあると思います。その場合も時間を集計します。
sql
1SELECT
2 Sum([時間]) AS 時間計,
3 [時間計]\60 & "時間" & Format([時間計] Mod 60,"00") & "分" AS 時間計hn
4FROM Qry1;
上記のクエリは全合計をだすように単純化してますが、必要に応じてグループ化してください。
時間計 には分単位の数値、時間計hn には h時間nn分という表示になります。
この式だと例えば、35時間17分 というような24時間以上の表示も可能です。
日付/時刻型ではこの表示は無理です。