vba - 引用子表单的正确语法是什么,为什么推荐的语法会产生错误?
问题描述
我有以下两行代码:
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”这样简单的东西也会引发错误。所以我想知道的是:
- 是否有任何其他正确的方法来引用子表单的表单属性,因为我需要这些以及它的控件
- 为什么第一行会正确执行,而推荐的第二行似乎不起作用?
解决方案
运行编译器似乎已经解决了这个问题。
推荐阅读
- wpf - 使用转换器时,绑定到日期时间字符串格式的 WPF 文本框不起作用
- unix - Unix 根据文件中的第一个值创建目录,然后将文件从同一文件中列出的完整路径复制到该目录
- php - 我在生成 PDF 时遇到问题,我想在我的 PDF 中添加卢比符号但无法生成它,我正在使用 FPDF
- ios - XCode - 发生内部错误
- javascript - D3 树:编辑树节点数据
- javascript - 初级 JQuery 切换类
- javascript - 在 Ajax 回调中删除一个表行,但 Ajax 不会超过 readyState 1
- java - Java.util.Date 未正确转换为 Java.time.LocalDate
- apache-spark - 数据框数据插入 MySQL 表后的架构更改
- list - 输出因子列表的函数