2016-05-03 15 views
1

レポートを生成し、.pdfで保存してCDOを使用して電子メールで送信するAccess VBAマクロがあります。手動で実行する場合、または「ユーザーがログオンしているときのみ実行する」セキュリティオプションを使用してタスクスケジューラで実行するように設定すると、すべて正常に動作します。しかし、私はプログラムがの2行目にクラッシュし(でもオプション「最高の特権で実行する」と)「ユーザーがログオンしているかどうかを実行」するためのオプションに設定した場合:とタスクスケジューラが「ユーザーがログオンしているかどうかにかかわらず実行する」に設定されていると、VBAが失敗する

strFileFullPath = CurrentProject.Path & "\Test Report.pdf" DoCmd.OutputTo acOutputReport, strReportName, acFormatPDF, strFileFullPath

をエラー

が選択されたファイルに出力データを保存できません。

マクロがバックグラウンドで他のユーザーと一緒に実行されるため、この問題が発生する可能性があります。私は解決策を模索してきましたが、私はそれが不可能であり、PDF Creator(他の多くの問題を引き起こします)のような他の印刷方法のために変えなければならないということを発見しました。

Windows Server 2012 R2 StandardでAccess 2016を使用しています。

+0

strFileFullPathの値を指定できますか?それはユーザー固有のフォルダにありますか? –

+0

アクセスファイルと同じフォルダにあります。私はそのフォルダにダミーのテキストファイルを書き込むマクロをテストしたので、それはユーザ権限の問題ではないと思います。 –

答えて

7

それはクレイジーに聞こえるが、結果なしで数日後、私はこれらの2つの空のフォルダを作成することによって、私の問題を解決するために管理:

  • C:\ WINDOWS \ System32に\ CONFIG \ systemprofile \デスクトップ
  • C:\ WINDOWS \ SYSWOW64 \ CONFIG \ systemprofile \デスクトップ

このページの一番下にフェイさんのコメントへのすべてのクレジット:https://blogs.technet.microsoft.com/askperf/2015/02/18/help-my-scheduled-task-does-not-run/

コメントはExcelに関するものですが、私の問題はAccessに解決されました。これは、非対話モード(「ユーザーがログオンしているかどうかを実行したときにタスクスケジューラが実行するモード」)でいくつかのプロセス(私の場合はpdf世代)を実行することに問題があると思われます。

+0

素晴らしいチップ。それが可能だったことさえ知りませんでした。ありがとう! – Gustav

+0

再びFaye(とあなた)のクレジット。 PowerShellと$ db.DoCmd.OutputTo(3、 "$ report"、 "PDF Format(* .pdf)"、 "$ report_local")を使用しようとしましたが、Task Schedulerと同じ問題です。 32ビットMSAccessを実行している私のケースでは、SysWOW64フォルダの作成がそれを解決しました。 – EndUzr

+0

素晴らしい感謝!また少し苦労した。私の場合、それはまた、道の中のスペースでした –

関連する問題