#394 ページ範囲を指定して印刷するには? レポート、VBA

データベースウィンドウ上からレポートを選択して、あるいはレポートをプレビューした状態で、[ファイル]-[印刷]メニューを実行すると、次のようなダイアログが表示されて、印刷するページ範囲を指定することができます。
印刷ダイアログ

ここでは、このようなAccess標準のダイアログによるページ指定ではなく、オリジナルフォームを使って印刷ページ範囲を指定する方法を紹介します。


まず次のようなフォームを作成します。このフォームで、印刷する開始ページ〜終了ページを指定します。それぞれのテキストボックスには、"txt開始ページ"、"txt終了ページ"という名前が付けられています。
フォームビュー

さらに、[OK]ボタンのクリック時イベントプロシージャに次のようなコードを記述します。

Private Sub cmdOK_Click()
'[OK]ボタンクリック時

  Dim strRptName As String

  'レポート名を設定
  strRptName = "rpt受注"

  'レポートをプレビューで開く
  DoCmd.OpenReport strRptName, acViewPreview

  'レポートを指定ページ範囲で出力
  DoCmd.PrintOut acPages, Me!txt開始ページ, Me!txt終了ページ

  'レポートを閉じる
  DoCmd.Close acReport, strRptName

End Sub


ここでのポイントは、DoCmdオブジェクトの「PrintOut」メソッドです。このメソッドでは、現在アクティブになっているウィンドウをプリンタに出力します。直前に"rpt受注"レポートをプレビューで開いていますので、そのレポートが印刷されることになります。
さらにこのメソッドでは、最初に引数に組み込み定数「acPages」を指定した上で、第2引数で開始ページを、また第3引数で終了ページを指定することができます。
| Index | Prev | Next |



T'sFactory
Accessで動く生産管理DB
Ureru Express
Webで使う販売顧客管理
Access開発&アドバイス
DB開発やテクニカルアドバイス
Copyright © T'sWare All rights reserved