设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

返回列表 发新帖
查看: 1051|回复: 6
打印 上一主题 下一主题

[其它] 不管您是否高手,都请动动脑子

[复制链接]
跳转到指定楼层
1#
发表于 2004-3-3 20:23:00 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
在ACCESS中,默认状态下当窗体失去焦点时,窗体所在的记录就会保存在相应的表中,这种情况并不是理想的。在带有子窗体的窗体中,无论是主窗体还是子窗体在发生更改并失去焦点后ACCESS就保存了数据。假如用户并不想提交当前更改就必须用代码来实现。我是这样处理的:
    1。建立两个临时表,与主窗体和子窗体的记录源表一模一样;
    2。在窗体成为当前的事件中编写代码:
        (1).清空临时表记录;
        (2).如果当前记录为新记录,不对临时表插入记录;
        (3).如果当前记录不为新记录,则将当前主窗体与子窗体所在的记录分别插如相应的临时表中;
    3.在用户分别对主窗体和子窗体进行一系列操作后;
    4.选择"保存",万事大吉,关闭窗体,一切正常.
    5.选择"取消",有两种情况:
        (1).当前记录为新记录,则在关闭窗体后在相应的两个表中删除关闭前窗体所在的记录;
        (2).当前记录不为新记录,也在窗体关闭后在相应的两个表中删除关闭前窗体所在的记录,然后将临时表中的数据分别查入相应的两个正常表中.

    从理论上讲,这种方法应该可行,也不会对数据表造成损害,但是,但是...........
我这样做以后,在实际操作中出现了谁也不会想到的情况:
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 分享淘帖 订阅订阅

点击这里给我发消息

2#
发表于 2004-3-3 20:56:00 | 只看该作者
看看黄海的例了,是否有帮助?
http://www.office-cn.net/bbs/dispbbs.asp?boardID=2&ID=1970
3#
发表于 2004-3-3 20:58:00 | 只看该作者
我收了!可是用到TreeView 控件就出问题了!
4#
 楼主| 发表于 2004-3-3 22:16:00 | 只看该作者
tmtony站长:在将焦点移到子窗体时主窗体的记录就保存了,同理,在子窗体添加或删除几条记录后焦点移到主窗体时子窗体也被保存了。最后要撤消就不行了。
5#
 楼主| 发表于 2004-3-3 22:19:00 | 只看该作者
如果只对不含子窗体的窗体用ME.undo就完全解决了,何必要那么多的代码。
6#
发表于 2004-3-4 01:46:00 | 只看该作者
关注

点击这里给我发消息

7#
发表于 2004-3-4 03:09:00 | 只看该作者
子窗体要在MDB中实现这种功能,只有使用第三方网格控件。
不过你也可试试,创建临时的recordset,然后将recordset赋给 子窗体的form的 recordset
子窗体在设计好后取消记录源,而在open事件中设置 me.recordset=临时recordset
没有试过,不知是否可行
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-11-15 20:35 , Processed in 0.109903 second(s), 31 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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