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