子窗体不能正确与父窗体同步

本文探讨了ACCESS中子窗体同步显示错误的问题及解决方案。作者通过调整子窗体的可见性和绑定正确的关联字段解决了同步错误。文章还分享了在调试过程中的一些意外发现。

关于子窗体 ACCESS中有个很好用的功能,就是只要设置了子窗体和父窗体的关联字段,当父窗体的关联字段变化时,子窗体显示的内容就会自动同步变化。这个过程不需要编一行代码,很贴心,我也用得很顺手。

但最近我做的程序里,不知为何子窗体总是显示乱七八糟的内容,不能和父窗体的内容同步变化。具体情况是这样的:话说我的树控件的细节信息放在细节子窗体里显示,因为一个树上可能挂多种类型的细节,所以细节子窗体也有好几个,所有的细节子窗体都和主窗体的细节ID关联。当选择了某种类型的节点后,其他类型的细节子窗体就都visible变假,只有当前类型的细节子窗体可见。为了不让用户视觉上不舒服,我把这些子窗体的位置和大小都调得一模一样,互相压着,这样用户看起来只有一个窗体始终在显示细节。

出BUG的时候挺奇怪的,有个别类型的细节子窗体不能正确显示数据,其他类型则正确。大约点击十几个节点后,就又全部正确了。很奇怪的说。

最后我发现,原来是其中有一个子窗体的初始可见性我忘了设为假,所以一开始它挡在ZORDER比它大的子窗体的前面,所以有些子窗体的数据正确、有些不正确;而之后反复点击之后,这个“忘了设为假”的窗体终于也被程序设了假,之后就一切正常了。呵呵。

这种BUG的根源真是意料之外啊。幸亏我没一根筋地去跟代码,而是多做了很多次,反复观察BUG的现象。这是个好习惯,以后也要这样做!

补充1:

今天又遇到子窗体不能正确同步的问题,这回我是设置了假的主关联字段(一个未绑定的文本框),然后用设置子窗体sourceobject的方式来设置子窗体的数据源。不知为何子窗体不能正确同步,始终显示的是关联字段为3的记录。后来我断点跟踪一下,发现子窗体的主关联字段被改成了和子关联字段一样。我又在代码里强制改关联字段,报错,说这个属性的使用或设置无效。最后,我把这个文本框绑定了一个字段,就又正常了。虽然我并不真的用这个文本框显示那个字段的内容(我在代码里动态改变它),但是貌似它不关联字段,我的子窗体就不能正确关联上它。

补充2:

上面说的这个加关联字段,也不能瞎加。话说,我按上面做了之后,我的窗体一关,主窗体的第一条记录的一个字段总是莫名其妙被改掉了。可我并没有写过改这个字段的代码。后来我发现,改掉的这个字段正是我关联的这个字段,我把这个字段的数据源删为空,就一切正常了。唉。看来得这样,先装模作样地设个关联字段,然后再把关联字段删了,才能正常工作。2个小时的心血之谈啊。唉。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值