レポートを期間指定で抽出する|DQのアイテムデータベースをAccessで作る14

「レポートにフィルタをかけて出力|DQのアイテムデータベースをAccessで作る09」でレポートに日付指定のフィルタをかけるVBAを紹介しました。


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

目次

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

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

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

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で日付形式を扱う時は、「#」で囲むって言う所です 

よかったらシェアしてね!

この記事を書いた人

こんにちはAccessの壺です。
臨床工学技士としてどこかの病院で働いています。
夜な夜なMicrosoftAccessで遊びたおして、独学で病院内のいろんなシステムを開発してきました。
透析患者さんの透析条件管理システムやME機器管理システム、アンケート集計などなど作ってきました。
Accessの楽しさを発信するために、このサイトを運営中。

コメント

コメントする

目次
閉じる