将数组传递给函数/子例程时,MS Access/VBA类型不匹配

ser*_*rme 4 ms-access vba

任何人都可以向我解释为什么,在MS-Access 2007中的表单上的按钮的VBA代码中,这会给出错误"编译错误:类型不匹配:数组或用户定义的类型预期"

Private Sub Button_Click()
    Dim Arr() As Integer
    Foo (Arr())
End Sub

Private Sub Foo(Arr() As Integer)
    Me.Field.Value = "Foo"
End Sub
Run Code Online (Sandbox Code Playgroud)

但这编译好吗?

Private Sub Button_Click()
    Dim Dummy
    Dim Arr() As Integer
    Dummy = Bar (Arr())
End Sub

Private Function Bar(Arr() As Integer)
    Me.Field.Value = "Bar"
End Function
Run Code Online (Sandbox Code Playgroud)

我正在编写的函数/子例程没有返回任何内容,但我无法编译它,除非我将函数调用的返回值赋给虚拟变量,就像上面的Bar函数一样.

Fio*_*ala 5

如果您希望在参数周围使用括号,则必须使用Call,因此请跳过括号:

Private Sub Button_Click()
    Dim Arr() As Integer
    ''No brackets
    Foo Arr()
    ''Or 
    ''Call Foo(Arr())
End Sub

Private Sub Foo(Arr() As Integer)
    Me.Field.Value = "Foo"
End Sub
Run Code Online (Sandbox Code Playgroud)