|
在ACCESS中,默认状态下当窗体失去焦点时,窗体所在的记录就会保存在相应的表中,这种情况并不是理想的。在带有子窗体的窗体中,无论是主窗体还是子窗体在发生更改并失去焦点后ACCESS就保存了数据。假如用户并不想提交当前更改就必须用代码来实现。我是这样处理的:
1。建立两个临时表,与主窗体和子窗体的记录源表一模一样;
2。在窗体成为当前的事件中编写代码:
(1).清空临时表记录;
(2).如果当前记录为新记录,不对临时表插入记录;
(3).如果当前记录不为新记录,则将当前主窗体与子窗体所在的记录分别插如相应的临时表中;
3.在用户分别对主窗体和子窗体进行一系列操作后;
4.选择"保存",万事大吉,关闭窗体,一切正常.
5.选择"取消",有两种情况:
(1).当前记录为新记录,则在关闭窗体后在相应的两个表中删除关闭前窗体所在的记录;
(2).当前记录不为新记录,也在窗体关闭后在相应的两个表中删除关闭前窗体所在的记录,然后将临时表中的数据分别查入相应的两个正常表中.
从理论上讲,这种方法应该可行,也不会对数据表造成损害,但是,但是...........
我这样做以后,在实际操作中出现了谁也不会想到的情况: |
|