我在 Access 数据库中设置了一个脚本,希望每晚运行。我在任务计划程序中设置了一个任务,每天凌晨 4:00 运行。它会打开数据库,运行脚本,然后 VBA 脚本的最后一行会关闭数据库。
这些任务在几天内都能正常工作,然后我发现它停止工作了。我已将任务设置为在 2 小时后停止(这远远超过了足够的时间)。我假设发生的事情是,当数据库打开时,安全弹出窗口阻止了脚本运行。
我已将数据库文件设置为受信任,当我手动打开它时,它看起来很好。
以下是我针对该任务采取的行动:
程序/脚本:“C:\Program Files (x86)\Microsoft Office\Office15\MSACCESS.EXE”
添加参数:“\path to database\database.accdb”/x MacroName”
该任务每天都在运行,所以我相信任务计划程序中的任务设置正确。我只是不确定为什么 Access 中的脚本没有运行,同样,我的猜测是数据库打开时出现弹出窗口,阻止脚本运行(即使我已将该位置设置为受信任位置)。
任何帮助/建议都将不胜感激
答案1
我会尝试以下
#1
而不是在命令行上传递 /x MacroName,
您可以在指定的数据库启动窗体 OnOpen 事件中运行代码。
例如,如果当前时间在凌晨 3 点到 5 点之间,则运行 MacroName
#2 检查命令行中的引号(上面列出的参数有三个双引号……你的命令行中的双引号应该是偶数,而不是奇数
#3 创建一个用于记录消息的表,其中包含日期/时间戳字段
在您的 4am 代码中散布几行代码以将行添加到此日志表中。稍后检查日志表以查看代码在整个宏中实际达到的程度...可能是您的某个特定代码部分偶尔崩溃?
#4 如果它仍然每天都停止,那么将时间改为你使用电脑的时间,并观察一周左右的行为,如果你的怀疑是正确的,你就会看到弹出窗口
答案2
@Thetafinity 你找到问题的解决方案了吗?看来我遇到了和你一样的问题,不知道如何解决。如果你能分享解决方案,我将不胜感激。