ACCESSレポートをPDFに出力VBA

最終更新日

ACCESSでレポートを作成して、下記のVBAで管理番号(ID)別にPDFファイルを保存し、ファイル名はIDに設定。

Private Sub コマンド56_Click()
‘年月IDチェック
If IsNull(Me![開始日付]) Then
MsgBox “「開始日付」を指定して下さい”
Exit Sub
End If

‘変数宣言
Dim DB1 As Database
Dim RS1 As Recordset
Dim PDF_File As String

‘OPEN
Set DB1 = CURRETDB
Set RS1 = DB1.OpenRecordset(“取引先登録”)

‘終わるまで繰り返し
Do Until RS1.EOF

‘取引先IDセット
Me![取引先ID] = RS1![取引先ID]

‘重複PDF削除
PDF_File = “D:\PDF\取引先明細書” & RS1![取引先ID] & “_” & Me![開始日付] & “.pdf”
If Dir(PDF_File) <> “” Then
Kill PDF_File
End If

‘PDF出力
DoCmd.OutputTo acOutputReport, “取引先_明細書”, “PDFFormat(*.pdf)”, PDF_File

DoEvents
Loop

‘CLOSE
RS1.Close
DB1.Close

End Sub

Dim cn As ADODB.Connection
Dim rs As ADODB.Recordset
とするなら
ツールの参照設定:Microsoft Active Data Object x.x Library が必要

VBAからこのライブラリを利用できるように、参照設定を追加する必要があります。
VisualBasic画面の上部メニューのツール → 参照設定 の順で選択します。
「Microsft Office xx.x Object Library」 (xxはバージョン)にチェックを入れます。

フォームやクエリーもPDF出力できます

DoCmd.OutputTo acoutputquery,”クエリ1″,acFormatPDF,CurrentProject.Path & “\練習.pdf”,true
DoCmd.OutputTo acOutputform,”メイン”,acFormatPDF,CurrentProject.Path & “\練習.pdf”,true