Microsoft Access数据库处于不一致状态

时间:2018-11-23 06:53:12

标签: ms-access

我们有一个使用基于MS Acccess的软件的客户, 20个用户同时在前端工作。 每个用户都有自己的.mde前端,后端数据库是.accdb ... 我的问题是为什么只有此客户端数据库会不断损坏或处于“不一致状态”。我们的其他客户都没有遇到这个问题。

有任何提示或建议吗?

4 个答案:

答案 0 :(得分:1)

这是一个“已知问题”,记录在Microsoft支持文章中

Access reports that databases are in an 'inconsistent state'

本文当前包括一种变通办法,涉及在文件服务器和客户端上进行配置更改。它还说他们

  

正在测试此问题的修复程序,当我们确认可以解决该问题时将提供进一步的更新

相关文章(例如herehere)表明错误是以下原因的组合

  1. Windows Server的最新版本中引入了新的文件共享(SMB)功能“租赁”,并且
  2. 从Windows 10中删除较旧的SMB协议

答案 1 :(得分:0)

根据所使用的操作系统版本和Access版本,mde文件可能无法正常运行。如果他们具有64位版本的访问权限,并且mde被编译为32位版本,则可能无法正确识别它,但是accdb文件可以正常工作,您也可以将其锁定。

此外,如果您使用的是accdb后端,并且需要使用编译的前端,请改用accde前端,因为它们是现代的编译版本,而mde仅应在Access之前的版本中使用到2007年。

我唯一的问题是要确定用户是从网络位置运行还是在本地文件夹中运行-从网络位置运行任何Access DB前端都可能导致问题。首先将accde文件(或前端)复制到其桌面,然后从那里运行。

此外,下载后,您可以运行文件大小验证以确认整个文件都已下载,因为我已经看到wifi连接在下载过程中丢失了一部分文件,然后也导致了损坏。如果可能,将接口拆分为多个较小的文件,以使下载更加可靠。

答案 2 :(得分:0)

这1个客户端使用您的应用程序的方式也可能与您期望的不同。用户毕竟是最终的调试器。

任何具有非自动编号主键的表-如果有可能多个人在不立即输入主键值的情况下启动新记录,则可能是多用户应用程序中的原因。甚至是一个发起新记录但没有完全完成该操作并将PK字段留为空白的用户。

其他:尽管可以在使用过程中复制后端文件而不影响它-可能有一些功能良好的服务器功能可以自动复制/复制/交换文件。

答案 3 :(得分:0)

这完全为我解决了此问题(使用Windows 10、1709):

我用MDB后端文件替换了所有ACCDB后端文件。我正在将ACCDB前端文件与MDB后端文件一起使用。我在后端文件上设置了密码,但未启用文件加密。从那以后没有腐败!

要执行此操作,只需创建一个新的MDB文件并将您的后端对象传输到该新文件。我没有实现Microsoft解决方法(禁用租赁)。

或者:用DoCmd.RunSQL(和查询对象)替换任何DoCmd.OpenQuery命令(和查询对象),可减少约80%的损坏发生。