以前車庫証明許可日が申請日を含めて3日となるため
T-祝日テーブルを作り下記のように関数をhatena様よりご教示いただきました。
その際申請日を含めて3日は普通車であり、管轄署が市内で軽自動車であるならば
申請日を含めて2日となります。
それで素人の浅はかさで
下記のようにクエリーで作成し運用することとしました。
出来上日: IIf(IsNull([申請日]),"",IIf([普軽別]="軽",許可日([申請日])-1,許可日([申請日])))
でも9月19日の申請ならば9月23日に軽自動車の出来上がりとなります。
したがって下記の式について普通車・軽自動車併せてはどう作ればいいのかご教示頂ければありがたいのですが。
Public Function 許可日(申請日 As Variant) As Variant
Dim 営業日 As Long
許可日 = 申請日
If IsNull(許可日) Then Exit Function
Do
許可日 = 許可日 + 1
Select Case Weekday(許可日)
Case vbMonday To vbFriday
If IsNull(DLookup("祝日名", "T_祝日", "日付=#" & 許可日 & "#")) Then
営業日 = 営業日 + 1
End If
End Select
Loop Until 営業日 = 2
End Function
軽自動車は管轄署が「市内」の場合には2日で、「市外」は3日になるんですよね。
作成したクエリには「管轄署」についての情報はないのですが、そういったデータはございますか?
もし管理しているということであれば、
許可日の引数に「普軽別」と「管轄署」を追加し、
営業日のところで条件分岐をすることで
ご希望の日付を取得することができると思います。
許可日関数を下記のように変更してください。
あと、TMGさんの回答のように、テーブルの市外か市内を判断できるフィールドで、条件分けをすればいいでしょう。
軽かつ市内
の部分の条件式はテーブルのフィールド構成が分からないので、適切なの式を考えてください。返事が遅くなり申し訳ありません。おかげさまで希望通りの
結果が得られました。TMGさんhatenさん大変有り難うございました。
hatena様の関数式いつもかっこいいですね。ただどうしてこの関数で
こうなるのかというのを今後勉強していきたいと思います。