Microsoft Access - Windows 7/Office 2013 和 Windows 10/Office 365 之间不兼容

Microsoft Acess - incompatibility between Windows 7/Office 2013 and Windows 10/Office 365

我们有一个办公室员工共享的小型 MS Access 数据库。最近公司把我的电脑升级到Windows10和Office 365,现在我用数据库的时候有时会导致其他用Windows7和Office 2013的用户不能用,我没有对数据库结构或编程或任何内容进行任何更改。

当其他用户在我使用过数据库后尝试打开它时,他们看到的一些症状是:当他们第一次打开它时出现一个小的闪烁 window,必须在中单击两次表单中的文本框使光标出现,并在尝试涉及 VBA 代码的操作时导致数据库崩溃(给出错误消息并打开 VBA window)。

你知道会发生什么吗?这是一个已知的问题?有没有什么好的方法来修复它(除了让每个人都在同一个操作系统上或者可能拆分数据库,我真的不想尝试)? (我尝试恢复到数据库的备份,这解决了问题,直到我在其中一个表中输入更多数据,然后问题再次出现。)

真的 不应该同时有不同 Windows/Office 版本的用户在同一个前端工作。

Access 仅存储已编译代码的单个副本,至少引用了它自己的库。此副本仅与相同主要版本的 Access 兼容。

如果您有两个不同版本的 Access 处理同一个文件,则需要不断地重新编译代码,这会导致延迟、可能的怪异行为以及可能的 VB 项目损坏。

拆分数据库,并确保前端不在 Access 引用的任何 DLL 的不同版本之间共享(或者,理想情况下,根本不共享)。不同版本的 Office 是一个常见的罪魁祸首,不同的 Windows 版本不太常见。

您是否使用任何其他 Office 功能(Word、Excel、Outlook)访问文件?如果是这样,当您在 Office 365 中打开它时,它 link 对这些产品的较新版本的引用打破了对任何拥有旧版本的人的引用。

解决这个问题的唯一方法是拆分数据库并为每个版本的 Access 使用不同的前端。他们仍然可以共享相同的数据(后端)。

拆分数据库并不复杂。只需制作两个数据库副本。在一个(前端)删除所有表和查询,然后 link 从另一个(后端)删除它们。您将有一些冗余可以稍后在后端清理(例如,所有 forms/reports 都可以从后端删除),但除此之外就是全部了。