Office中国论坛/Access中国论坛
标题:
读写整合后窗体的内容
[打印本页]
作者:
小小白菜
时间:
2018-11-1 09:33
标题:
读写整合后窗体的内容
最近在用做一个小东东。即把所有窗体都在主界面的窗体控件中显示出来,不再像传统的独立显示,给人感觉窗体很乱。昨天在测试新功能时突遇一bug,即主窗体上不通读写其窗体控件所显示窗体的控件,怎么样,很绕吧。
一般显示其他窗体指定控件内容时用“forms!窗体名!控件名”即可,而在此案中该方法无效,然后就电话骚扰王站了,通过他的指导此bug修复到了正常状态。
最后再描述一下前后写法对比:
原写法: forms!窗体名!窗体控件名!要显示的窗体名!控件名----->报错
新写法: forms!窗体名!窗体控件名.form.控件名----->正确
因为通过窗体的SourceObject控制显示其他窗体时是以子窗体形式完成的,所以要显示的窗体此时充当了子窗体的角色,而在类似这种用法时子窗体名是不会出现的,所以用"forms!窗体名!窗体控件名!要显示的窗体名!控件名"会报错。
[groupid=322]ACC应用开发心得交流[/groupid]
作者:
admin
时间:
2018-11-1 10:35
附:在Access主窗体上读写Access子窗体对象
http://www.office-cn.net/book/childform/168.html
作者:
tmtony
时间:
2018-11-1 10:42
好示例,赞一下!
作者:
roych
时间:
2018-11-1 14:32
白菜的理解有所偏颇。非要用叹号表达式也不是不可以的。由于内置的是child控件,因此是不可以直接这样写(如果不是child控件,而是普通窗体,倒是没问题的):
forms!窗体名!窗体控件名!要显示的窗体名!控件名
child控件不能视为窗体,而是视为控件。因此一旦需要读取child控件绑定的某个控件的值,就需要使用form(即返回到父级),再进行引用。即:
forms!窗体名!窗体控件名!form!要显示的窗体名!控件名
附上相应代码和附件
Private Sub Command0_Click()
Me.Form!Main_fm.SourceObject = "frm_f1"
'Me.Main_fm.SourceObject = "frm_f1"
End Sub
Private Sub Command1_Click()
Me.Form!Main_fm.SourceObject = "frm_f2"
'Me.Main_fm.SourceObject = "frm_f2"
End Sub
Private Sub Command11_Click()
MsgBox Forms!frm_Main!Main_fm.Form!Text7
'MsgBox Me.Main_fm.Form.Text7
End Sub
复制代码
[attach]62920[/attach]
作者:
GOODWIN
时间:
2021-10-13 16:05
学习
欢迎光临 Office中国论坛/Access中国论坛 (http://www.office-cn.net/)
Powered by Discuz! X3.3