こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

ACCESS VBA ベージ毎のPDF化

過去のご回答履歴を拝見して、質問をさせて頂きました。
VBAに関して全くのど素人で、インターネットで検索しながら
下記の文を書いてみました。

<状況>
テーブル:Amazon2
この中にある"区分"というフィールドをグループのキーにして
PDFファイルをCドライブに保存したい。
フォームはグループ化でページが分かれている状況です。

下記文章で実行すると「パラメータの入力」が開き(画像)、
表示されているのは"区分"なので表示と同じように入力すると
フィルターされて出力されます。

この、「パラメータの入力」が開かずに実行できるようにするには
どのように編集すれば可能でしょうか?

ご教示頂ければ幸いです。

<作成した文>
Option Compare Database


Private Sub 分割PDF()

Const TBL_NAME = "Amazon2"
Const RPT_NAME = "Amazon for ESKER"
Const PDF_PATH = "C:\Users\"

Dim rs As ADODB.Recordset
Set rs = New ADODB.Recordset

rs.Open "SELECT DISTINCT 区分 FROM Amazon2", CurrentProject.Connection, adOpenStatic, adLockReadOnly
Do Until rs.EOF

pdfName = rs!区分
DoCmd.OpenReport RPT_NAME, acViewPreview, , "区分=" & rs!区分, acWindowNormal
DoCmd.OutputTo acOutputReport, RPT_NAME, acFormatPDF, PDF_PATH & rs!区分 & ".pdf"
DoCmd.Close
rs.MoveNext

Loop

End Sub

投稿日時 - 2018-12-24 23:57:08

QNo.9571113

困ってます

質問者が選んだベストアンサー

区分は 文字列型のようですから
"区分='" & rs!区分 & "'"
または
"区分=""" & rs!区分 & """"

好みもありますが、前者がわかりやすいと思います。

投稿日時 - 2018-12-25 04:05:07

お礼

ご回答頂きありがとうございました。
構文を上記のようにしてみたのですが結果は空欄でPDFが作成されてしまいました。
私の質問の仕方が悪いので他の方のご質問も参考にしながら、下記に辿り着き、真似てみたら無事、出力できました。
https://okwave.jp/qa/q8116585.html

分かり難い質問にご対応頂きまして、感謝致します。

投稿日時 - 2018-12-25 10:31:38

ANo.2

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(2)

ANo.1

ダイアログを開いているのは
DoCmd.OpenReport RPT_NAME, acViewPreview, , "区分=" & rs!区分, acWindowNormal
です。
OpenReport自体がレポート用ダイアログを表示するか直接印刷する機能ですから。
https://docs.microsoft.com/ja-jp/office/vba/api/access.docmd.openreport
RPT_NAMEが示すレポートが見つからなくて結果が表示されていないのだろうと思えます。

投稿日時 - 2018-12-25 02:35:37

お礼

ご回答頂きありがとうございました。
構文が何を動作しているのかも良くわからずに行っていたので、表示される原因がわかり助かりました。
上記のヒントを参考に再度調べて何とか表示されずに出力ができるようになりました。
本当にありがとうございました。

投稿日時 - 2018-12-25 10:34:28

あなたにオススメの質問