用于调用子表单的公共函数的VBA语法,其中子表单是控件变量?

时间:2015-05-21 00:52:01

标签: vba ms-access access-vba subform

我试图让表单调用子表单的函数,并且不确定我应该使用什么语法。我的尝试如下。

在表格中:

Dim ctl As Control
For Each ctl In Me.Form
    If ctl.ControlType = acSubform And InStr(ctl.Name, "Magnets") > 0 And ctl.Name <> "UnscheduledMagnets" Then
        'THE LINE BELOW DOESN'T WORK
        Call ctl.Form.Initialize2(CalendarArray(0, 1), CalendarArray(0, 0), strQuery, CInt(Mid(ctl!Name, 1, 1)))
    End If
Next ctl

在子表单中:

Public Sub Initialize2(intDay As Integer, intDate As Long, strQuery As String, intDivision As Integer)
    'Details not important since the function isn't even being called
End Sub

谢谢!

2 个答案:

答案 0 :(得分:0)

试试这个

Form_NameOfYourSubform.Initialize2(CalendarArray(0, 1), CalendarArray(0, 0), strQuery, CInt(Mid(ctl!Name, 1, 1)))
End If

答案 1 :(得分:0)

显然它不起作用导致我自己的愚蠢...我的语法没问题,但是我的一个参数引用了ctl!Name,一个名为Name的表单控件,它不存在,而是ctl.Name,这是子表单的名称。希望我可以对我原来的帖子投票评论作为我的问题的答案,但我不能。