回答編集履歴

4

コード修正

2021/04/27 01:55

投稿

hatena19
hatena19

スコア34084

test CHANGED
@@ -80,7 +80,13 @@
80
80
 
81
81
  ```sql
82
82
 
83
+ SELECT
84
+
83
- Select Sum([時間]) As 時間計 From Qry1;
85
+ Sum([時間]) AS 時間計,
86
+
87
+ [時間計]\60 & "時間" & Format([時間計] Mod 60,"00") & "分" AS 時間計hn
88
+
89
+ FROM Qry1;
84
90
 
85
91
  ```
86
92
 
@@ -88,18 +94,10 @@
88
94
 
89
95
 
90
96
 
91
- 上記も分単位のですので、hh時間nn分表示にするには、上記と同様に式を使います。
97
+ 時間計 には分単位の数値、時間計hn には h時間nn分という表示になります。
92
-
93
- 集計クエリを元にしたフォームやレポート上のテキストボックスのコントロールソースを下記のように設定します。
94
98
 
95
99
 
96
100
 
97
- ```
98
-
99
- =[時間計] \ 60 & "時間" & Format([時間計] Mod 60, "00") & "分"
100
-
101
- ```
102
-
103
- この式だと例えば、35時間17分 というよう24時間以上の表示も可能です。
101
+ この式だと例えば、35時間17分 というよう24時間以上の表示も可能です。
104
102
 
105
103
  日付/時刻型ではこの表示は無理です。

3

誤字修正

2021/04/27 01:55

投稿

hatena19
hatena19

スコア34084

test CHANGED
@@ -40,7 +40,7 @@
40
40
 
41
41
  ```
42
42
 
43
- クエリ名は Qry1 仮定します。
43
+ クエリ名は Qry1 仮定します。
44
44
 
45
45
  このクエリをフォームのレコードソースとします。このフォームで
46
46
 

2

説明追記

2021/04/27 01:45

投稿

hatena19
hatena19

スコア34084

test CHANGED
@@ -14,6 +14,92 @@
14
14
 
15
15
  分単位の数値を hh時nn分という書式で表示するには、
16
16
 
17
- `[時間] \ 60 & "" & [時間] Mod 60 & "分"`
17
+ `[時間] \ 60 & "" & [時間] Mod 60 & "分"`
18
18
 
19
19
  というような式で変換します。
20
+
21
+
22
+
23
+ ---
24
+
25
+ Accessで時間を扱う場合の一例を提示しておきます。
26
+
27
+ (一つの例ですので他の方法もあります。)
28
+
29
+
30
+
31
+ テーブルに 開始時刻, 終了時刻 という日付/時刻型のフィールドがあるとします。
32
+
33
+ このテーブルからクエリを作成します。テーブル名は Tbl1 と仮定してます。
34
+
35
+
36
+
37
+ ```sql
38
+
39
+ SELECT Tbl1.*, DateDiff("n",[開始時刻],[終了時刻]) As 時間 From Tbl1;
40
+
41
+ ```
42
+
43
+ クエリ名は Qry1 は仮定します。
44
+
45
+ このクエリをフォームのレコードソースとします。このフォームで
46
+
47
+ 開始時間:8:00
48
+
49
+ 終了時間:8:17
50
+
51
+ と入力すると時間には、17 と分単位の数値が表示されます。
52
+
53
+
54
+
55
+ 開始時間:8:00
56
+
57
+ 終了時間:10:17
58
+
59
+
60
+
61
+ だと、137 と表示されます。137分という意味です。
62
+
63
+ これを、2時間17分と表示させたい場合は、テキストボックスを配置して、コントロールソースを下記のように設定します。
64
+
65
+
66
+
67
+ ```
68
+
69
+ =[時間] \ 60 & "時間" & Format([時間] Mod 60, "00") & "分"
70
+
71
+ ```
72
+
73
+ ここまでVBAは必要ありません。
74
+
75
+
76
+
77
+ この時間を集計クエリで集計したい場合もあると思います。その場合も時間を集計します。
78
+
79
+
80
+
81
+ ```sql
82
+
83
+ Select Sum([時間]) As 時間計 From Qry1;
84
+
85
+ ```
86
+
87
+ 上記のクエリは全合計をだすように単純化してますが、必要に応じてグループ化してください。
88
+
89
+
90
+
91
+ 上記も分単位の合計ですので、hh時間nn分表示にするには、上記と同様に式を使います。
92
+
93
+ 集計クエリを元にしたフォームやレポート上のテキストボックスのコントロールソースを下記のように設定します。
94
+
95
+
96
+
97
+ ```
98
+
99
+ =[時間計] \ 60 & "時間" & Format([時間計] Mod 60, "00") & "分"
100
+
101
+ ```
102
+
103
+ この式だと例えば、35時間17分 というように24時間以上の表示も可能です。
104
+
105
+ 日付/時刻型ではこの表示は無理です。

1

書式改善、式の間違い修正

2021/04/27 01:44

投稿

hatena19
hatena19

スコア34084

test CHANGED
@@ -8,7 +8,7 @@
8
8
 
9
9
 
10
10
 
11
- 例えば、開始時刻 終了時刻 というのがあってそこから時間を計算する場合は、Datediff("m",[開始時刻],[終了時刻]) という式で分単位の時間に変換できます。これを集計することになります。
11
+ 例えば、開始時刻 終了時刻 というのがあってそこから時間を計算する場合は、`Datediff("n",[開始時刻],[終了時刻])` という式で分単位の時間に変換できます。これを集計することになります。
12
12
 
13
13
 
14
14