- ベストアンサー
AccessでPDFを複数ファイルにして出力
○環境 Access2007or2010 Windows7Pro Accessで、帳票をPDFファイルにして出力することを考えています。 VBAのコードで DoCmd.OutputTo acOutputReport, (オブジェクト名), acFormatPDF, (ファイルのパス) と書けば出力できることを確認しました。 さらに、10ページあるレポートならば、10のPDFファイルに分割して出力したいと考えています。 が、そこまで方法を書いたページが見つかりません。 別ソフトと組み合わせてもいいので、何か方法をご存じの方はお教えください。 よろしくお願いします。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
追伸 もし無ければレポートの適当なところに、不可視でも構わないので テキストボックスを1個配置して、コントロールソースに =[Pages] と設定して置いてください。
その他の回答 (1)
- nicotinism
- ベストアンサー率70% (1019/1452)
Adobe の Acrobat はお持ちでは無いでしょうか。 これを購入して・・ とてもお高いので。。私は下記の PDFCreator を使わせてもらっています。 http://sourceforge.jp/projects/pdfcreator/ 簡単な説明は上記リンクをご覧いただくとして オプションの AutoSave にチェックを入れ Filename には <Title> として おいて置けば自動的に保存されます。 ※ただし日本語(全角文字)は使えません なので別名で保存した後で、ファイル名を書き戻す必要が無いかも? (詳しくは最後の方に) Sub pdfPrint(rptName As String) '1ページずつPDFで印刷 'rptNameにはレポート名(※PDFCreatorで出力するように設定してあること) Dim rpt As Report Dim printCount As Integer Dim i As Integer DoCmd.OpenReport rptName, acViewPreview, windowmode:=acIcon Set rpt = Reports(rptName) If MsgBox(rpt.Printer.DeviceName & " で印刷します", vbOKCancel) = vbCancel Then DoCmd.Close acReport, rpt.Name, acSaveNo Set rpt = Nothing Exit Sub End If printCount = rpt.Pages Do Until i > printCount i = i + 1 rpt.Caption = rpt.Name & Format(i, "-000") DoCmd.PrintOut acPages, i, i Loop DoCmd.Close acReport, rpt.Name, acSaveNo Set rpt = Nothing MsgBox rptName & " の印刷終了" End Sub なお、YU-TANG さんが詳しい解説をされています。 レポートを PDF 出力する方法~ PDFCreator 編~ http://www.f3.dion.ne.jp/~element/msaccess/AcTipsRptPDFCreator.html また、日本語化を行った有志の方を紹介されています。
お礼
詳細なアドバイスありがとうございます。 結局、これとは違う方法で解決することにしました。 上記レポートはデータベースをselectした結果を出力するものなのですが、 そこに繰り返し処理を加えてDoCmd.OutputToをページ数ぶん繰り返すことにしました。 今回は使いませんでしたが、nicotinismさんの回答が他の方の助けになればと思います。