- ベストアンサー
作業日報作成
いつもお世話になります。 OS:Windows 7 Access 2007 現在弊社ではアクセスで作業日報を開発しようと思っております。 開始時間、完了時間、勤務時間の計算に関してはちょっとわからないことがあります。 8:00~17:00:定時 12:00~13:00:休憩です。 17:00以降残業 簡単な計算で勤務時間=開始時間ー完了時間ー休憩 残業時間=<17:00 この計算はアクセスに入れたいならどうしたらいいですか?フォーム中にそれぞれボックスがありまして、コードで処理するでしょうか? よろしくお願いします。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
すいません↓ではマイナス表示されてしまいますね。順番入れ替えて 残業時間: IIf([完了時間]>#17:00:00#,DateDiff("n",[完了時間],#17:00:00#),0) 残業時間: IIf([完了時間]>#17:00:00#,DateDiff("n",#17:00:00#,[完了時間]),0) ↑としてください。 で、クエリのデザイン画面で 開始時間|完了時間|の隣のフィールドに 開始時間|完了時間|残業時間:IIf([完了時間]>#17:00:00#,DateDiff("n",#17:00:00#,[完了時間]),0) としてデータシートビューに切り替えて確認してください。 分単位の結果が表示されるハズです。 このクエリを元にフォームを作成すれば残業時間も表示されます。
その他の回答 (3)
- nicotinism
- ベストアンサー率70% (1019/1452)
>教えていただいた関数は入れてみましたがうまく行ってないです。 どこに、どうやって入れて、どんな風にうまく行かなかったかが不明なので なんとも答えようが無いのですが、 DateDiff 関数はヘルプで確認してみてください。 WEB上なら http://office.microsoft.com/ja-jp/access-help/HA001228811.aspx 多分Access2007でも一緒だと思いますが Ctrl + G でイミディエイトウィンドウが出ますので、そこに datediff と入力し F1 キーでヘルプが現れると思います。
- nicotinism
- ベストアンサー率70% (1019/1452)
えーと、 単純に 出勤時間、退勤時間のフィールドがあるとすると クエリで 勤務時間:Datediff("n",[退勤時間],#8:00#)-60 残業時間:iif([退勤時間]> #17:00#,Datediff("n",[退勤時間],#17:00#),0) とすれば一日の時間がわかります。 このクエリを元にフォームを作成すれば、一日の時間が表示されます。 実際には遅刻・早退・時間外出・休日出勤・残業時間は30分単位で切り捨て・・・ などが絡んできますので、もっとヤヤコシクなります。 自作の関数を標準モジュールなどに作ることになるのでは。 ただ単純に日報を部下が作成して、上司がハンコをポンッでおしまいなのか 給与の計算にまで使用するつもりなのかで大きく変わってくるかとは思います。 失礼ながら、まずは、基本を押さえられていないと。 http://www.mahoutsukaino.com/
お礼
実は本も買って、読んでいますが。。。。。。。。。。。 教えていただいた関数は入れてみましたがうまく行ってないです。 実際には遅刻・早退・時間外出・休日出勤・残業時間まで作りたいです。勉強しながら作りますが実力限界があり、難しいです。 ただし、日報には給与の計算を入れないです。 手数ですがも一度Datediffの関数を教えていただきけましょうか?
- nicotinism
- ベストアンサー率70% (1019/1452)
分単位で算出して datediff("n",#11:50#,#16:30#) →280 datediff("n",[完了時間],[開始時間]) datediff("n",[完了時間],[残業切り替え時間]) 最終的に60で割った商を時間に 280\60 →4 余りを分に 280 mod 60 →40 にすれば良いのでは。
お礼
ご回答ありがとうございます。 すごく単純な質問かもしれないですが教えていただいた関数はどこに入れたらいいです? 本当に何もわかっていないですのでよろしくお願いします。
補足
返事不明ですみません。 関数 残業時間: IIf([完了時間]>#17:00:00#,DateDiff("n",[完了時間],#17:00:00#),0) クエリに入れました。 フォームに入力してみたら 開始時間:8:00 完了時間:22:00 残業時間:00:00 という結果が出ました。 つまり関数が効かないですね。 何回もすみません よろしくお願いします。