プロが教える店舗&オフィスのセキュリティ対策術

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部出力されてしまいました。

初心者なもので原因がわからず困惑しております。
どなたか解決方法のご教授お願い致します。

A 回答 (2件)

>DoCmd.SelectObject acReport, "レポート1", True


>DoCmd.RunCommand acCmdPrint

の部分と

>DoCmd.OpenReport "レポート1", acViewNormal

でそれぞれ「レポート1」印刷を実行していませんか?それぞれで何をしたいのでしょうか?印刷後プレビュー表示したいのでしょうか?
プレビュー表示するには

DoCmd.OpenReport "レポート1", acViewPreview

ですが。
    • good
    • 0

ヒントです。


下記 **の部分にブレークポイントを置いて 一つずつ動作を確認しましょう。
多分 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

この回答への補足

ご回答ありがとうございます。

ブレークポイントを入れようとしたら、エラーが出て入れられませんでした…。
せっかくヒントをいただいたのに生かしきれるレベルに至っていないようですね、私は。

補足日時:2007/04/25 09:27
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!