我无法确定以下示例的行为方式。
作品:
Debug.Print Forms!Form1![Subform1]!control1
不起作用:
Debug.Print Forms!Form1![Subform1].control1
有错误:
运行时错误“ 438”:
对象不支持此属性或方法
乍一看,我只是假设.control1
正在访问属性Subform1
而不是控件本身,因此为什么会有错误是有道理的。
但是,将这些用于示例时,这种推理似乎并不适用:
Debug.Print Forms!Form1![Subform1].Form.control1
Debug.Print Forms!Form1!Subform1.Form.control1
结果截图:
对我来说,这些示例也看起来像我正在访问的form对象的a.CHAT_MESSAGE_ID
属性Chat
,但是我没有收到任何错误消息,并且它们可以正常工作。
为什么这两个示例仍然有效Debug.Print Forms!Form1![Subform1].control1
?
在许多情况下,Access表单对象使您可以访问其控件并记录源字段,就好像它们是表单的属性一样。这意味着当您在该表单中编辑VBA代码时可以使用Intellisense,因此可以使用或引用名为control1的控件的值。Me.control1
Me.control1.Value
该功能也是为什么Debug.Print Forms!Form1!Subform1.Form.control1
可以起作用。但是Debug.Print Forms!Form1!Subform1.control1
失败,因为Subform1是控件而不是表单对象,并且不包含名为control1的属性。(这是错误消息所抱怨的。)
如果您的子表单SourceObject
是表或查询而不是实际的表单对象,则情况可能会变得更加复杂。我自己还没有研究过这些变体的细节,但是如果您确实想使用SubformControl.Form.property模式,建议您仔细研究它们。
我只是使用类似的东西Forms!Form1!Subform1!control1
,这对我来说不太混乱。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句