【ACCESS】レポートを印刷すると後ろのフォームが印刷される時の解決方法!
先日、ACCESSでレポートを印刷プレビューで表示し、リボンの「印刷」ボタンからレポートを印刷したところ、後ろに表示されているフォームが印刷されてしまいました。
作りは間違っていないはずなんですけど、なぜレポートが印刷されないのか。
しかも、作った段階では正しくレポートが印刷されていたはずなのに、いつからかレポートが正しく印刷されなくなってしまいました…。
いろいろ調べたけど結局解決せず、最終的に自分が解決した方法をご紹介します。
解決方法1.レポートを開くときにフォームを隠す
後ろのフォームが印刷されてしまうのであれば、フォームを見えなくしてしまえばいい、という解決方法です。
他の方のブログなどでも紹介されている方法です。
例えばフォーム”frm_フォーム”から、レポート”rpt_レポート”を開くときに、
Docmd.openreport “rpt_レポート” , acPreview
forms!frm_フォーム.invisible = false
としてフォームを隠してしまいます。
そして、レポートを閉じるときには逆に
forms!frm_フォーム.invisible = true
としてフォームを表示してあげるという方法です。
この方法、私も試してみましたが、正直うまくいく時とうまくいかない時があります。
うまくいかない時は、リボンの「印刷」ボタンがグレーアウトして押すことができず、印刷ができません。
解決方法2.ドキュメントウィンドウオプションを「ウィンドウを重ねて表示する」にする
私は解決方法1では解決せず、これを試したところバシッと解決しました。
- 正常にレポートが印刷できず困っているaccdbを開きます。
- 【ファイル】→【オプション】を開きます。
- 【カレントデータベース】→【ドキュメントウィンドウオプション】を【ウィンドウを重ねて表示する】にします。
- すると、ちゃんとレポートが印刷できるようになりました。
あくまで個人的な推測なんですけど、ACCESS2007から追加された「タブ」にバグがあって、レポートが表示されても正しくレポートにフォーカス(?)が移動しないのかなぁと思いました。
これで絶対に解決するかは分かりませんが、同じように「レポートを印刷プレビューで表示して印刷すると後ろのフォームが印刷されるよ~」という方は一度お試しください。
あ、ちなみにACCESS2010 RuntimeにSP1を適用したものでも、同現象が解消することを確認しています。