文書番号: 402099
最終更新日: 2003/05/28
![[GRAPHIC: ]](JP402099A.gif)
![[GRAPHIC: ]](JP402099B.gif)
![[GRAPHIC: ]](JP402099C.gif)
Function AddTimes()
'変数 Totalhrs、Totalmin、Totalsec、h、m を整数型に定義し、MyDB は Database
'オブジェクト型変数、MyTable は Table オブジェクト型変数に定義します。
'MyDB は、カレント データベースを参照します。
Dim Totalhrs As Integer, Totalmin As Integer, Totalsec As Integer
Dim h As Integer, m As Integer
Dim MyDB As Database, MyTable As Recordset
Set MyDB = DBEngine(0)(0)
'[タイムカード 1] テーブルを開き、レコードを MyTable に書き込みます。
' Totalhrs、Totalmin、 Totalsec を初期化します。
Set MyTable = MyDB.OpenRecordset("タイムカード 1" , DB_OPEN_TABLE)
Totalhrs = 0
Totalmin = 0
Totalsec = 0
'While から Wend に定義されたプロシージャーは、最終行のレコードでない限り
'繰り返します。
'[タイムカード 1] テーブルの [就業時間] のデータをバリアント型の日付/時刻型に
'定義し、Hour 関数で時刻をもとにした整数にします。同様に Totalmin は分、
'Totalsec は秒をもとにした整数にします。
'その結果をそれぞれの時間単位の変数に加算します。すべての処理が終ったら、
'次のレコードに移動します。
While Not MyTable.EOF
Totalhrs = Totalhrs + Hour(CVDate(MyTable!就業時間))
Totalmin = Totalmin + Minute(CVDate(MyTable!就業時間))
Totalsec = Totalsec + Second(CVDate(MyTable!就業時間))
MyTable.MoveNext
Wend
'秒数の合計値を 60 で除算し、整数部分とその余りを分けて単位ごとに調整します。
m = Int(Totalsec / 60)
Totalsec = Totalsec Mod 60
Totalmin = Totalmin + m
'分数の合計値を 60 で除算し、整数部分とその余りに分けて単位ごとに調整します。
h = Int(Totalmin / 60)
Totalmin = Totalmin Mod 60
Totalhrs = Totalhrs + h
'プロシージャの戻り値を代入し、テキスト型に設定します。1 時間 1 分 1 秒ならば
'01:01:01 という形式で表示されます。
AddTimes = Format(Totalhrs, "00") & ":" & Format(Totalmin, "00") & _
":" & Format(Totalsec,"00")
End Function
Keywords: KBHOWTO KB402099
Technology: kbAccess200 kbAccessSearch