设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

123下一页
返回列表 发新帖
查看: 2004|回复: 20
打印 上一主题 下一主题

[窗体] 多机操作,打开同一记录的冲突问题,如何解决好(高手看一下)

[复制链接]
跳转到指定楼层
1#
发表于 2008-8-21 10:42:15 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
(如附图)窗体数据输入“是”,原有记录通过查询窗体打开。出库表有一字段“审核”(是/否)。窗体按钮“审核”、“解除审核”处理相关表(如产品表库存字段、客户表的应付款字段),“审核”后窗体锁定,不能再改数据,“解除审核”后可恢复。所以还不是窗体属性“记录锁定”的问题。

多机操作,可能A、B两个前台同时打开一条记录,

A方式:
窗体数据操作(主表更改、删除,子表增、删、改)之前,先检测出库表的“审核”字段,决定是否能操作。处理好象蛮繁琐。

B方式:加一张AAA表,记录打开窗体记录的情况,防止A、B前台同时操作同一记录。

打开窗体(新记录还要多几句代码)
if AAA表里有记录 then
窗体功能按钮全部锁定
else
在AAA表里加记录,正常打开
end if

离开记录,或删除记录
if 本记录在AAA表里添加的 then
删除AAA表里的记录
end if

因为有可能窗体意外关闭,AAA表里的记录没有删除,还得给用户一个能手工删除的窗体,当然得做得象那么回事。

我想用B方式,还有其它的方式吗?

[ 本帖最后由 tz-chf 于 2008-8-21 10:46 编辑 ]

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 分享淘帖 订阅订阅
2#
发表于 2008-8-21 11:24:39 | 只看该作者
哈哈,楼主的B方式就是你指点我的方式,原来你的问题和我基本一样
我的B方式是这样的
1.建一临时表temp,只有一字段ID,ID=0(表示未操作)
2.在操作窗体打开事件中判断ID
if id =0 then
窗体可操作
update temp 表,让ID=1(表示操作中)

else
窗体不可操作
end if

3.在操作窗体关闭事件中
update temp 表,让ID=0(恢复到原来状态)

如果有人指出有更好方法,我们也可以学习一下.
3#
发表于 2008-8-21 11:56:24 | 只看该作者
但如果在同一时间有多人操作,也可能会有冲突
4#
发表于 2008-8-21 11:57:07 | 只看该作者
这东西不错啊,虽然没有更好的思路,只好顶一下以示关注
5#
 楼主| 发表于 2008-8-21 12:37:36 | 只看该作者
原帖由 ui 于 2008-8-21 11:56 发表
但如果在同一时间有多人操作,也可能会有冲突


就是为了解决这种可能才这么麻烦,同一时间只能有一个人有可能操作数据。
6#
发表于 2008-8-21 13:29:38 | 只看该作者
不会吧这么巧吧,都在同一时间打开,总有先后的
7#
发表于 2008-8-21 13:29:42 | 只看该作者
理论上应该不会出现同时操作的情况,什么事情总有个流程的,只要控制好流程即可
8#
发表于 2008-8-21 13:52:12 | 只看该作者
没发现A方式有什么复杂之处呀?

五个事件:主表更新前、删除前,子表插入前、删除前、更新前 中写代码:
if dlookup("[审核]","出库表","[出库id]=" & me.出库id)=true then Cancel=true
9#
 楼主| 发表于 2008-8-21 13:55:26 | 只看该作者
原帖由 su_xx 于 2008-8-21 13:29 发表
不会吧这么巧吧,都在同一时间打开,总有先后的

不是同一时间点,是两个前台都打开。。。
10#
 楼主| 发表于 2008-8-21 14:07:11 | 只看该作者
原帖由 hi-wzj 于 2008-8-21 13:52 发表
没发现A方式有什么复杂之处呀?

五个事件:主表更新前、删除前,子表插入前、删除前、更新前 中写代码:
if dlookup("[审核]","出库表","[出库id]=" & me.出库id)=true then Cancel=true


更新前如果cancel=true,还得undo。如果另一前台删除了,或双方都更新数据,还会有点莫名其妙呢。

我用B吧,第一个打开的正常操作,后打开的功能都无效。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|站长邮箱|小黑屋|手机版|Office中国/Access中国 ( 粤ICP备10043721号-1 )  

GMT+8, 2024-5-23 18:41 , Processed in 0.110595 second(s), 34 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表