MS Access

AccessのレポートでNoDataでイベントキャンセル後もReport_Closeが実行されて困った

投稿日:2013年5月8日 更新日:

Accessのレポートで表示するデータがない場合は、以下のように書けばスマートにキャンセルできる。

Private Sub Report_NoData(Cancel As Integer)
MsgBox "表示するデータがありません"
Cancel = True
End Sub

しかし、今回のお仕事では、レポートのCloseイベントに必要処理コードを書いている。
となると、データがあってもなくても、必ずCloseイベントが実行されてしまう。
困った。

いろいろトライした結果、わかった。
Closeイベントに書いていた処理をUnloadイベントに移植するとOK。

見えていたレポートが見えなくなる場合はUnloadイベントが実行されるが、Nodataでキャンセルが発生するケースだと、レポートが一度も見えていないのでUnloadイベント以下の処理は実行されない模様。

-MS Access

執筆者:

関連記事

Accessで複数レコードを1レコードにまとめる(運送会社送り状作成のため

Accessに入れてある楽天の注文データをもとに、運送屋さんの送り状伝票を作ろうと思い立った。 しかし、楽天の注文データは、同一の受注番号で複数の商品に分かれている。 例えば一人の人が3点買い物をした …

no image

Accessの複雑な処理のレポート帳票で1ページのみ出力されるはずが2ページ目になぜかページヘッダーが出るトラブルに見舞われ

レポートのデザインビューでいうと上から、レポートヘッダー、ページヘッダー、グループヘッダー、詳細、グループフッター、ページフッター、レポートフッター・・・というような、結構細かいレポートを作っている。 …

no image

AccessやExcelで作ったハイパーリンクではChromeブラウザ上のGmailの受信トレイを検索できんかった・・・がShellならできた

Accessのフォームにつくったボタンをクリックしたら、ハイパーリンクに変数がセットされ、その変数でGmailの受信トレイを検索する・・・・といった仕組みを作りたかった。 Private Sub cm …

no image

Accessで DoCmd.RunSQL を CurrentDb.Executeにしたら、1秒高速化した

処理が遅いので速くして欲しいとの要望があったので、コードを調査。 DoCmd.RunSQL を CurrentDb.Execute に置き換えると非同期で実行されるとの情報を得たので、試す。 結果、6 …

no image

ExcelからAccessの外部データの取り込みでトラブル

ExcelからAccessのクエリを使いたいとき、データ接続途中の「テーブルの選択」ウィンドウに、使いたいクエリが表示されない。 ウィンドウ内には、Accessにあるはずのクエリがあったりなかったり。 …