Accessのレポートで表示するデータがない場合は、以下のように書けばスマートにキャンセルできる。
Private Sub Report_NoData(Cancel As Integer) MsgBox "表示するデータがありません" Cancel = True End Sub
しかし、今回のお仕事では、レポートのCloseイベントに必要処理コードを書いている。
となると、データがあってもなくても、必ずCloseイベントが実行されてしまう。
困った。
いろいろトライした結果、わかった。
Closeイベントに書いていた処理をUnloadイベントに移植するとOK。
見えていたレポートが見えなくなる場合はUnloadイベントが実行されるが、Nodataでキャンセルが発生するケースだと、レポートが一度も見えていないのでUnloadイベント以下の処理は実行されない模様。