- 締切済み
Access コマンドボタンからの印刷
Access2003を使用し、フォームにコマンドボタンを追加して、そのボタンからレポートの印刷を行なおうとしています。 印刷ダイアログボックスを表示し、直前で印刷のキャンセルもできるようにと下記のように記述しました。 Private Sub 印刷1_Click() On Error GoTo Err_印刷1_Click '[印刷]ダイアログボックスを表示した後、印刷 DoCmd.SelectObject acReport, "レポート1", True DoCmd.RunCommand acCmdPrint DoCmd.OpenReport "レポート1", acViewNormal '正常終了処理 Exit_印刷1_Click: Exit Sub 'エラー発生時 Err_印刷1_Click: Select Case Err.Number Case 2501 Exit Sub Case Else End Select End Sub しかし、これを実行し、印刷すると、なぜか2部印刷されます。 どうやら2回処理が実行されているようです。 また、試しに印刷ダイアログボックスで通常使用しないプリンタを選択してみたら、選択したプリンタから1部、通常使用のプリンタから1部出力されてしまいました。 初心者なもので原因がわからず困惑しております。 どなたか解決方法のご教授お願い致します。
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- gatt_mk
- ベストアンサー率29% (356/1220)
>DoCmd.SelectObject acReport, "レポート1", True >DoCmd.RunCommand acCmdPrint の部分と >DoCmd.OpenReport "レポート1", acViewNormal でそれぞれ「レポート1」印刷を実行していませんか?それぞれで何をしたいのでしょうか?印刷後プレビュー表示したいのでしょうか? プレビュー表示するには DoCmd.OpenReport "レポート1", acViewPreview ですが。
- Nayuta_X
- ベストアンサー率46% (240/511)
ヒントです。 下記 **の部分にブレークポイントを置いて 一つずつ動作を確認しましょう。 多分 Exit_印刷1_Click: での処理が、変と思います。 Private Sub 印刷1_Click() On Error GoTo Err_印刷1_Click '[印刷]ダイアログボックスを表示した後、印刷 DoCmd.SelectObject acReport, "レポート1", True DoCmd.RunCommand acCmdPrint DoCmd.OpenReport "レポート1", acViewNormal '正常終了処理 ** Exit_印刷1_Click: Exit Sub 'エラー発生時 ** Err_印刷1_Click: Select Case Err.Number ** Case 2501 Exit Sub Case Else End Select End Sub
補足
ご回答ありがとうございます。 ブレークポイントを入れようとしたら、エラーが出て入れられませんでした…。 せっかくヒントをいただいたのに生かしきれるレベルに至っていないようですね、私は。