Access2007について

勤怠表を作成しているのですが、クエリで1ヶ月中の出勤日数を求めたいのですが、式がわかりません。
たとえばDateDiff("d",#2006/6/1#,#2006/7/1#)のように期間を指定して日数を求めた場合、左の式のままでは
1ヶ月の日数がカウントされるだけなので勤務日数を出すことができません。この式の中に何を付け加えたら1ヶ月の
勤務日数が求められますか?

回答の条件
  • 1人2回まで
  • 登録:2009/02/17 12:17:06
  • 終了:2009/02/24 12:20:03

回答(3件)

id:careplanner No.1

らいず回答回数338ベストアンサー獲得回数132009/02/17 13:19:33

ポイント35pt

これだけでは情報が少なく、求めている答えになるかわかりませんが…

勤怠であれば、出勤時に出勤時間等を記録するかと思います。

その項目 例えば出勤時間 に時間が入っている日数をクエリで期間を指定して、カウントすればいいのではないでしょうか?

id:hiro8149

クエリからレポートを作成して給与明細書に出勤日数を記載したいのですが、日数としてカウントして記載する方法が

わからないのですが…

2009/02/17 13:44:16
id:deep_one No.2

deep_one回答回数84ベストアンサー獲得回数62009/02/17 13:43:46

ポイント35pt

個人の勤務日数ではなく、会社の営業日をカウントするのだという前提で考えます。


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

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません