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

執筆者:

関連記事

no image

Accessで指定テーブル内を全文検索

今まで、特定のフィールド内でしか検索できないものだと思っていた・・・。 Accessのリボンの検索ボタンをクリックして表示されるダイアログボックス内の「探す場所」で特定のテーブル/クエリ/フォーム名か …

no image

Accessで、見積書のような「サブフォームつきフォームを丸々コピー」する方法・・・見つけるのに、四苦八苦。

最初、複雑でかつ読み取り専用のクエリを元にしたフォームをコピーしようとしていたために、 acCmdPasteAppendのラインで「コマンドまたはアクション”追加貼り付け”は無効です」のエラーが出て、 …

FileMakerで画像ファイルを一括インポート

私はAccessとの付き合いが長いので推しソフトなのだが、FileMakerはAccessに無い機能や表示が多いうえ、デザインの自由度になるとAccessを凌駕するので、まったく侮れない。 最近、Fi …

no image

Accessでレポートを印刷したいのにフォームが印刷されるトラブル

現象:全てではなく特定のPCで、チェックリストを出力しようとすると、バックで開いているフォームがプリントされる。 毎回起きるトラブルではなく、うまく出るときもある。 最初の対策:以下のブログを参考に、 …

no image

Accessでのテーブルのエクスポート定義

Access2007のテーブルをcsv保存したいのだが、結果ファイルにダブルコーテーションを付けたくない・・・。 ダブルクォーテーションつきであれば、例えば、 DoCmd.TransferText a …