3

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

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

エラーで

Microsoft Access は、選択したファイルに出力データを保存できません。

マクロがバックグラウンドで他のユーザーと一緒に実行されるため、これが発生することは間違いありません。私は解決策を探していましたが、それは不可能であり、PDF Creator (他の多くの問題をもたらす) などの他の印刷方法に変更する必要があることがわかりました。

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

4

1 に答える 1

10

クレイジーに聞こえるかもしれませんが、結果が得られなかった数日後、次の 2 つの空のフォルダーを作成するだけで問題を解決できました。

  • C:\Windows\System32\config\systemprofile\Desktop
  • C:\Windows\SysWOW64\config\systemprofile\Desktop

このページの下部にある Faye のコメントへのすべてのクレジット: https://blogs.technet.microsoft.com/askperf/2015/02/18/help-my-scheduled-task-does-not-run/

コメントは Excel に関するものですが、Access に関する問題は解決しました。Office が一部のプロセス (私の場合は pdf 生成) を非対話モード (「ユーザーがログオンしているかどうかに関係なく実行する」がチェックされている場合にタスク スケジューラが実行するモード) で実行する際に問題を抱えていることに関連しているようです。 .

于 2016-05-06T21:59:40.490 に答える