hatena
hatena
2020/12/11 (金) 10:33:14
フォームのFilterプロパティにVBAで抽出条件を設定するようにすればいいでしょう。
UIとしてはコマンドボタンより、コンボボックスで月を選択するようにするか、オプショングループ内にオプションボタンかトグルボタンを配置する設計にした方かいいでしょう。
まずは、コンボボックスの方が簡単なのでコンボボックスで作成してみて、うまくいったら、オプショングループに挑戦するのがいいでしょう。
まずはコンボボックスの方法を提示しておきます。
月間請求書履歴が帳票フォームとして、レコードソースに「売上日」という日付/時刻型のフィールドがあると仮定します。
「年」選択用のコンボボックスと「月」選択用のコンボボックスを配置します。
「年」コンボボックスを下記のように設定します。
名前 cb年
既定値 =Year(Date())
値集合タイプ 値リスト
値集合ソース 2018;2019;2020;2021;2022
「月」コンボボックスを下記のように設定します。
名前 cb月
既定値 =Month(Date())
値集合タイプ 値リスト
値集合ソース 1;2;3;4;5;6;7;8;9;10;11;12
「月」コンボボックスの更新後処理のイベントプロシージャに下記のように記述します。
Private Sub cb月_AfterUpdate()
Dim BeginDay As Date
BeginDay = DateSerial(Me.cb年, Me.cb月, 1)
Me.Filter = "売上日>=#" & BeginDay & "# AND 売上日<#" & DateAdd("m", 1, BeginDay) & "#"
Me.FilterOn = True
End Sub
「年」コンボボックスの更新後処理とフォームの読み込み時のイベントプロシージャを下記のように記述します。
Private Sub cb年_AfterUpdate()
Call cb月_AfterUpdate
End Sub
Private Sub Form_Load()
Call cb月_AfterUpdate
End Sub
以上です。
通報 ...