|
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件 ★ 免费下载 ★ ★ 使用帮助★
大家好!
我把Access数据库的表升迁到SQL数据库后,在Access客户端,使用ODBC链接表。在窗体绑定 ODBC表的字段。可能有两个以上用户同时更新同一记录,当更新记录时,Access无法提示其他用户正在更新。只在试图保存更新时,才会提示是否覆盖其他用户的更新。
我希望,在Access用户试图更改数据的时候,可以捕捉到其他用户是否在更改的信息,从而做出选择,避免同时更改相同的记录。
我想2几个办法,都没有达到我想要的效果:
方法一:在SQL的表中,增加LockID字段,用户保存正在更改的用户名。当Access发生Dirty事件(更改事件)时,先读取记录的LockID字段,如果有其他用户ID在更新,则取消更改;如果没有其他用户更新,则LockID改为当前用户ID,允许更改;更改完以后,LockID字段回复Null值。 这样带来的问题:用户可能长时间占用记录更改权限;更改无法撤销。
方法二:先把数据下到本地表,更改在单独的窗体(数据绑定本地表)执行,先更改本地表,再用按钮控件刷新到SQL数据库。这样,更改可以撤销。但是数据可能不同步:A用户下载了数据,随后B用户下载了数据,并完成更改,A用户再上传自己的更改的时候,把B用户之前的更改覆盖掉了。
我现在找不到改善的方向。我在Access、SQL数据库,都是有一定经验的,只需要各位大侠提示一下思路,让我找到一个方向。万分感谢!
|
|