【发布时间】:2017-06-29 14:02:19
【问题描述】:
因此,Access 中的记录锁定非常糟糕。我不能使用内置的记录锁定,因为它锁定记录的“页面”而不是单个记录(我尝试更改使用记录级锁定的设置,但它仍然锁定页面而不是仅仅锁定一条记录),但即使我可以让它工作,它也不能解决我的问题,因为在用户开始对表单进行更改之前,记录不会锁定。
问题是,当两个人打开相同的记录时,他们可以开始进行更改并同时保存(从而覆盖之前的更改)。更糟糕的是,表单上有链接到其他表(以 ID 为键)的列表框,如果它们都打开相同的记录,它们对这些表所做的更改会被随后的任何更改覆盖。
长话短说,我需要确保两个人不可能同时打开同一条记录(无论他们是否对其进行了任何编辑) .
为此,我在表中添加了一个字段,指示记录是否已被用户锁定。当他们打开一个表单时,它会在字段中设置他们的姓名,其他尝试打开该记录的用户会收到一条通知,表明它已被锁定。问题是,这个“锁”不是瞬时的。其他用户需要几秒钟才能“检测到”该记录已被锁定,因此如果两个人几乎同时尝试打开同一条记录,这将允许他们都打开它。我已将事务应用到设置锁的 UPDATE 语句,但它仍然留下一个短窗口,其中锁不会“占用”并且两个人可以打开相同的记录。
那么,有没有一种方法可以使 UPDATE 即时(以便所有其他用户立即看到它的结果),或者更好的是一种在 Access 多用户环境中锁定记录的强大而全面的方法?
【问题讨论】: