当任务计划程序设置为“无论用户是不是登录都运行”时,VBA 失败

Posted

技术标签:

【中文标题】当任务计划程序设置为“无论用户是不是登录都运行”时,VBA 失败【英文标题】:VBA fails when Task Scheduler is set to "Run whether user logged on or not"当任务计划程序设置为“无论用户是否登录都运行”时,VBA 失败 【发布时间】:2016-08-28 21:22:45 【问题描述】:

我有一个生成报告的 Access VBA 宏,将其保存为 .pdf,然后使用 CDO 通过电子邮件发送。如果我手动运行它,或者如果我使用安全选项“仅在用户登录时运行”将它设置为在任务计划程序上运行,一切正常。但是,如果我将选项设置为“无论用户是否登录都运行”(即使使用“以最高权限运行”选项),程序会在以下行的第二行崩溃:

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

出现错误

Microsoft Access 无法将输出数据保存到您创建的文件中 选择。

我很确定会发生这种情况,因为宏在后台与其他用户一起运行。我一直在寻找解决方案,但我发现这是不可能的,我应该更改为其他打印​​方法,例如 PDF Creator(这会带来很多其他问题)。

我在 Windows Server 2012 R2 Standard 中使用 Access 2016。

【问题讨论】:

你能指定 strFileFullPath 的值吗?它是否在特定于用户的文件夹中? 与 Access 文件位于同一文件夹中。我已经测试了一个将虚拟文本文件写入该文件夹的宏,所以我猜这不是用户权限问题。 【参考方案1】:

这听起来很疯狂,但是几天没有结果后,我设法通过创建这两个空文件夹来解决我的问题:

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 生成)时遇到问题有关(这是任务计划程序在选中“无论用户是否登录时运行”时运行的模式) .

【讨论】:

很棒的提示。甚至不知道这是可能的。谢谢! 再次感谢 Faye(和您)。为我工作,尝试使用 powershell & $db.DoCmd.OutputTo( 3,"$report",'PDF Format (*.pdf)',"$report_local" ),与任务计划程序相同的问题。在我运行 32 位 MSAccess 的情况下,它是 SysWOW64 文件夹创建解决了它。 非常感谢!也有些挣扎。在我的事业中,它也是路径中的一个空间

以上是关于当任务计划程序设置为“无论用户是不是登录都运行”时,VBA 失败的主要内容,如果未能解决你的问题,请参考以下文章

任务计划程序在注销和登录后无法显示应用程序的 GUI(无论用户是不是登录都运行)

当设置为“是不是登录时运行”时,Windows 任务计划程序不运行 VBScript

如何在安装期间为计划任务设置正确的用户

windows任务计划程序是怎么回事,有啥用途,该怎么设置??

无论用户是不是登录,任务计划程序在设置为运行时都无法打开批处理文件

Windows 任务计划程序 - 仅在时间窗口内运行