プロが教える店舗&オフィスのセキュリティ対策術

ACCESSでレポートを作成して、下記のVBAで管理番号(ID)別にPDFファイルで保存したいと思っています。保存名はIDにしたいと思っています。
管理番号ごとに出力する部分のコードが分からずに困っています。どなたかご教授頂けないでしょうか?よろしくお願いします。

Private Sub コマンド9_Click()
Const TBL_NAME = "T_住所録"
Const RPT_NAME = "R_住所録"
Const PDF_PATH = "C:\Users\TEST\"

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

rs.Open "SELECT DISTINCT ID FROM T_住所録", CurrentProject.Connection, adOpenStatic, adLockReadOnly
Do Until rs.EOF

pdfName = rs!ID
DoCmd.OpenReport RPT_NAME, acViewPreview, , "ID = '" & rs("ID") & "'"
DoCmd.OutputTo acOutputReport, RPT_NAME, acFormatPDF, PDF_PATH & pdfName & ".pdf"
DoCmd.Close
rs.MoveNext

Loop

End Sub
実行すると「出力データを指定したファイルに保存できません」とメッセージが出ます。

A 回答 (2件)

そちらの環境が不明なので


当方の場合です。

案1
Const PDF_PATH = "C:\Users\TEST\"
を自身のアカウント名のフォルダのサブフォルダにする
例 Const PDF_PATH = "C:\Users\Nicotinims\test\"
これならUACの影響を受けません。
どのフォルダがUACのチェック対象かは不明です。
上記での保存は確認しています。適当なところを探してみてください。

案2
C:\Users\TEST\ のアクセス許可を変更する。
Usersグループに、変更・書き込みの許可を与えます。

案3
UACのレベルを一番下まで下げる。(無効にする)
(これだけ再起動が必要なので試していません)

案4
Accessを「管理者として実行」する。

案1が一番妥当ではないですかね~。
    • good
    • 2

UACか何かの関係かと思われます。


>Const PDF_PATH = "C:\Users\TEST\"
のTESTがアカウント名だった場合は正常に出力されましたが
そうでない場合には
当方(Windows7 Pro & Access2010)では
実行時エラー 2501
OutputTo アクションの実行は取り消されました。
になりました。
IDはテキスト型ですよね。

この回答への補足

回答ありがとうございます。
TESTはフォルダ名です。IDはテキスト型にしてあるのですが。

補足日時:2013/06/03 05:07
    • good
    • 0

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

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


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