MS Access

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

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

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

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

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

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

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

-MS Access

執筆者:

関連記事

no image

Accessでフォームフィルタの結果をExcelにエクスポートする

ちょっと、苦労した。 [code] Private Sub cmdDMデータ作成_Click() On Error GoTo Err_cmdDMデータ作成_Click Dim rstf As Stri …

no image

AccessでIN演算子をクエリの抽出条件に使うのに苦労

やりたいこと: 非連結のチェックボックスでレコードを選択する – hatena chips ・・・のようなこと。 ・フォームのテキストボックスに、’354942-0007474 …

no image

Access2013のWeb機能について(FileMakerと比較して)メモ

ここ数日、MS-Access 2013のWeb機能を勉強していたので、そのメモ。 ■フォームの書式 選択肢があまりに少ない。FMのようにデザインやテーマが用意されていない。 リスト表示のサイズが変更で …

no image

Accessのフォーム/レポートのコントロール同士をくっつけて桝目状にしたい

レポートを、Excelのような桝目の罫線にしたい。 お客からこんなニーズが多い。 やったことがある人ならわかるけど、これが、なかなか苦労する。 レポートのデザインビューで、いざ個々にコントロールをきち …

no image

Accessクエリでのフィールド名は同じので重複できる

Accessではクエリの中で同じフィールド名を使えない! ・・・とずっと思っていた。 なので、テーブルで使っているフィールド名でクエリの結果を出す必要があった際には、クエリを二つ作ってそれぞれ前処理 …