アプリ版:「スタンプのみでお礼する」機能のリリースについて

○環境
Access2007or2010
Windows7Pro

Accessで、帳票をPDFファイルにして出力することを考えています。

VBAのコードで

DoCmd.OutputTo acOutputReport, (オブジェクト名), acFormatPDF, (ファイルのパス)

と書けば出力できることを確認しました。

さらに、10ページあるレポートならば、10のPDFファイルに分割して出力したいと考えています。
が、そこまで方法を書いたページが見つかりません。

別ソフトと組み合わせてもいいので、何か方法をご存じの方はお教えください。
よろしくお願いします。

A 回答 (2件)

追伸


もし無ければレポートの適当なところに、不可視でも構わないので
テキストボックスを1個配置して、コントロールソースに
=[Pages]
と設定して置いてください。
    • good
    • 0
この回答へのお礼

詳細なアドバイスありがとうございます。
結局、これとは違う方法で解決することにしました。

上記レポートはデータベースをselectした結果を出力するものなのですが、
そこに繰り返し処理を加えてDoCmd.OutputToをページ数ぶん繰り返すことにしました。

今回は使いませんでしたが、nicotinismさんの回答が他の方の助けになればと思います。

お礼日時:2011/04/25 14:30

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/AcTip …
また、日本語化を行った有志の方を紹介されています。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています


このQ&Aを見た人がよく見るQ&A