Office 2019 Access 2019

印刷するレコードがない場合はメッセージを表示して印刷を中止する

投稿日:2022年5月31日 更新日:

Accessのレポートで印刷を実行しようとしても、該当するデータがない場合があります。

印刷プレビューで確認すれば、印刷を実行せずに済むかもしれませんが、印刷するレコードがない場合はメッセージで表示すると分かりやすくなります。

レポートのプロパティには、[空データ時]というイベントがあります。

印刷対象のレコードがない場合の処理を割り当てることができるイベントです。

マクロアクションでメッセージを表示して、データがないことを伝えることができます。

印刷するデータないときにメッセージを表示

参考ここでのウィンドウの表示は[タブ付きドキュメント](既定)の設定にしています。

[タブ付きドキュメント]と[ウィンドウを重ねて表示する]の違い

Access2007以降、オブジェクトを表示すると、タブ付きウィンドウで表示されるようになっています。従来からAccessを使用している方に ...

続きを見る

フォームのコンボボックスの値でレコードを抽出して印刷

フォームにコンボボックスを設置して、リストから値を選択し、[印刷]ボタンをクリックして印刷プレビューを表示するように作成しています。

フォームのコンボボックスと[印刷]ボタン

コンボボックスの設定

以下は、フォームのデザインビューでコンボボックスのプロパティを表示しています。

コンボボックスの名前は[コンボ1]です。

コンボボックスのプロパティ[コンボボックスの名前]

プロパティの[データ]タブを見ると、テーブル[T_得意先]の値をリストに表示するようにしているのが分かります。

[連結列]は1です。コンボボックスに表示されるのは2列目の[得意先名]ですが、コンボボックスの値として格納されるのは、主キーの[得意先ID]となります。

コンボボックスのプロパティ[データ]タブ

[列数]は2ですが、[列幅]で1列目は非表示にしています。

コンボボックスのプロパティ[書式]タブ

参考コンボボックスの作成については、以下の記事を参照してください。

フォームのコンボボックスの値でレコードを抽出

Accessの分割フォームのデータシートビューには、Excelのフィルターと同じようにフィルターボタンがあり、Excelの操作と同じように様 ...

続きを見る

コンボボックスの[入力チェック]については、以下の記事で解説しています。

コンボボックスにリスト以外の値が入力されないようにするには

テーブルやフォームでコンボボックスのリストから値を選択して入力するようにしていても、プロパティの[入力チェック]を[いいえ]に設定していると ...

続きを見る

コンボボックスにカーソルが移動すると、すぐにリストを表示するように設定することもできます。

コンボボックス内にカーソルが移動すると自動でリストを表示するには

Accessの入力フォームでコンボボックスを使うことは多いと思います。 コンボボックスって、▼ボタンを押してリストを表示しますが、コンボボッ ...

続きを見る

クエリの抽出条件

クエリ[Q_売上]の[抽出条件]には、以下のように入力しています。

フォームのコンボボックスに格納されているのは[得意先ID]なので、[得意先ID]の抽出条件に入力します。

これで、フォーム[F_レポート印刷]のコンボボックスの値で抽出ができます。

[forms]![F_レポート印刷]![コンボ1]

クエリの抽出条件

レポート[R_売上]のレコードソースはクエリ[Q_売上]です。

レポートプロパティのレコードソース

参考クエリでフォームのテキストボックスの値でレコードを抽出する方法は、以下の記事で詳しく解説しています。

クエリの抽出条件にテキストボックスの値を設定してレコードを抽出

Accessのクエリでレコードを抽出する方法です。 クエリの抽出条件には、フォームのテキストボックスの値を指定することができます。 また、ク ...

続きを見る

レポートの作成は、以下の記事で解説しています。

レポートウィザードを使って表形式のレポートを作成

Accessのテーブルやクエリを基にレポートウィザードを使用してレポートを作成することができます。 ウィザードで作成した後、より見やすいレポ ...

続きを見る

[印刷]ボタンのマクロアクション

[印刷]ボタンのクリック時イベントには、マクロアクションで、コンボボックスが空であればメッセージを表示して、そうでなければレポート[R_売上]を開くようにしています。

[印刷]ボタンのクリック時イベント

レポート[R_売上]は、印刷プレビューで表示するようにしています。

クリック時イベントのマクロアクション

抽出データがない場合

フォーム[F_レポート印刷]で印刷を実行してみます。

フォームのコンボボックスから選択して印刷

データがあれば、コンボボックスの値で抽出されたレコードが印刷プレビューで表示されます。

データある場合の印刷プレビュー

しかし、データがない場合は、以下のようにレポートヘッダーやページヘッダーだけが表示されます。

この表示より、メッセージでデータがないことを表示したほうが分かりやすいですね。

印刷するレコードがない場合の印刷プレビュー

レポートの[空データ時]イベントでマクロアクションを設定

レポートのプロパティには、[空データ時]というイベントがあります。

データが存在しないレポートが印刷される直前に発生するイベントです。

レポートプロパティを表示します。レポートの左上の■をクリックすると、レポートプロパティが表示されます。

[イベント]タブの[空データ時]の[ビルダー選択]ボタン[…]をクリックします。

レポートプロパティ[イベント]タブの[空データ時]

[ビルダーの選択]ダイアログボックスから[マクロビルダー]を選択して[OK]ボタンをクリックします。

[ビルダーの選択]ダイアログボックス

マクロウィンドウが表示されます。

[新しいアクションの追加]の▼ボタンをクリックして、マクロアクションの一覧から[メッセージボックス]を選択します。

一番下までスクロールすると探しやすくなると思います。

マクロアクションの一覧から[メッセージボックス]を選択

[メッセージ]のテキストボックスに表示したいメッセージを入力します。

[警告音]は、[はい]、[いいえ]のどちらかを選択します。

[メッセージの種類]は、5つのリストの中から選択します。

メッセージボックスの設定

メッセージの種類は、以下のような表示になります。

メッセージの種類

メッセージのタイトルは、任意の文字を入力します。空白にした場合は、[Microsoft Access]と表示されます。

Accessのオプションでアプリケーションタイトルを入力している場合は、そのタイトルが表示されます。

ここでは、以下のように設定します。

マクロアクション[メッセージボックス]の設定

[新しいアクションの追加]の▼ボタンをクリックして、マクロアクションの一覧から[イベントの取り消し]を選択します。

印刷をキャンセルするためです。

[イベントの取り消し]がないと、メッセージボックスが非表示になった後、印刷プレビューが表示されてしまいます。

マクロアクション[イベントの取り消し]

マクロアクションの設定が終わったら、上書き保存して、マクロウィンドウを閉じます。

[マクロデザイン]タブの[上書き保存]と[閉じる]ボタン

フォームで動作を確認します。[データがありません。]のメッセージウィンドウが表示されます。

[データがありません]のメッセージウィンドウ

メッセージウィンドウの[メッセージタイトル]と、[メッセージの種類]は以下の位置に表示されます。

メッセージウィンドウのタイトルと種類

参考コードビルダーで設定することもできます。Microsoftの記事をリンクしておきます。

レコードが含まれないレポートの印刷をキャンセルする(Microsoft)

フォームでは、Dcount関数でテーブル/クエリのレコード数を確認してメッセージを表示できます。

テーブル/クエリにレコードが1件もない時にメッセージを表示する

Accessのテーブル/クエリでレコードが1件もない時、そのテーブルを基にして作成したフォームを開こうとする場合は、[データがありません]と ...

続きを見る

検索

ほかの記事も検索してみませんか?

Profile

執筆者/はま

-Office 2019 Access 2019

Copyright © 2001-2022 初心者のためのOffice講座 All Rights Reserved.

Copyright© 初心者のためのOffice講座 , 2022 AllRights Reserved Powered by AFFINGER4.