我们继承了一个相当大的 Access DB,它有一些非常奇怪(且令人不安)的行为:对数据库的一些更新丢失了。我们可以做些什么来避免这种情况?Access 中是否有任何设置可以提供更好的事务控制?
以下是更多细节:
- 我们有一个具有写入权限的访问用户(由非常有限数量的用户共享 - 目前只有我,其他人正在休假)。
- 我们有另一个访问用户,它被许多人使用,只有读取访问权限。
- 写入用户对数据进行了一些更改。
- 离开并重新进入表格和/甚至应用程序后,更改似乎已“提交”。
- 一段时间后(通常是一夜之间),更改会丢失,数据会恢复到旧值。
什么会导致这种行为?
我们的理论是,这是由 Access 中一些奇怪的事务控制引起的。只读用户对查询或表单中使用的数据获得某种“排他锁”。一旦用户离开该查询/表单,Access 会确保它仍在数据库中。如果同时写入用户更改了数据,这些更改将在只读用户离开查询/表单时恢复,从而导致更新丢失。这有意义吗?这是 MS-Access 的已知问题吗?
此外,我们对如何避免这个问题感兴趣。这是 Access 中固有的东西,只能通过切换到具有更好事务控制的“真实”数据库来避免吗?(从技术角度来看,这很好;但当然,这将是我们在项目的这个阶段宁愿避免的紧急任务。)
感谢您的任何意见,如果需要额外信息,请告诉我。