首页 > 解决方案 > 引用子表单的正确语法是什么,为什么推荐的语法会产生错误?

问题描述

我有以下两行代码:

Debug.Print Forms!DocLoader!DL_RowBox!DLR_FileName.Name
Debug.Print Forms!DocLoader!DL_RowBox.Form!DLR_FileName.Name

第二个,我在几乎所有 VBA 参考资料中都看到过,包括我输入时从 SO 建议的答案,遵循以下结构:

Debug.Print Forms![Form Name]![Subform Control Name].Form![Control Name].Name

这两行代码应该产生相同的结果。但是,除非我在设计视图中,否则推荐的第二种语法会引发错误 40036,“应用程序定义或对象定义错误”。我不能在运行时使用它,但我从未在我看过的任何参考文档或论坛帖子中看到过这个限制。无论上下文如何,第一行仅使用默认参数似乎都有效。

在第二行中,我几乎尝试了 bang 和句点的所有组合,并且我还尝试将字段名称括在括号中,但共同点是,一旦我引用“.Form”,应用程序就会抛出错误. 即使像“.Form.Caption”这样简单的东西也会引发错误。所以我想知道的是:

  1. 是否有任何其他正确的方法来引用子表单的表单属性,因为我需要这些以及它的控件
  2. 为什么第一行会正确执行,而推荐的第二行似乎不起作用?

标签: vbams-access

解决方案


运行编译器似乎已经解决了这个问题。


推荐阅读