即効テクニック |
■ 概要 ■ テーブルやクエリとバインド(連結)しているフォームで、表示しているレコードを印刷する方法を説明します。 ■ 準備 ■ (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」とすると、直接印刷されます。