| Access実践入門 TOPへ |
| ■ マイクロソフトアクセス、レポートのレコードソースにデータが無い場合 | |
| レポートを印刷したら、空のデータで印刷されてしまった レポートに印刷で、条件を指定して印刷したら、該当データが無くて、表題だけが印刷されてしまう場合があります。 サンプルプログラムでは、プレビュー画面を見せてから、印刷して貰うようになっているので、空データのまま、実際に印刷してしまうことは無いと思いますが、印刷してしまっては紙がもったいないので、その処理について、考えてみます。 参加者の登録で、一覧表の印刷指定でその処理をしています ![]() |
|
| レポートの「空データ時」を使う 「一覧表」のクリック時に次のようなプロシージャを書いています DoCmd.RunMacro "ma印刷.参加者一覧印刷" 下のマクロの「参加者一覧印刷」を呼び出しています ![]() 次に、レポートの「re参加者一覧」のプロパティの「空データ時」を見てください ![]() 上記マクロの「空処理」を呼び出しています メッセージを表示した後、イベントのキャンセルをしています。 これの流れで、空のレポートが開くことを止められます。 |
|
| レポートを開く前に、レコード数を調べて中止する 「ラベル」のクリック時に次のようなプロシージャを書いています If DCount("*", "qu印刷参加者一覧") = 0 Then MsgBox ("印刷するデータがありません") Else DoCmd.OpenReport "re参加者dm", acViewPreview End If レポート「re参加者dm」のレコードソースの「qu印刷参加者一覧」のレコード数を調べて、 レコードが無かったら、メッセージを出して、レコードが有れば、レポートを開くようにしています。 こちらの処理はマクロを使わないで処理できます。 次のようにすると、エラーになります DoCmd.OpenReport "re参加者dm", acViewPreview で、レポートを呼び出して、そのレポートの中で、「空データ時」にキャンセルイベントを書くと、 「イベントがキャンセルされました」というようなエラーが出て、止まってしまいます。 プロシージャでレポートを開いた場合は、キャンセルイベントは使えないみたいです。 |
|