我正在尝试执行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
我已通过其myForm
属性打印出mySubForm
和.name
的名称,并且它似乎显示每个名称的正确名称。
有人能指出我在正确的方向上如何使用变量名来代替我的表单和子表单的实际名称吗?正确的语法应该是什么?
谢谢!
答案 0 :(得分:1)
删除.name
件事。他们不应该在那里:
With Forms!myForm.mySubForm.Form.RecordsetClone
...
End With
如果您要使用声明的子表单变量,那就更简单了:
With mySubForm.Form.RecordsetClone
...
End With