Access 2013 32 位在 Windows 7 中崩溃,但在 Server 2012 R2 中不会崩溃

Access 2013 32 位在 Windows 7 中崩溃,但在 Server 2012 R2 中不会崩溃

我将 97 版 Access 数据库转换为 32 位版 Access 2013。该数据库现在在 Windows 7 中崩溃,但在 Windows 2012 R2 中运行正常。

如果我将数据库复制到电脑上,第一次打开数据库时它不会崩溃,但以后每次都会崩溃。

此查询将始终导致 Windows 7 中的 Access 崩溃,但不会导致 Windows Server 2012 中的 Access 崩溃:

UPDATE BatchHdr SET BatchHdr.RecCount = Val(Nz(DCount("[EntryID]","BatchDtl","[BatchID] = " & [BatchID]),0)), BatchHdr.Errors = Val(Nz(DCount("[EntryID]","BatchDtl","[Er] is not null and [BatchID]=" & [BatchID]),0)), BatchHdr.Warnings = Val(Nz(DCount("[EntryID]","BatchDtl","[Warning] is not null and [BatchID]=" & [BatchID]),0)), BatchHdr.NeedsChecked = IIf(DCount("[BatchID]","BatchDtl","[Checked] = false and [BatchID] = " & [BatchID])>0,True,False) WHERE (((BatchHdr.Status)<>"Exported" And (BatchHdr.Status)=[Forms]![BatchHeader]![MyStatus])) WITH OWNERACCESS OPTION;

我不知道如何让这个数据库在 Windows 7 中工作。我尝试在兼容模式下运行 Access,它最初不会崩溃,但打开 1-2 次后就会崩溃。

由于使用了 32 位 vba 代码,因此必须使用 Access 32 位。

我收到一条错误消息:

APP NAME: MSACCESS.EXE
FAULT MODULE: OLEAUT32.DLL
FAULT MODULE VERSION: 6.1.7601.18679
EXCEPTION CODE: C0000005

答案1

听起来这可能是 Windows 7 无法处理的缓存问题。

我找到了一个指南这里这解释了如何在关闭时清除访问缓存。

  1. 单击文件 > 选项 > 当前数据库
  2. 滚动到“缓存 Web 服务和 Sharepoints 表”
  3. 选中“使用与 Microsoft Access 2010 及更高版本兼容的缓存格式”
  4. 勾选“关闭时清除缓存”
  5. 点击“确定”
  6. 重新启动 Access 以使更改生效。

这应该可以防止 Access 在打开或重新打开时崩溃。

相关内容