访问VBA:将表单/子表单名称传递给函数?

时间:2017-12-27 15:31:19

标签: ms-access access-vba

我试图将表单/子表单名称传递给函数但没有成功。该功能逐步通过每个.Control在子窗体上执行一组简单的查找和放大。动作。我的代码按预期工作,表单/子表单名称是硬编码的;我正在寻找更通用的方法。

在函数调用中获取类型不匹配错误,包含和不包含引号。

示例:

'Function Call
  call AuditChanges("forms![someForm]![someSubForm]")

'Audit Function
Sub AuditChanges(thisForm as form)
    Dim ctl As Control
    Dim strTest as string

    For each ctl in thisForm.controls
        strTest = ctl.Value
        'do some stuff
    Next ctl

end sub

有关正确语法传递表单/子表单信息的任何建议吗?

谢谢!

1 个答案:

答案 0 :(得分:2)

你的子电话是各种奇怪的:

错误的可能原因是报价。您当前正在将字符串传递给包含"forms![someForm]![someSubForm]"

的函数

此外,如果您没有收到返回值,则不应使用括号(因此从不在调用子语句时使用括号)。

此外,Call关键字很久以前就已被弃用。

您可能希望传递表单对象,而不是子表单控件对象

尝试像这样调用你的子:

AuditChanges forms![someForm]![someSubForm].Form

(以前在一行代码上从未有过这么多评论)