いつも大変お世話になっております。
環境 Win2003Server、ACCESS2003
ACCESSで、プリンタ名と印刷の向きをコマンドラインで指定(縦はT、横はY)
して、レポートを表示させようとしています。
しかし、あるレポートを表示しようとすると、英語のエラーメッセージが
表示され、強制的にACCESSを閉じてしまいます。
他のレポートは正常に表示しています。
現象を以下にまとめました。
1、デバッグしていくと、印刷の向きを指定するところでエラーが出る
2、印刷の向きを指定している部分のコーディングをコメント化すると
正常にレポートを表示する
3、エラーが出るレポートは、他の正常に表示されるレポートと比べて
特別変わった点はないと思われる。
以下にレポート表示のコーディングと、エラー内容を記載いたします。
コーディング
' レポート表示
DoCmd.OpenReport ReportMei, acPreview
' プリンタ、印刷の向きを指定
Set rpt = Reports(ReportMei)
'プリンタ名
rpt.Printer = Application.Printers(strPRname)
'縦印刷
If strPRmuki = "T" Then
rpt.Printer.Orientation = acPRORPortrait
'横印刷
Else
rpt.Printer.Orientation = acPRORLandscape
End If
エラーメッセージ内容
Runtime Error!
Program:...gram Files\Microsoft Office\Office11\MSACCESS>EXE
This application has requested the Runtime to terminate it in an unusualway.
Please contact the application's support team for more information.
原因や対処方法などご存知の方いらっしゃいましたら、
ご教授頂けると幸いです。
↓この現象でしょうか?
http://support.microsoft.com/default.aspx?scid=kb;ja;890487
自称中級さん、ありがとうございます。
ご紹介頂いたHPの現象です。
HPには回避策として、
現象が発生するファイルが MDB ファイルの場合は、PrtDevMode プロパティまたは PrtMip プロパティを使用することにより、この現象を回避することができます。
とありますが、コーディングを変えないといけないでしょうか?
50本くらいあるレポートのうち、エラーが起きるのは4本程度なのです。
全部のレポートでエラーが出るのなら、コーディングを変えようと
思うのですが・・・
引き続き正常に表示するレポートと、エラーが起きるレポートの
相違点を調べてみたいと思います。
「Access 2003 で Printer オブジェクトを使用して、サブレポートを含むレポートのページ設定を変更するとき Access が強制終了します。サブフォームを含むフォームのページ設定を変更するときも、同様の現象が発生します。」
と記述してあるので、
①Accessのバージョンを変更してテストする。
②エラーが起きないレポートにサブレポートおよびサブフォームが含まれていないか確認する。
③且つ、エラーの出るレポートすべてににサブレポートおよびサブフォームが含まれているか確認する。
上記の結果で回避策が決まると思います。
お返事ありがとうございます。
エラーが発生するレポート全てにサブレポートがあり、
発生しないレポートにはサブレポートがありませんでした。
やはりPrtDevMode プロパティを使ったコーディングに
変えるしかないようですね。
使ったことがないので不安ですが、試してみたいと思います。
↓参考程度ですが
http://www.accessclub.jp/samplefile/samplefile_58.htm
自称中級さんご親切にありがとうございました。
ご紹介頂いたHPを参考にやってみます。
とりあえず解決とさせていただきます。
大した助言もできなかったので気にしないでください。
無事解決できるといいですね。
ツイート | ![]() |