2009-08-20 3 views
1

매우 간단한 문제 : 폼의 단추에서 호출 할 Public Sub (모듈에 있음)가 있습니다. 모듈에서 호출 할 함수의 이름은 GenerateKML입니다.MS Access에서 양식으로부터 Public Sub 호출하기

이 나는이 기사를 읽었습니다 :

How do I call a VBA Function into a Sub Procedure

그리고 나를 위해 노력하고 있습니다 어느 것도 제안 된 방법을 모두 시도했다. 내 코드에 문제가있을 수 있지만 코드보기 (모듈 편집) 및 '재생'버튼을 누르면 코드가 제대로 실행됩니다 (KML 파일이 만들어 짐). 내가 제시 한 두 번째 방법 (형태에서 모듈의 서브 루틴을 호출) 나는이 오류 메시지가 얻을 사용하는 경우

:

컴파일 오류

변수 나 프로 시저 예상을하지 모듈

그리고 세 번째 방법 (이벤트 프로 시저를 사용하지 않고 양식에서 서브 루틴 호출)을 사용하면 다음과 같이 나타납니다.

식에서 이벤트 속성으로 클릭을 입력했습니다 ... : 입력 한 식에 [내 DB 이름]을 찾을 수없는 함수 이름이 있습니다.

그래서 내가 실행하고 싶은 코드를 호출하는 방법에 문제가 있다고 의심됩니다.

이 내 모듈의 코드가 시작하는 방법입니다

어쩌면 당신은 당신의 코드라는 이름의 한
Option Compare Database 
Public Sub GenerateKML() 
' 
' GenerateKML Macro 
' Macro recorded 26/09/2006 by simon_a 
' Adapted and imported to Access by SAA 
' 03 aug 2007 - v3.0 - 2007 08 06 19 24 
' 

    ' DECLARE VARIABLES 
    Dim filename As String 
    Dim docname As String 

답변

4

가 내 절차와 동일 모듈. (단순한 생각)

즉 GenerateKML 하위는 GenerateKML이라는 모듈에 있습니다. 이로 인해 & 충돌로 인해 오류 메시지가 나타납니다. 당신이 당신의 하위뿐만 아니라 모듈의 GenerateKML라는 이름의 경우

+0

Lil'Monkey 정말 고마워. 그랬어. –

3

, 당신은 사용하여 호출 할 필요가 :

GenerateKML.GenerateKML arguments 

(또는 이름을 변경 한 것이 더 쉬울 것 인 다른)

+0

감사합니다 mavnn, 당신 말이 맞아요, 이름이 바뀌 었습니다. –

2

시도 mod 접두어로 모듈 이름 바꾸기 : modGenerateKML. 양식에서 모듈 이름을 참조하지 않고 공용 서브 또는 함수의 이름 만 참조하십시오.

+0

Beth에게 감사드립니다! 그랬어. –

관련 문제