MEのHigeさんのためになる話

4児のパパ臨床工学技士が綴るお役立ち情報、初心者向けMicrosoftAccessについて

臨床工学技士(ビジネスマンの方も)のためのAccess講座 第16回 レポートを期間指定で抽出する

第11回でレポートに日付指定のフィルタをかけるVBAを紹介しました。

今回はこのフィルタを少し改良して、期間指定でフィルタをかける方法を説明します。

 この説明は第15回の続きを想定しています。

ファイルのダウンロードをしていただけくと、分かりやすいかと思います。

f:id:me-hige:20200202163021g:plain

 

それでは始めます

 

フォームに期間指定のテキストボックスを追加

伝票日付フォームを開きます

日付がボタンで増減するかたまりごとコピーします

f:id:me-hige:20200322195444p:plain

 

もともとの日付~コピーした日付のテキストボックスとなるように配置を調整します

f:id:me-hige:20200322195837p:plain

 

コピーしてできたテキストボックスとボタンの名前を下の写真のように変更していきます。

コピー元と同じ名前は付けられないので、日付2等にします。

f:id:me-hige:20200322200622p:plain

 

VBAの入力

VBEを起動して、日付を増減する6つのボタンのVBAを丸っとコピーします

f:id:me-hige:20200322201124p:plain

 

このままだと、同じVBAが2つできてしまうので、コピーして新しく追加したほうに「2」の文字を追加していきます。

こうすることで、コピーしたVBAを日付2のVBAとして成りすますことができます。

f:id:me-hige:20200322201904p:plain

 

サブフォームのクエリの抽出条件

 次に日付伝票サブのクエリの条件を変更していきます

f:id:me-hige:20200322202424p:plain

抽出条件は

Between [Forms]![伝票日付]![日付] And [Forms]![伝票日付]![日付2]

です

 

レポートを開くVBAのフィルタ

伝票レポートを開くためのボタンのVBAを修正していきます

f:id:me-hige:20200322202721p:plain

 

伝票ボタンをクリック時のプロシージャにVBAを入力していきます

f:id:me-hige:20200322211747p:plain

DoCmd.OpenReport "R-伝票", acViewPreview, , "[日にち] Between #" & Forms![伝票日付]![日付] & "# AND #" & Forms![伝票日付]![日付2] & "#"



動作確認をすると、日にちの期間で伝票を抽出していることが確認できます

f:id:me-hige:20200322212209p:plain

 

今回のポイントは「between A and B」の関数がクエリとVBAで表記の仕方が異なるということです。

あとVBAで日付形式を扱う時は、「#」で囲むって言う所です