Access2000でリスト指定の印刷を実現する方法

このQ&Aのポイント
  • Access2000で顧客管理のデータベースを作成しています。リスト指定の印刷を実現するために、指定レコード印刷フォームを作成しましたが、うまく動作しません。
  • 印刷ボタンのクリック時のイベント設定にエラーがあります。テーブルの主キーを「id」としているので、DoCmd.OpenReport stDocName, acNormal, , "id = " & idのように設定してください。
  • この方法で特定のレコードのみを印刷することができます。お手元の環境で試してみてください。
回答を見る
  • ベストアンサー

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」としております。 申し訳ありませんが、お分かりの方がいらっしゃったら宜しくお願い致します。

noname#18840
noname#18840

質問者が選んだベストアンサー

  • ベストアンサー
  • Watapo3
  • ベストアンサー率76% (33/43)
回答No.2

今回提示されたコードについては特におかしなところは見つけられませんし、 当方で、コピペにて動作確認したところきちんと処理されました。 一度、最適化をしてみては如何でしょうか? 若しくは、レポートにモジュールを記述してあるならばそちらが原因かもしれません。 なお、一応このままでも問題は無いのですが、 >DoCmd.OpenReport stDocName, acNormal, , "id = " & id の行末の[id]は、変数と区別がつきづらい為 DoCmd.OpenReport stDocName, acNormal, , "id = " & Me.id とした方が後々見やすいですよ(^ ^)

noname#18840
質問者

お礼

最適化をしてみましたが、だめでした。 色々試してみましたが、やはり同じメッセージが表示されます。 とりあえず、クエリーとマクロを組み合わせる方向を模索してみます。 >なお、一応このままでも問題は無いのですが、 >DoCmd.OpenReport stDocName, acNormal, , "id = " & id >の行末の[id]は、変数と区別がつきづらい為 >DoCmd.OpenReport stDocName, acNormal, , "id = " & Me.id >とした方が後々見やすいですよ(^ ^) ↑ありがとうございます。今後はこちらに変更します。

その他の回答 (1)

  • Watapo3
  • ベストアンサー率76% (33/43)
回答No.1

>その、印刷ボタンのプロパティ(クリック時)のイベント設定は、次のように設定したのですが、うまく動きません。 どの様にうまく動かないのですかね(^ ^; 憶測になりますが、idはテキスト型ですか? でしたら、 DoCmd.OpenReport stDocName, acNormal, , "id = '" & id & "'" となりますが・・・・あとは思いつきません。

noname#18840
質問者

補足

ありがとうございます。説明不足ですみません。 >どの様にうまく動かないのですかね(^ ^; まず動作ですが、印刷ボタンを押すと「印刷中」→「オブジェクが印刷できませんでした」とポップアップで表示されます。 >憶測になりますが、idはテキスト型ですか? idデータ型ですが「オートナンバー型」にしています。 以前Access97で作成した別のDBでは、これで印刷できましたが、何かおかしい所があるのでしょうか?

関連するQ&A

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

    アクセスで報告書を作成し、印刷する時に、ウィザードを使って作ったコマンドボタン「報告書の印刷」を使用したいのですが、全てのレコードが印刷されます。以下の記述でどこを変更すればよいか教えてください。 また、基本的な質問なのですが、レポートのプレビュー上にコマンドボタンを配置することは可能でしょうか?(やはり、無理でしょうか?) よろしくお願いいたします。 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

  • 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 このプリントボタンをクリックした時に『印刷』というチェックボックスにチェックを入れるにはどのように書き換えればよいのでしょうか?

  • Accessでの VBのコーディングを教えて下さい。

    今回、初めてAccessで「顧客管理」を作成しています。 1対多のテーブルで、フォームを作成して、 サブフォームに表示されている多側のテーブルのレコードを、1レコードづつフォームで開きたいのですが、 今のコーディング(下記に表示)では、 既存のレコードしか開けません。 これに、新規のフォームを開いてレコードの追加も行いたいので、良かったらどなたかコーディングを教えて頂けませんでしょうか?宜しくお願いします。 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

  • ACCESSのVBAでプリンタを指定したい

    ACCESSでレポートを2つ作成し、フォームのボタンでレポートの印刷を行っています。 押されたボタンで、印刷するレポートが違うのですが、その時に、プリンタを指定したいのです。 Private Sub レポート印刷_Click() Dim stDocName As String stDocName = "レポート印刷" DoCmd.OpenReport stDocName, acNormal End Sub 上記のような感じで作っているのですが、それぞれのレポートで印刷するプリンタが違います。 どのようにしたらいいでしょうか?

  • 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の知識は皆無です。よろしくお願いします。

  • Access2000でフォームを開くときに常に新規レコードで開きたいのですが

    Access2000で、あるイベントに参加した人のデータベースを作りました。 検索用フォームで「氏名」と「生年月日」で検索し、その人の情報を別の フォームで見ることができるようになっています。 該当者がいない場合は、新しいレコードにそのデータを追加します。 検索結果を表示するフォームに個人情報を表示・書き込みできる画面を開く ためのボタンがあるのですが、このボタンをクリックした時に、常に新規 レコードで開きたいのですが、コードはどのように記述すればよろしいの でしょうか? ちなみに、いまは下記のようなコードになっています。 「新規登録ボタン」は個人情報を表示・書き込みできる画面を開くためのボタン 「応募者」は個人情報を表示・書き込みできるフォーム です。 Private Sub 新規登録ボタン_Click() On Error GoTo Err_新規登録ボタン_Click Dim stDocName As String Dim stLinkCriteria As String stDocName = "応募者" DoCmd.OpenForm stDocName, , , stLinkCriteria Exit_新規登録ボタン_Click: Exit Sub Err_新規登録ボタン_Click: MsgBox Err.Description Resume Exit_新規登録ボタン_Click End Sub

  • アクセスのイベント記述について。

    アクセスのあるフォームA上にある詳細ボタンをクリックすると別のフォームCが開くようにしてあるのですが、クリックすると同時にAフォームを閉じるにはどのように記述したらよいでしょうか? 詳細ボタンの記述は下記のとおりです。よろしくお願いいたします。 Private Sub 詳細_Click() On Error GoTo Err_詳細_Click Dim stDocName As String Dim stLinkCriteria As String DoCmd.Close stDocName = ChrW(12513) & ChrW(12531) & ChrW(12486) & ChrW(12490) & ChrW(12531) & ChrW(12473) stLinkCriteria = "[管理番号]=" & Me![管理番号] DoCmd.OpenForm stDocName, , , stLinkCriteria Exit_詳細_Click: Exit Sub Err_詳細_Click: MsgBox Err.Description Resume Exit_詳細_Click End Sub

  • アクセスのイベント記述について。

    あるフォーム(患者IDで検索した結果を表示した表形式のフォーム)でコマンド30をクリックしたら、別の入力画面が開くように設定したのですが、患者IDのみ一致したフォームが開くようにはなったのですが、これプラス、依頼日も一致したフォームが開くようにしたいです。以下の記述に変更を加えるとしたら、どのようにしたらよいのでしょうか?よろしくお願いいたします。 Private Sub コマンド30_Click() On Error GoTo Err_コマンド30_Click Dim stDocName As String Dim stLinkCriteria As String stDocName = ChrW(81) & ChrW(58) & ChrW(26908) & ChrW(20307) & ChrW(21029) & ChrW(20837) & ChrW(21147) & ChrW(-238) stLinkCriteria = "[患者ID]=" & Me![患者ID] DoCmd.OpenForm stDocName, , , stLinkCriteria Exit_コマンド30_Click: Exit Sub Err_コマンド30_Click: MsgBox Err.Description Resume Exit_コマンド30_Click End Sub

  • XPのアップロードとアクセスの相性?

    アクセス2000ですが、どうもつい最近のXPの アップロードとの相性が悪いようです。 ある特定のフォームを開こうとすると、 「コンパイルエラー」という表示が出てきます。 下記のビジュアルベーシックの部分がおかしいようですが、わかる方アドバイスをお願いします。 特にstDocName = ChrW(12487) あたりが怪しそうです。 ------------------------------------------------------- Private Sub 実行ボタン_Click() On Error GoTo Err_実行ボタン_Click Dim stDocName As String Dim stLinkCriteria As String stDocName = ChrW(12487) & ChrW(12540) & ChrW(12479) & ChrW(20837) & ChrW(21147) DoCmd.OpenForm stDocName, , , stLinkCriteria Exit_実行ボタン_Click: Exit Sub Err_実行ボタン_Click: MsgBox Err.Description Resume Exit_実行ボタン_Click End Sub ----------------------------------------------------------- ちなみに、システムの復元で数日戻すとこの現象は起こらなくなりますが、数日ごとに元の戻す、というのも根本的ではないので・・・

  • 帳票フォーム後のレコード指定

    利用者名と利用者IDと電話番号で検索ができるアクセスを作っています。 以前質問した内容で利用者名での検索のみ、検索後の帳票フォームで開いた後開きたいレコードを直接「詳細情報」のボタンを押すことで別のフォーム(詳細情報)を表示できるのです。 利用者IDも電話番号も利用者名と同じ構成で書いているのに検索後の帳票フォームで表示されたあとレコードを選んでも検索後の1番最初のレコードが詳細情報として出てきてしまいます。 たとえば検索して4件が帳票フォームに表示出たとして、3件目を選んだとします、ですが詳細情報の最初に出てくるのは1件目なのです。 3件目を選んだら3件目が詳細情報として表示してほしいのですが・・・ なぜか利用者名だけできて他ではできません。 これちらがそのイベントプロシージャです。 Private Sub コマンド59_Click() On Error GoTo Err_コマンド59_Click Dim stDocName As String Dim stLinkCriteria As String stDocName = "詳細情報" stLinkCriteria = "[riyou_id]='" & Me![riyou_infotb_riyou_id] & "'" DoCmd.OpenForm stDocName, , , stLinkCriteria Exit_コマンド59_Click: Exit Sub Err_コマンド59_Click: MsgBox Err.Description Resume Exit_コマンド59_Click End Sub 帳票フォームは3つありそれを1つの詳細情報のフォームへ繋げてます。 3つのイベントプロシージャの変更点はボタンの名前しか変えていません。 回答よろしくお願いします。 下手な質問の仕方で申し訳ないです・・・

専門家に質問してみよう