プロが教えるわが家の防犯対策術!

土日祝日を除いた前日のデータを抽出したいのですが、
どうすればいいのか困っています。

Excelの場合、workday関数がありますが
Accessの場合だとどうしたらいいのでしょうか。

やはりVBAを使用しないとできないでしょうか・・・。
(VBAは作成したことがありません。)

Access 2010
勉強をしながらなんとか作成をしているので、
本当に初心者ですが回答いただけると幸いです。

A 回答 (2件)

>土日祝日を除いた前日のデータを抽出したい


の意味が、ある日の土日祝日を除いた前日を求めたい
のなら、
Excelで
 A      B          C
日付     前日       休・祝日
2014/01/01 2013/12/31  1月1日
2014/01/02 2013/12/31  1月2日
2014/01/03 2013/12/31  以下省略
2014/01/04 2014/01/03 
2014/01/05 2014/01/03 
2014/01/06 2014/01/03 
2014/01/07 2014/01/06 
2014/01/08 2014/01/07 
必要なだけ   =WORKDAY(A2,-1,$C$2:$C$5)

というのを作成し保存、
Accessでリボンの外部データでインポート。
ウィザードでは
先頭行をフィールド名として使うにチェック。
インポート先のテーブル名は適当に(仮に、前営業日)
クエリのデザインビューで
ある日のテーブルと前営業日テーブルを加え
ある日--->日付 で結合します。
結合プロパティは結合線上で右クリックから出してください。
勘違いならゴメン。。。

ちなみに祝日をVBAで求められなくはないです。
ただ、春・秋分の日は最終的に政府が決定するので天文学的な日と異なる場合がありえます。
あと、会社の休業日も土日の他にお盆休みなどもあります。
祝日と土日を除く会社休業日のテーブルを作成し
VBAで求めることは可能ですが、初心者には荷が勝ちすぎるかと思います。
    • good
    • 0

日付と前日というフィールドのあるデータテーブルの更新処理です


1.前日参照テーブルを作成
2.前日参照テーブルを編集
  (これは根気が必要です、1年分で165件)
3.前日参照テーブルでデータテーブルの前日設定する
  更新クエリーを作成し実行
4.更新クエリーの実行
  クエリーのデザインビューで更新ツールをクリックすると
  更新行が追加されます。

前日参照テーブルフィールド
 ID
 該当日(日付型、インデックス欄を重複なしとする)
 前日(日付型)

第一段階はここまでですね

祝祭日を考慮すると関数だけではだめでVBAの領域になります。
・曜日の確認
・振替休日
・成人の日、老人の日等第N週目の月曜日
・秋分の日、春分の日
VBAをある程度上達すれば、先ず参照テーブルの自動化をしましょう
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています