2017-12-27 4 views
0

양식/하위 양식 이름을 성공하지 않고 함수에 전달하려고합니다. 이 함수는 하위 폼에 대한 각각의 .Control을 단계별로 실행하고 간단한 검색 세트 & 작업을 수행합니다. 내 코드는 Form/Subform 이름이 하드 코딩 된 상태로 예상대로 작동합니다. 나는 좀 더 일반적인 접근법을 찾고있다.VBA 액세스 : 양식/하위 폼 이름을 함수로 전달 하시겠습니까?

함수 호출시 따옴표가 있거나없는 형식 불일치 오류가 발생합니다.

예 : 적절한 구문

'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

_ "함수 호출시 형식 불일치 오류가 발생합니다"_ 일반적으로 전체를 인용하는 것이 가장 좋습니다. –

답변

2

귀하의 하위 호출 이상한 모든 종류입니다 :

하여 오류의 원인은 따옴표입니다. 현재 함수에 문자열을 전달하고 있습니다. "forms![someForm]![someSubForm]"

반환 값을받지 못하면 괄호를 사용하지 말아야합니다.

또한 Call 키워드는 오래 전에 사용되지 않습니다.

그리고 당신은 가능성이 양식 객체를 전달하려는, 그리고

이처럼 서브를 호출 시도 하위 폼 컨트롤 개체 : (이전 코드 한 줄에이 많은 코멘트를 한 절대로

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

)

+0

죄송합니다. 예제는 세부 사항을 어지럽히 지 않으면 서 내 의도를 설명하려는 약한 시도였습니다. :) –

+0

에릭, "AuditChanges forms! [someForm]! [someSubForm] .Form"(따옴표 제외)은 원하는대로 작동합니다. - 고맙습니다. –

+0

좋습니다. 가끔은 약간 비판적이다. 반점 ('call', 괄호)은 아마도 오류의 원인이 아닐 것이다. 최소한의 예는 종종 어렵습니다, 악마는 세부 사항에 있습니다 :) –

관련 문제