【至急】关于父窗体刷新子窗体的问题
本人是Access新手,现在在开发一个AccessVBA小工具。工具的主要功能就是检索数据,导入数据,导出数据等更能。
现在在检索数据时遇到了一个非常奇怪的问题,希望论坛里的高人帮忙指点一下。
父窗体上布局了一些检索条件和检索按钮,根据检索条件检索出来的数据插入到
一个中间表上,由另一个子窗体将这个中间表的数据内容显示出来。
注:中间表的数据结构和检索时参照的业务表的结构完全一致,在这里建立中间表的
原因是因为客户希望在子窗体可以进行数据修改,但是修改的内容不立刻更新业务表,
通过点击保存按钮的时点才将修改的内容提交到数据库。所以当时就建立了这样一个
中间表(说白了其实就是一个临时表),作为窗体和业务表之间的纽带。
我的程序处理(检索按钮Click事件的程序逻辑)大概是这样的。
1.首先将中间表的数据进行逻辑删除
在中间表和业务表的表定义里追加了个字段【删除标志】
这一步骤上将中间表中的数据的【删除标志】置为【1:已删除】
注:因为这一部分是上回检索出来的检索数据,所以已经不需要了。
2.将1的修改内容进行事务提交
3.根据新的检索条件检索出来的数据插入到那个中间表里
插入是通过INSERT INTO 中间表 SELECT * FROM 业务表 WHERE 检索条件的形式完成的。
4.将3的修改内容进行事务提交
5.通过ADODB的Recordset.open将中间表的数据查询出来看了一下,结果是正确的。
6.将第5步骤的查询语句赋给子窗体的RecordSource属性,并用Me.子窗体空间名.Requery将子窗体的数据刷新了一下,
但是结果不是我想要的那种结果,只有点击F5或者Shift+F9或者再重新点击检索按钮子窗体上才会反映出正确的结果。
我感觉有可能是因为我进行了两次事务提交的缘故,但是怎么去解决还没有什么好的方法,希望论坛里的高人帮忙指点一下,在这里表示感谢啦!
[ 本帖最后由 baggio790507 于 2012-11-25 19:01 编辑 ]