アプリ版:「スタンプのみでお礼する」機能のリリースについて

エクセルの場合ですとworkday関数を使用すればいいのですが、
アクセスの場合はどのようにしたらよいのでしょうか?
いろいろネットで調べてみたのですが、workday関数はアクセスでは無いように思うのですが・・・。
また、もし簡単に出来るのであれば、祝日も除きたいのですが、
これは本当に難しいらしくあきらめています。本当に初心者レベルで申し訳ないのですが、教えていただけると幸いです。

A 回答 (2件)

workday関数ですが、Accessにはないので、


モジュールで自作する必要があります。

まず、祝日や、盆休みなどの休日のデータを用意します。

Accessの場合、テーブルとして作った方が良いでしょう。
 テーブル名 :holiday
 フィールド名:data (日付型) 主キー

土日は計算できるので、土日以外の、祝日や、
振り替え休日、会社独自の休日などを登録しておきます。

次に、新規のモジュールを追加し、下記のようなソースを記述。
適当な名前で保存して下さい。
-----------------------------------------------------------
Option Compare Database
Option Explicit

'd(日付)から、c(日数)営業日後の日付を返す
Public Function WorkDay(d As Date, c As Integer)
 Dim count As Integer
 '初期化
 WorkDay = NextWorkDay(d)
 count = 0
 Do While count < c
  '営業日をカウントしながら進める
  WorkDay = NextWorkDay(DateAdd("d", WorkDay, 1))
  count = count + 1
 Loop
End Function

'd(日付)以降の営業日を返す
Private Function NextWorkDay(d As Date) As Date
 NextWorkDay = d
 Do While IsHoliday(NextWorkDay)
  NextWorkDay = DateAdd("d", NextWorkDay, 1)
 Loop
End Function

'd(日付)が、土日・休日かチェック
Private Function IsHoliday(d As Date) As Boolean
 If Weekday(d) = vbSunday Or Weekday(d) = vbSaturday Then
  '土日ならTrue
  IsHoliday = True
 ElseIf IsNull(DLookup("data", "holiday", "data = #" & d & "#")) Then
  '平日で、休日でなければFalse
  IsHoliday = False
 Else
  '休日ならTrue
  IsHoliday = True
 End If
End Function

-----------------------------------------------------------
フォームの既定値のプロパティでは下記の様に使います。
今日から3営業日後の日付を規定値にする場合、
 WorkDay(Date(),3)

Excelのworkday関数と同じような使い方です。
違いは、休日のデータを、テーブルに用意しておく点です。
    • good
    • 2
この回答へのお礼

venzouさん、本当にありがとうございました!!
モジュールなんて全くわかっていない自分でも、venzouの書いてある通りにやったら上手く出来ました。これも、すべてvenzouさんのおかげです。
いろいろネットで調べたのですが、教え方が高度で全くわからず、あきらめていました。venzouさんが助けてくれなければあきらめていたでしょう。
本当にありがとうございました。

お礼日時:2007/12/20 23:02

どういう処理で3日後を得たいのかよく分かりませんが


簡単な方法としてはカレンダーテーブルを用意するか
独自の関数を作成するのが良いかと思います。
土日はともかくとしても祝祭日は毎年変動しますから
祝日テーブルなりは必要だと思いますよ。

例えばですが:
何か日付を入力したら
その日付+3日の日付をカレンダーテーブルに参照する
参照した日が土日や祝日扱いなら
その翌日の平日日付を返すようにすればよいかと
    • good
    • 0
この回答へのお礼

回答ありがとうございました。
例えば以降を実際にどうすればよいかわからず、困りました・・・。

お礼日時:2007/12/20 23:05

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

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


このQ&Aを見た人がよく見るQ&A