• ベストアンサー

Accessのフォームで、画面表示されているものを印刷する

いつも大変お世話になっております。m(_ _)m Accessのフォームにて、データを入力します。 入力している画面に「印刷」というボタンを作り、入力し終わった情報をレポート印刷(出力)したいです。 フォームもレポートも作成済みです。 データの区分けとしては、「管理No.」というフィールドが主キーであります。「現在画面に表示されているデータ」とは、「現在画面に表示されているデータの管理No.」ということになります。 その管理No.を抽出条件とし、印刷を行いたいです。 ごく簡単な方法で教えてほしいと思います。 なんとなく想像からすると、クエリを作り、抽出条件にその時の画面の管理No.を取り込む・・・というか・・・そんなイメージはありますが、どうすればいいのか分かりません。 よろしくお願い致します。m(_ _)m

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

  • ベストアンサー
  • venzou
  • ベストアンサー率71% (311/435)
回答No.4

#3さんの仰るとおり、入力直後(保存前)に印刷ボタンを押すと入力中の内容は反映されませんね。忘れていました。 プログラムを修正します。 Private Sub コマンド1_Click()  Me.Refresh  If IsNull(Me![管理No.]) = False Then   DoCmd.OpenReport "レポート名", acViewNormal, , "[管理No.]=" & Me![管理No.]  End If End Sub

xchoxcho
質問者

お礼

何度もご丁寧にありがとうございました。 無事、解決できました。 本当にありがとうございました!

その他の回答 (3)

noname#22222
noname#22222
回答No.3

WhereCondition と呼ばれる引数を利用します。 Private Sub コマンドXXXX_Click() On Error Resume Next   If Nz(Me.管理番号) > 0 Then     DoCmd.OpenReport "XXXX", acXXXXX, , "管理番号=" & Me.管理番号   Else     MsgBox "入力未了にて印刷できません。", _         vbExclamation, _         " 処理中断のお知らせ"   End If End Sub 注意事項としては、フォームに入力しただけでは入力データの保存・登録が完了していません。 その対策は、上記コードでは行っていません。

xchoxcho
質問者

お礼

ありがとうございます。うまく印刷できました。 とても感謝しています。

  • venzou
  • ベストアンサー率71% (311/435)
回答No.2

#1です。 説明不足でした。 フォームの印刷ボタンのクリック時のイベントプロシージャに#1のソースを記述してください。 レポートはそのままで、変更しなくて結構です。(全レコード印刷される状態で大丈夫です。) フォームのボタンを押した時に、特定のレコードを指定してレポートを印刷することが出来ます。

xchoxcho
質問者

お礼

何度も回答ありがとうございます。 できました!!!すばらしく!!!簡単に!!!!! 本当に本当に本当にありがとうございました!!!!

  • venzou
  • ベストアンサー率71% (311/435)
回答No.1

レポート印刷時に条件を設定できます。 OpenReportメソッドの4つ目の引数です。 例: Private Sub コマンド1_Click()  If IsNull(Me![管理No.]) = False Then   DoCmd.OpenReport "レポート名", acViewNormal, , "[管理No.]=" & Me![管理No.]  End If End Sub

xchoxcho
質問者

お礼

さっそくのお返事ありがとうございます。 レポートの「開くとき」の「イベントプロシージャ」の中に↑を記述すればいいのでしょうか? すみません。やってみましたが、うまくいきません。 マクロなどを使って、ボタンに「レポートを開く」というような動作を割り当てるわけですよね?(きっと)その時、レポートに↑を記述して管理No.で印刷されるように制御するということでしょうか? お手数おかけします。よろしくお願いします。m(_ _)m

関連するQ&A