HOME > 即効テクニック > AccessVBA > フォーム・レポート > フォーム上で表示しているレコードをレポートとして印刷する

即効テクニック

フォーム・レポート

フォーム上で表示しているレコードをレポートとして印刷する

(Access 97)

■ 概要 ■
テーブルやクエリとバインド(連結)しているフォームで、表示しているレコードを印刷する方法を説明します。


■ 準備 ■
(1) 以下の構成の[住所録]テーブルを作成します
    ----------------------------------------
    フィールド名        データ型
    ID                  オートナンバー(主キー)
    氏名                テキスト型
    電話番号            テキスト型
    会社名              テキスト型
    ----------------------------------------

(2) [住所録]テーブルをレコードソースとした、単票形式の[住所録レポート]を作成します。
    ※ オートレポートでOKです

(3) このままでは、すべてのレコードが連続して印刷されてしまうので、[詳細]セクションの[改ページ]プロパティを「カレントセクションの後」に変更する。

(4) [住所録]テーブルをレコードソースとした、単票形式の[住所録フォーム]を作成します。
    ※ オートフォームでOKです

(5) フォームフッターにコマンドボタン[印刷]を作成する。

(6) 作成したコマンドボタンのOnClick/クリック時イベントに、以下のプロシージャを記述します。


■ サンプルコード ■
Private Sub 印刷_Click()
    Dim strDocNmae  As String
    Dim strCriteria As String

    'レポート名を設定
    strDocName = "住所録レポート"

    'レポートの印刷範囲を指定するためのWhere句を作成します
    strCriteria = "[ID] = " & Me.[ID] & ""

    '住所録レポートを開きます
    DoCmd.OpenReport strDocNmae, acViewPreview, , strCriteria
End Sub


■ 動作確認 ■
  適当なレコードに移動し、[印刷]コマンドボタンを押下します。


■ 詳細 ■
サンプルではDoCmdオブジェクトのOpenReportメソッドでレポートを開いています。第2引数が「acViewPreview」ですから、ここではレポートはプレビューで開かれます。ここを「acViewNormal」とすると、直接印刷されます。