问题
我正在使用计划任务打开MS Access数据库,运行宏以PDF格式通过电子邮件发送报告,然后关闭数据库。报告是相对基本的,宏只是使用
EmailDatabaseObject
出口及;用电子邮件发送PDF格式的报告。
在过去4年中,它每天都在运行与Windows 7兼容的最新版本Office 365的Windows 7计算机上成功运行。
我最近将机器升级到Windows 10,现在遇到了一个问题
No Current Record
运行计划任务时出错。点击后
OK
Windows多次报告MS Access已停止工作,应用程序崩溃。
如果我手动打开数据库并手动运行宏,一切都会成功。
安装程序
-
Windows 10 Pro 20H2(19042.964)64位
-
Office 365商务应用2104(13929.20296)32位
我的研究
-
我找到了
this MS KB article
然而,在描述这个问题时,据报道这适用于MS Access 2003&2007.我的报告没有分组,但在报告页脚中包含汇总。然而,建议的解决方案不可行,因为删除汇总将从报告中删除必要的信息。
-
我找到了
this related question
然而,这将原因归因于从OneDrive访问数据库,而不是从映射的网络驱动器,而我是从映射的网络驱动器访问数据库。
-
This
看起来是同一个问题,但我无法访问专家交换的“解决方案”。。。
我已经试过了
-
正在将Office 365回滚到早期版本(版本2101)。
-
以最高权限运行计划任务,但这会导致无法访问映射的网络驱动器。
-
从批处理文件运行宏。
-
从另一台PC打开数据库,并从批处理文件运行宏。
-
使用AutoExec宏执行操作,而不是按名称调用特定宏。
-
将数据库中的所有对象导入新的本地数据库。
-
使用
ExportWithFormatting
行动
-
使用
DoCmd.SendObject
方法通过电子邮件发送报告-这会导致MS Access立即崩溃。
-
更改默认Windows打印机&默认报表打印机为“Microsoft Print to PDF”,以排除可能的打印机驱动程序问题。
当前的解决方法
我发现这个错误只有在导出格式设置为PDF时才会出现;因此,我目前的解决方法是将报告导出为RTF格式——但这显然并不理想。
使现代化
现在,我已经系统地从报告中删除了项目,直到我能够从计划的任务中成功运行报告。
我删除了项目,直到在报告标题中留下一个静态标签,在报告详细信息中有一组字段引用基本数字&数据库中单个表中的文本数据。
删除报告标题&Footer导致报表从计划任务成功运行,因此我确定问题一定是由与报表页眉/页脚关联的设置引起的。
我把这个问题孤立起来
“强制新页面”
在报告标题中设置:
设置为
“节后”
,报告崩溃;但如果这个设定为
“没有”
,报告是成功的。
但是,当设置为
“没有”
在原始报告中,当从任务调度器运行并输出到PDF时,报告仍会崩溃。
重现问题的步骤
我上传了一个非常基本的数据库
here
,包含一个表、一个报表和一个宏,该宏执行ExportWithFormatting操作,然后执行QuitAccess操作。
要重现该问题,请打开命令提示窗口并发出以下命令:
cd C:\Program Files (x86)\Microsoft Office\root\Office16
msaccess.exe C:\YourPath\test.accdb /x macro1
然后,MS Access将打开,您可能会看到
“没有当前记录”
错误
还有谁遇到过这个问题并知道解决方案吗?
非常感谢您抽出时间。