日報の時間計算
お世話になっております。
Windows 7
Access 2007
Private Sub 完了時間_AfterUpdate()
Dim StartTime, EndTime, Kugiri, tuujou, Soukinmu, shinyakugiri, SinyaTime As Long
tuujou = 8: '通常勤務時間 8時間
Kugiri = 5: '区切り時間 午前5時
shinyakugiri = 22: '深夜区切り 22時
'処理がわかりやすくするために時刻(m日)を数値(n時間)に変換
StartTime = Me.開始時間 * 24
EndTime = Me.完了時間 * 24
'完了時間が 0時以上 5時以下 の場合、24時間足す。
If EndTime >= 0 And EndTime <= Kugiri Then
EndTime = EndTime + 24
End If
'深夜計算
SinyaTime = EndTime - shinyakugiri - Me.休憩
If SinyaTime > 0 Then
Me.深夜 = SinyaTime
Else
Me.深夜 = 0
End If
'総勤務時間算出
Soukinmu = EndTime - StartTime - Me.休憩
'(Me.sinyaは前の処理で、深夜にかかっていない場合0なので、適切に計算される)
Soukinmu = Soukinmu - Me.深夜
'総勤務時間が通常勤務時間以下の場合、
'残業時間は0、勤務時間は総勤務時間。
'総勤務時間が通常勤務時間より大きい場合、
'残業時間=総勤務時間-通常勤務時間 勤務時間=通常勤務時間
If Soukinmu <= tuujou Then
Me.残業 = 0
Me.勤務時間 = Soukinmu
Else
Me.残業 = Soukinmu - tuujou
Me.勤務時間 = tuujou
End If
'工数算出
'If EndTime <= 17 Then
If Soukinmu <= tuujou Then
工数 = 勤務時間 / tuujou
Me.勤務時間 = Soukinmu
Else
工数 = tuujou / 8
End If
End Sub
このコーナーで教えていただいた日報の時間計算ですが、とてもうまく計算できました。ですが、問題発生したため、修正が必要ですけどどいう風に変更すればいいか分からなくてまた質問させていただきます。
言葉でうまく説明出来ないので、例を挙げます。
2011/12/09 Aさんの場合
工事番号 日付 名前 開始 終了 勤務時間 残業
0001 12/9 A 8:00 17:00 8
0002 12/9 A 17:00 20:00 3
そんな感じで日報に表示させたいですが現在の日報はこんな感じです。
工事番号 日付 社員ID 名前 開始 終了 勤務時間 残業
0001 12/9 1 A 8:00 17:00 8
0002 12/9 1 A 17:00 20:00 3
今のコードなら修正できるでしょうか?
素人の考えですが、社員IDと日付が同じなら勤務時間の集計で残業時間になるということですがどこに何を書けば全然わかなかったです。
どなたか教えていただけませんか?
よろしくお願い致します。