Accessのマニュアル操作でレポートのプレビューを開くと、リボンは下図のようなものに変わります。

ここで[PDFファイルまたはXPS]ボタンをクリックすると、次のようなダイアログが開き、出力先のPDFファイルのパスやオプションなどを指定することができます。

一方、プログラムを使ってPDFファイルにエクスポートする場合には「DoCmd」オブジェクトの「OutputTo」メソッドを使いますが、出力先のパスなどはコード上で直接指定するため、上記のようなダイアログは自動では開きません。ダイアログを表示するには別の処理が必要です。しかし、ダイアログの左下にある[発行後にファイルを開く]というオプションについては、自分で作ったフォームに簡単に組み込み、その設定を「OutputTo」メソッドに渡すことができます。

それには、次のようなフォーム、プログラムを作成します。
サンプルフォーム:

ここでは例として下記のようなコントロール名としています。
- PDFファイルの発行先先パスを入力するテキストボックス → txt発行先パス
- 発行後にファイルを開くかどうかを指定するチェックボックス → chk発行後オープン
- [発行]のコマンドボタン → cmd発行
[発行]ボタンクリック時の処理:
Private Sub cmd発行_Click()
'[発行]ボタンクリック時
'R_名簿レポートをPDFファイルにエクスポート
DoCmd.OutputTo acOutputReport, "R_名簿", acFormatPDF, Me!txt発行先パス, Me!chk発行後オープン
End Sub
ポイントは、「OutputTo」メソッドの5番目の引数に発行後にファイルを開くかどうかをTrue/Falseで指定することです。もちろん開くならTrueを指定します。そしてここではその選択をチェックボックスで行っていますので、単にそのコントロールを引数に指定するだけです。それによって、チェックマークが付いているかどうか、すなわちTrueかFalseが引数として渡されることになります。
実行例:

【補足】
次のようなコードを使うことで、チェックボックスやフォームは使わずにメッセージボックスでそれを選択することもできます。
Dim blnAutoOpen As Boolean
blnAutoOpen = (MsgBox("発行後にPDFファイルを開きますか?", vbYesNo + vbQuestion) = vbYes)
DoCmd.OutputTo acOutputReport, "R_名簿", acFormatPDF, "D:\名簿.pdf", blnAutoOpen
|