• 締切済み

日報計算

お世話になっております。 うまく説明できませんが以下のデータがありますが、 ID 日付 社員ID 開始 終了  時間 残業 1 12/1 001   8:00 17:00  8 2 12/2 001   17:00 20:00  3 本当は下のように作りたいです。 ID 日付 社員ID 開始 終了  時間 残業 1 12/1 001   8:00 17:00  8 2 12/2 001   17:00 20:00     3 ですのでSQLでつくってみました SQL = ("SELECT T_作業日報明細.日付, T_作業日報明細.個人ID,Min(T_作業日報明細.[Start Time]) AS [Start Timeの最小], Max(T_作業日報明細.[End Time]) AS [End Timeの最大], Sum(T_作業日報明細.時間) AS 時間の合計" & "FROM T_作業日報明細" & "GROUP BY T_作業日報明細.日付, T_作業日報明細.個人ID;") ですが以下のコードはVBAでどいう風に書けばいいか分かりません。 もし日付と社員IDが同じなら 時間の合計 = EndTimeの最大 - StartTimeの最小 - Me.休憩 If 時間の合計 <= 8 Then Me.残業 = 0 Me.勤務時間 = 時間の合計 Else Me.残業 = 時間の合計 - 8 Me.勤務時間 = 8 End If そうではない場合 Soukinmu = EndTime - StartTime - Me.休憩 If Soukinmu <= 8 Then Me.残業 = 0 Me.勤務時間 = Soukinmu Else Me.残業 = Soukinmu - 8 Me.勤務時間 = 8 End If めちゃくちゃだと思いますがご指導をよろしくお願い致します。

みんなの回答

  • ShowMeHow
  • ベストアンサー率28% (1424/5027)
回答No.2

出退管理はテーブル的には 社員テーブル(ID、氏名、、、、、) 打刻テーブル(ID、日付、時間、出退区分、、、) 出勤区分テーブル(ID、名称、、、)休日、有給、祝日、などが入っている。 勤務区分(ID、勤務区分名、開始時間、就業時間、休憩時間、総労働時間、、、) 個別スケジュール(社員ID、年月日、出勤区分、勤務区分、出勤時間、退勤時間、総労働時間、休憩時間、残業時間、遅刻時間、早退時間、時間調整、、、) 年休管理テーブル(社員ID、年、有給付与数、繰越数、休日数、祝日数、有給消化数、、、) みたいなかんじかな。 他社の製品なんであまり詳しくは書くわけにはいかないけど、個別スケジュールを月次のバッチ処理である程度データを埋めるところが肝だね。 あとは、労働時間とかを集計するテーブルもあるし、給与体系に結び付けているテーブルもあるし、やろうとすると、いくらでもできるけど、、、 結局、最終的には何をどう管理するために、どの程度の手間とコストをかけるのか? それを社内でやるのと、製品を買うのとどちらがリーズナブルなのか? という話になってくるわけだね。 休憩時間別にというのは、8時5時、9時6時、10時7時などという出勤区分をそれぞれ作って対応したという意味。

  • ShowMeHow
  • ベストアンサー率28% (1424/5027)
回答No.1

うちの勤怠ソフトは、 出勤休日祝日区分と、勤務時間帯コードを入れるところが付いているよ。 さらに総労働時間と残業時間は別なフィールドで双方データが必ず入ることになっているよ。 で、別テーブルに勤務時間帯コードの標準出勤時間、標準退勤時間、標準休憩時間、標準総労働時間が入れてあって、計算しているみたいだよ。 ま、フレックスにも対応しているんだけど、いろいろめんどくさかったから、休憩時間別にに勤務時間帯コードを作ることにしたよ。

nuocngoai
質問者

お礼

ご回答ありがとうございました。 まずテーブルを再設計する必要があると分かってきました。 単純な質問ですみませんが出勤休日祝日区分と休憩時間別テーブルにはどんなフィールドでしょうか? お手数ですが、よろしくお願い致します。

関連するQ&A