MS Access 2010 子报表 运行 正常,但主报表冻结,仅针对用户,不适用于开发人员。为什么,以及如何解决?

MS Access 2010 subreports run fine, but main report freezes, only for user, not for dev. Why, and how to fix?

我在 Windows 7 上使用 MS Access 2010,在适度锁定的公司环境中。我开发了一个调用多个子报表和一个子窗体的报表,该子窗体又包含多个嵌入式图形。各种子实体从基于其他查询构建的多个查询中提取数据,其中一些是参数化的。这两个参数(年和月值)取自一个表单,该表单包含用于预览和打印报告的按钮。所有数据表都是 .accdb 文件的本地文件;没有服务器后端。

我在本地开发了文件,然后复制到共享网络文件夹中测试。一切都按我的预期进行——报告需要几秒钟才能 运行,因为数据工作确实有点笨拙,但它仍然及时显示。我在加利福尼亚州,共享文件夹在中西部或南部的某个地方,而我的同事在德克萨斯州。我让同事打开文件,在表格中输入值,然后 运行 报告。他收到一条警告,说该文件是只读的,但表格仍然是 运行,但报告已锁定。具体来说,报告从 运行 开始,进度条移动到大约 1/3 或 2/5,然后就停止了。没有给出错误信息。

我让同事强制关闭访问权限,删除了锁定文件,授予同事对该文件的完全权限,然后让他重试。相同的结果,减去只读错误。在表单中输入值并直接 运行 生成报告,而不是使用按钮,会得到相同的结果。我让他检查了其他数据库对象,以及所有表、基本查询、子报表和打开的子表单 "instantly",以及预期的数据和记录计数。但是,出于某种原因,每次将它们放在一起只会使 Access 崩溃。

同事正在为初始测试进行屏幕共享,所以我知道他正确地遵循了指示。我们没有尝试过,以防带宽成为问题,但没有任何改进。

我已经尝试通过 Google 和 SO 搜索 "ms access report locks/freezes/hangs" 的变体,并得到了一堆关于记录锁定的东西,我认为这不是这里的问题。如果有人可以建议更好的搜索词,我很乐意尝试。

使用的数据是机密的,所以我不愿意 post 编码,但如果解决方案有必要,我可以使用经过清理的版本。

由于文件被锁定为只读,因此以任何方式将数据写入 table 的任何计算都不会起作用。我建议您仔细检查用户对网络文件夹的安全权限。这包括 NTFS 安全性和共享文件夹安全性。

他需要对整个网络文件夹(不仅仅是数据库文件)的写入权限,因为 Access 将尝试创建 laccdb 文件并在网络文件夹中写入该文件。如果他没有对该文件夹的写入权限,则访问权限将无法编辑 laccd 文件。