勤怠表を作成しているのですが、クエリで1ヶ月中の出勤日数を求めたいのですが、式がわかりません。
たとえばDateDiff("d",#2006/6/1#,#2006/7/1#)のように期間を指定して日数を求めた場合、左の式のままでは
1ヶ月の日数がカウントされるだけなので勤務日数を出すことができません。この式の中に何を付け加えたら1ヶ月の
勤務日数が求められますか?
これだけでは情報が少なく、求めている答えになるかわかりませんが…
勤怠であれば、出勤時に出勤時間等を記録するかと思います。
その項目 例えば出勤時間 に時間が入っている日数をクエリで期間を指定して、カウントすればいいのではないでしょうか?
個人の勤務日数ではなく、会社の営業日をカウントするのだという前提で考えます。
http://office.microsoft.com/ja-jp/access/HA012288111041.aspx?pid...
DateDiffには曜日を考慮する機能がないので、この式を変更して営業日の総数を計算することは出来ません。
http://www.atmarkit.co.jp/fwin2k/win2ktips/383workday/workday.ht...
ExcelのWORKDAYS関数にはその機能があるようですが、同名の関数はAccessにはないようです。従ってAccessで完結したいのであれば関数等を自作する必要があります。
日数から休みの回数を引けばいいわけですから、定休日が土曜と日曜なら最初の土曜日を探して(初日から一日づつずらしつつWeekday関数で確認する)最終日までの週数を計算(DateDiffのインターバルをwにする)、同じく最初の日曜(初日が日曜でなければ最初の土曜日の次なので検索手順は省略できる)から最終日までの週数を計算してその結果分だけ日数を減らします。
さらに祝日/祭日/その他休日の回数を確認する必要があります。これは別途なにがしかの方法で定義するしかありません。
ちょうど似た問題を扱っている解答をgooで見つけました。
http://oshiete1.goo.ne.jp/qa3613167.html
勤怠管理で使うのであればその場で計算する必要がありませんから、Excelを使って事前に営業日の日数を計算した方が早いかもしれません。(計算結果をテーブルに格納して参照します。)
回答者 | 回答 | 受取 | ベストアンサー | 回答時間 | |
---|---|---|---|---|---|
1 | らいず | 338回 | 311回 | 13回 | 2009-02-17 16:11:07 |
クエリからレポートを作成して給与明細書に出勤日数を記載したいのですが、日数としてカウントして記載する方法が
わからないのですが…