• 締切済み

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部出力されてしまいました。 初心者なもので原因がわからず困惑しております。 どなたか解決方法のご教授お願い致します。

みんなの回答

  • gatt_mk
  • ベストアンサー率29% (356/1220)
回答No.2

>DoCmd.SelectObject acReport, "レポート1", True >DoCmd.RunCommand acCmdPrint の部分と >DoCmd.OpenReport "レポート1", acViewNormal でそれぞれ「レポート1」印刷を実行していませんか?それぞれで何をしたいのでしょうか?印刷後プレビュー表示したいのでしょうか? プレビュー表示するには DoCmd.OpenReport "レポート1", acViewPreview ですが。

  • Nayuta_X
  • ベストアンサー率46% (240/511)
回答No.1

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

sui-dream
質問者

補足

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

関連するQ&A

  • Access2002:コマンドボタンがうまく設定できません

    使い始めてから2週間目の初心者です。よろしくお願いします。 コマンドボタンウィザードでフォーム上にコマンドボタンを作成したのですが、クリックしても反応しません。 初めは問題なく作成できたのですが、突如としてうまく動作するボタンが作成できなくなってしまいました。 ウィザードで作成した「レコードの検索」ボタンですら無反応です。 あるフォームのイベントプロージャ(?)は以下のようになっています。 (★はコメントです) Option Compare Database Private Sub テスト15:09_Click() End Sub Private Sub 部番一覧→部番詳細フォーム_Click()★←正しく動作しているボタン★ On Error GoTo Err_部番一覧→部番詳細フォーム_Click Dim stDocName As String Dim stLinkCriteria As String stDocName = "部番詳細表示" stLinkCriteria = "[部番]=" & "'" & Me![部番] & "'" DoCmd.OpenForm stDocName, , , stLinkCriteria Exit_部番一覧→部番詳細フォーム_Click: Exit Sub Err_部番一覧→部番詳細フォーム_Click: MsgBox Err.Description Resume Exit_部番一覧→部番詳細フォーム_Click End Sub←★この下に区切り線が表示されません★ Private Sub テスト15:09_Click()★←無反応のボタン。文字色赤になっています★ On Error GoTo Err_テスト15:09_Click Screen.PreviousControl.SetFocus DoCmd.DoMenuItem acFormBar, acEditMenu, 10, , acMenuVer70 Exit_テスト15:09_Click: Exit Sub Err_テスト15:09_Click: MsgBox Err.Description Resume Exit_テスト15:09_Click End Sub 単純ミスだと思うのですが、原因がわかりません。 どなたかわかりやすく教えいただけないでしょうか。ちなみにVBの知識は皆無です。よろしくお願いします。

  • Access[イベント プロシージャ]について質問です。

    フォーム上にある『プリント』ボタンをクリックすると、レポートを印刷するようにしています。(以下のとおり) Private Sub レポートの印刷_Click() On Error GoTo Err_レポートの印刷_Click Dim stDocName As String stDocName = ChrW(12463) & ChrW(12524) & ChrW(12540) & ChrW(12512) & ChrW(20966) & ChrW(29702) & ChrW(31080) DoCmd.OpenReport stDocName, acNormal Exit_レポートの印刷_Click: Exit Sub Err_レポートの印刷_Click: MsgBox Err.Description Resume Exit_レポートの印刷_Click End Sub このプリントボタンをクリックした時に『印刷』というチェックボックスにチェックを入れるにはどのように書き換えればよいのでしょうか?

  • アクセスのレポートの印刷について。

    アクセスで報告書を作成し、印刷する時に、ウィザードを使って作ったコマンドボタン「報告書の印刷」を使用したいのですが、全てのレコードが印刷されます。以下の記述でどこを変更すればよいか教えてください。 また、基本的な質問なのですが、レポートのプレビュー上にコマンドボタンを配置することは可能でしょうか?(やはり、無理でしょうか?) よろしくお願いいたします。 Private Sub 報告書の印刷_Click() On Error GoTo Err_報告書の印刷_Click Dim stDocName As String stDocName = ChrW(22577) & ChrW(21578) & ChrW(26360) DoCmd.OpenReport stDocName, acNormal Exit_報告書の印刷_Click: Exit Sub Err_報告書の印刷_Click: MsgBox Err.Description Resume Exit_報告書の印刷_Click End Sub

  • Access2000でリスト指定の印刷

    現在Access2000で顧客管理のデータベースを作成しています。 指定したレコードだけを印刷する、指定レコード印刷フォームを作成しようと思い、フォームにリストボックスを貼り付け、そのフォームに印刷ボタンを作成しました。 その、印刷ボタンのプロパティ(クリック時)のイベント設定は、次のように設定したのですが、うまく動きません。 Private Sub 印刷ボタン_Click() On Error GoTo Err_印刷ボタン_Click Dim stDocName As String Me.Visible = False stDocName = "kokyaku_report" DoCmd.OpenReport stDocName, acNormal, , "id = " & id Exit_印刷ボタン_Click: Exit Sub Err_印刷ボタン_Click: MsgBox Err.Description Resume Exit_印刷ボタン_Click End Sub ちなみに、テーブルの主キーは「id」としております。 申し訳ありませんが、お分かりの方がいらっしゃったら宜しくお願い致します。

  • レポート印刷時のエラー

    いつもお世話になっております。 下記のコードで、レポート印刷時にプリンタダイアログを表示させて、保存するファイル名を「仕分け作業登録リスト_AWB」にしたいと思いますが、下記のエラーがでてしまいます。 ※AWBはR-Sorting NoteのAWBの値を持ってきたいです。 エラー内容 予期せぬエラーが発生しました。 エラーナンバー:3265 エラー内容:要求された名前、または序数に対応する項目がコレクションで見つかりません。 エラー3265についてネットで調べてみましたが、自分ではわからないので、 対処方法を教えていただければと思います。 ※コードも独学なのできれいでなくてすみません。 Private Sub Cmd_Report_Click() On Error GoTo Err_Cmd_Report_Click Dim rs As ADODB.Recordset Set rs = New ADODB.Recordset '指定したレポートを印刷プレビューで開く Dim strReportName1 As String strReportName1 = "R_Sorting Note" pdfName = "仕分け作業登録リスト_" & rs!AWB DoCmd.OpenReport strReportName1, acViewPreview DoCmd.OutputTo acOutputReport, strReportName1, acFromatPDF, pdfName, True DoCmd.RunCommand acCmdPrint 'ダイアログの表示 'プレビューを閉じる DoCmd.Close acReport, strReportName1 Exit_Cmd_Report_Click: 'プレビューを閉じる DoCmd.Close acReport, strReportName1 Exit Sub Err_Cmd_Report_Click: If Err.Number = 2501 Then 'エラーを無視する Resume Exit_Cmd_Report_Click Else MsgBox "予期せぬエラーが発生しました" & Chr(13) & _ "エラーナンバー:" & Err.Number & Chr(13) & _ "エラー内容:" & Err.Description, vbOKOnly End If Resume Exit_Cmd_Report_Click End Sub

  • access vba 構文の解読

    access vba 構文の解読 はじめまして先ほどaccess2003について質問させていただいたものです。以下の構文が先ほどの続きです。こちらも皆様のお力で構文を解読していただけないでしょうか。 すみません解読とは、構文の一行一行が何を示しているのか教えていただけると助かります。 よろしくお願いいたします。 ' Exit the application. Case conCmdExitApplication CloseCurrentDatabase ' Run a macro. Case conCmdRunMacro DoCmd.RunMacro rs![Argument] ' Run code. Case conCmdRunCode Application.Run rs![Argument] ' Open a Data Access Page Case conCmdOpenPage DoCmd.OpenDataAccessPage rs![Argument] ' Any other command is unrecognized. Case Else MsgBox "不明なオプションです。" End Select ' Close the recordset and the database. rs.Close HandleButtonClick_Exit: On Error Resume Next Set rs = Nothing Set con = Nothing Exit Function HandleButtonClick_Err: ' If the action was cancelled by the user for ' some reason, don't display an error message. ' Instead, resume on the next line. If (Err = conErrDoCmdCancelled) Then Resume Next Else MsgBox "コマンド実行中のエラーです。", vbCritical Resume HandleButtonClick_Exit End If End Function Private Sub メニュー終了_Click() On Error GoTo Err_メニュー終了_Click DoCmd.Close Exit_メニュー終了_Click: Exit Sub Err_メニュー終了_Click: MsgBox Err.Description Resume Exit_メニュー終了_Click End Sub Private Sub 終了_Click() On Error GoTo Err_終了_Click DoCmd.Quit Exit_終了_Click: Exit Sub Err_終了_Click: MsgBox Err.Description Resume Exit_終了_Click End Sub

  • 超初心者です コマンドボタンのプロシージャの解説をお願いします

    超初心者です。どうかご教授願います。 フォームで、コントロールウィザードを使い、コマンドボタンを使うと、 プロシージャには、下記の記述となりますよね。 それぞれの項目の意味をご解説いただければと思います。 --------------------------------------------------- Private Sub コマンド1_Click()  -----------(1) On Error GoTo Err_コマンド1_Click  -----------(2) DoCmd.DoMenuItem acFormBar, acRecordsMenu, acSaveRecord, , acMenuVer70  -----------(3) Exit_コマンド1_Click:  -----------(4) Exit Sub  -----------(5) Err_コマンド1_Click:  -----------(6) MsgBox Err.Description  -----------(7) Resume Exit_コマンド1_Click  -----------(8) End Sub  -----------(9) --------------------------------------------------- (1)・・・()は何の為にあるのですか?また、話は外れるのですが、「Click(Cancel As Integer)」とはどういう意味ですか? (2)・・・「エラー処理ルーチンを有効にする」というステートメントと本に書いてあるのですが、何のエラーですか? (3)・・・手持ちの本では全く分かりませんでした。各文字の意味からお教え願います。 (4)(6)・・・「Exit_コマンド1_Click」「Err_コマンド1_Click」という言葉は何ゆえ必要なのでしょうか?また最後の「:」は何を示しているのでしょうか? (5)・・・「ループやプロシージャから抜ける」と本に書いてあるのですが、この場合だと、何から抜けるのですか?抜けるとどこへ行くのですか? (7)・・・この場合だと、メッセージボックスには何が表示されるのですか? (8)・・・「Resume」はGoToとは何が違うのですか? (9)・・・「プロシージャやブロックを終了する」と本に書いてあるのですが、「Exit」とは何が違うのですか?

  • アクセスのVBAについて、フォームの On Error Goto についておしえてください。

    Private Sub cmd次_Click() On Error GoTo Err DoCmd.GoToRecord , , acNext Exit_Click: Exit Sub Err: MsgBox "この先にレコードがなくなると、ここをつうかするのだろうか。" Resume Exit_Click End Sub 一連の流れについて,ご解説ください。よろしくお願いいたします。

  • コンボボックス 印刷ボタンについて

    アクセス勉強中です。 フォームで見ている画面だけを印刷する、コンボボックスを作成しています。 コンボボックスウィザードにて印刷ボタンを作成したのですが、 すべてのデーターが印刷されてしまい困っております。 どこを変更すれば1枚だけ印刷ができるのでしょうか? イベントプロジャは下記です。 どうぞ宜しくお願いいたします。 Option Compare Database Private Sub リスト70_AfterUpdate() ' コントロールの値と一致するレコードを検索する Dim rs As Object Set rs = Me.Recordset.Clone rs.FindFirst "[IDI] = " & Str(Me![リスト70]) Me.Bookmark = rs.Bookmark End Sub Private Sub コンボ73_AfterUpdate() ' コントロールの値と一致するレコードを検索する Dim rs As Object Set rs = Me.Recordset.Clone rs.FindFirst "[NO] = " & Str(Me![コンボ73]) Me.Bookmark = rs.Bookmark End Sub Private Sub コンボ73_BeforeUpdate(Cancel As Integer) End Sub Private Sub 生年月日_AfterUpdate() Me.年_____齢 = Int(DateDiff("d", [生年月日] - 1, Date) / 365.25) End Sub Private Sub 郵便番号_AfterUpdate() Me!現住所.SetFocus Me!現住所.SelStart = Len(Me!現住所) End Sub Private Sub コマンド121_Click() On Error GoTo Err_コマンド121_Click Dim stDocName As String Dim MyForm As Form stDocName = "顧客リスト" Set MyForm = Screen.ActiveForm DoCmd.SelectObject acForm, stDocName, True DoCmd.PrintOut DoCmd.SelectObject acForm, MyForm.Name, False Exit_コマンド121_Click: Exit Sub Err_コマンド121_Click: MsgBox Err.Description Resume Exit_コマンド121_Click End Sub

  • Access VBAで行ラベルが定義されていないというエラーが出ます

    VBA初心者です。 下記のソースで行ラベルを定義しているつもりなのですが、 なぜか行ラベルが定義されていませんというコンパイルエラーがでます。 よろしくお願いします。 Private Sub cmd_Click() On Error GoTo Err_cmd_Click <---ここ Dim inp As String Dim cnt As Integer inp = Forms![フォーム1]![日付] 'フォームの非連結テキストボックスと連動 For cnt = 1 To 31 'インポート・フルパス名作成 If (cnt) < 9 Then strImportFileNameM = "M:\PdxLog\KabeKaKinA" & inp & "0" & cnt + 1 & ".csv" DoCmd.TransferText acImportDelim, , "KabeDownLoad", strImportFileNameM, False Else strImportFileNameM = "M:\PdxLog\KabeKaKinA" & inp & cnt + 1 & ".csv" DoCmd.TransferText acImportDelim, , "KabeDownLoad", strImportFileNameM, False End If Next cnt '正常終了 Exit_cmd_Click: End Sub 'エラー処理 Err_cmd_Click: Beep Select Case Err.Number Case Else MsgBox Err.Number & ":" & Err.Description End Select Resume Next End Sub

専門家に質問してみよう