2012-06-20 3 views
4

누구나 설명 할 수 있습니까? MS-Access 2007의 폼에있는 VBA 코드에서 "컴파일 오류 : 형식이 일치하지 않습니다. 배열 또는 사용자 정의 유형이 필요합니다. "배열을 함수/서브 루틴으로 전달할 때 MS Access/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 

그러나이 컴파일은 정상입니까?

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 

난 아무것도 반환하지 않습니다 쓰고 있어요 함수/서브 루틴,하지만 난 바 기능처럼, 더미 변수에 내 함수 호출의 반환 값을 할당하지 않는 한 나는 컴파일을 얻을 수 없다 위. 당신이 매개 변수 주위에 괄호를 사용하려면

답변

5

, 당신은 전화를 사용하기 때문에 괄호를 생략해야합니다

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 
+0

내가 서브 루틴을 호출하는 방법에 좀 더 읽어해야 할 것 같습니다. 감사. – serme

관련 문제