几周前我们升级到 Office 2016,遇到了和你一样的问题。我们的批处理文件运行 Access 并触发将一些数据导出到文本文件的宏,并且在手动运行时工作正常。但是,当通过任务计划程序运行时,一切似乎都运行良好,但文本文件从未更新。在尝试了几周没有成功后,我终于找到了问题的原因,并找到了解决方案。
在我们的案例中,问题在于 Access 2016 希望作为前台应用程序运行。但是,当作为任务计划程序应用程序运行时(选中“无论用户是否登录运行”选项),它会将自己视为后台应用程序,因此不会运行。有关更多信息,请参见 Jim Dettman 的回答:https ://www.experts-exchange.com/questions/28988837/
接下来,我找到了 Microsoft 员工 Blake Morrison 的这篇文章,他在其中讨论了最新版本的任务计划程序的变化。他的故障排除建议之一对我们有用:
尝试创建一个新任务,但选择 Configure for: 选项为“Windows Server 2003、Windows XP 或 Windows 2000”——这将创建一个 XP/2003 风格的任务
不幸的是,您可能必须将此作为一项新任务执行 - 现有任务似乎不允许您选择此选项(它没有显示在我现有任务的下拉菜单中)。所以我对新任务的设置是:
- 以管理员帐户运行
- “无论用户是否登录都运行” - 选中
- “以最高权限运行” - 选中
- 配置:Windows Server 2003、Windows XP 或 Windows 2000
如果我手动触发任务,我会看到一个命令提示符打开,然后 Access 会短暂打开并消失(我们的宏最后有一个 Quit Access 命令),然后命令提示符消失。我们的文本文件的输出按预期写入。如果我安排它在我退出机器时运行,显然我什么也看不到,但文本文件再次按预期写入,所以我知道它有效。