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