Access VBA における DoCmd.OpenReport
メソッドは、指定したレポート(帳票)を開いたり印刷したりするために使用します。特定の条件でレポートを表示したり、ダイアログ表示や直接印刷することも可能です。
目次
🔹 基本構文
DoCmd.OpenReport(ReportName, View, FilterName, WhereCondition, WindowMode, OpenArgs)
🔸 引数の解説
引数名 | 型 | 説明 |
---|---|---|
ReportName | String | 開くレポートの名前(必須) |
View | AcView | 表示モード(例: プレビュー、印刷) |
FilterName | String | 保存されたクエリ名を使ってフィルターを適用(省略可) |
WhereCondition | String | レコードの絞り込みに使う WHERE 条件(省略可) |
WindowMode | AcWindowMode | レポートのウィンドウ表示モード(省略可) |
OpenArgs | Variant | レポートに渡す引数(OpenArgs プロパティで取得可) |
🔹 列挙型の値
▶ AcView
(表示モード)
値 | 説明 |
---|---|
acViewPreview | 印刷プレビューで表示(既定) |
acViewReport | レポートビューで表示(スクロールや選択可) |
acViewDesign | デザインビューで表示(UI 編集用) |
acViewPrint | 直接印刷(表示せずプリンターに送信) |
▶ AcWindowMode
(ウィンドウモード)
値 | 説明 |
---|---|
acWindowNormal | 通常のウィンドウ(既定) |
acHidden | 非表示で開く |
acIcon | アイコン表示で開く(古いスタイル) |
acDialog | モーダル表示で開く(他の操作をブロック) |
🔸 使用例
✅ レポートを印刷プレビューで開く
DoCmd.OpenReport "rptSalesSummary", acViewPreview
✅ 条件付きでレポートを表示
DoCmd.OpenReport "rptOrders", acViewPreview, , "CustomerID=123"
✅ 印刷(画面に表示せず直接プリンターへ送信)
DoCmd.OpenReport "rptInvoice", acViewPrint
✅ OpenArgs を使って引数を渡す
DoCmd.OpenReport "rptDetail", acViewPreview, , , , "OrderID=456"
レポートの Open
イベントなどで Me.OpenArgs
により取得可能。
✅ 補足
- レポートで条件を絞るときは
WhereCondition
を使うのが一般的。 OpenArgs
は複数の条件を動的に渡す場面で便利。- レポートは編集できないビューです。閲覧・印刷用途に特化しています。