Accessのレポートはデータがなくても、タイトルがあるページヘッダーや項目名があるページヘッダーなどが印刷されてしまいます。
それではアプリケーションとしては不親切なので、レコードがない場合はメッセージを表示し印刷を中止するようにします。
Home レポート
■パラメータクエリがレコードソースのレポートを作成する
下のような、人口がパラメータのクエリを作成しました。
パラメータは、<=[何人以下?] にしています。
これで都道府県の人口から、指定した人口以下のレコードが表示されます。
レポートを作成し、レコードソースに上のパラメータクエリを設定しました。
レポートビューで開くと「何人以下?」とメッセージが表示されるので、指定する人口を入力します。
該当するレコードがある場合、下のように印刷プレビューが表示されます。
次にレコードがない場合にするため、人口が1000人以下の都道府県で抽出します。
レポートビューを実行すると、下のようにレコードがないので項目名とフィールドの枠が印刷されました。
これでは印刷が無駄なのと、何回も繰り返しパラメータを変更しテストするようなことが大変になります。
■データがない場合、印刷を中止させる
レポート デザインビューでプロパティシートを開きます。
イベントタブの「空データ時」で[イベントプロシージャ]を選択します。
Report_NoDataが開くので、メッセージとキャンセルするVBAを入力します。
・Report_NoDataの引数のCancelをTrueにすることで印刷を中止できます。
Private Sub Report_NoData(Cancel As Integer)
MsgBox "データがありません!"
Cancel = True
End Sub
実行すると「データがありません!」とメッセージが表示され、印刷はされません。