尝试使用变量名访问表单和子表单时收到无效的限定符错误?
Posted
技术标签:
【中文标题】尝试使用变量名访问表单和子表单时收到无效的限定符错误?【英文标题】:Receiving Invalid Qualifier error when attempting to access a form and subform using variable names? 【发布时间】:2018-03-14 01:59:00 【问题描述】:我正在尝试执行RecordsetClone
,但我不断收到一个
限定符无效
编译错误。
目前我有一个表单,其中有一个包含Datasheet
的子表单。我创建了一个函数来传递表单的名称以及子表单的名称:
Public Sub testModel(nameOfForm As String, nameOfSubform As String)
Dim myForm As Access.Form
Dim mySubForm As Access.SubForm
If formIsOpen(nameOfForm) = False Then
DoCmd.OpenForm nameOfForm, acNormal
End If
Set myForm = Forms(nameOfForm)
Set mySubForm = myForm.Controls(nameOfSubform )
With Forms!myForm.name.mySubForm.name.Form.RecordsetClone
...
End With
End Sub
表格和子表格使用变量的原因是因为不同的表格和子表格会使用这个函数。
错误肯定与语法Forms!myForm.name.mySubForm .name.Form.RecordsetClone
有关,我很确定它不正确。
我也试过了:
Forms!myForm.name.mySubForm.Form.RecordsetClone
如果我替换它,直接使用表单名称和子表单名称,没有问题,即:
Forms!frmParentForm.frmChildSubForm.Form.RecordsetClone
我已经通过其.name
属性打印出myForm
和mySubForm
的名称,它似乎显示了每个名称的正确名称。
有人能指出我如何准确地使用变量名来代替我的表单和子表单的实际名称吗?正确的语法应该是什么?
谢谢!
【问题讨论】:
【参考方案1】:删除那些.name
的东西。他们不应该在那里:
With Forms!myForm.mySubForm.Form.RecordsetClone
...
End With
如果你要使用声明的子表单变量,那就更简单了:
With mySubForm.Form.RecordsetClone
...
End With
【讨论】:
以上是关于尝试使用变量名访问表单和子表单时收到无效的限定符错误?的主要内容,如果未能解决你的问题,请参考以下文章
我在尝试打开/显示新表单时有时会收到 ArgumentException 参数无效,为啥?