문제

나는 이것이 누군가에게 간단한 질문이라는 것을 알고 있지만, 나는 그들이 무엇인지 이해하지 못했기 때문에 기능 모듈을 전혀 사용한 적이 없습니다.

그래서 나는 이것을 사용할 수있는 많은 것들을 가지고 있습니다 (중복성을 줄이면). 그러나 양식에서 서브 (버튼 클릭과 같은) 절차를 어떻게 호출하는지 알고 싶습니다.

나는 이것을 시도했다 ...

Sub Command_Click()
    Call "pptCreator"
End Sub

나는 그것이 꽤 나쁘다는 것을 알고 있지만, 이것을 절차로 가져 오는 방법을 모른다.

도움이 되었습니까?

해결책

Microsoft Access에서 물건을 호출 할 수있는 여러 가지 방법은 다음과 같습니다.

모듈에서 양식 하위 또는 함수를 호출하려면

당신이 부르는 양식의 서브는 다음과 같이 공개되어야합니다.

Public Sub DoSomething()
  MsgBox "Foo"
End Sub

다음과 같이 서브를 호출하십시오.

Call Forms("form1").DoSomething

전화를 걸기 전에 양식을 열어야합니다.

이벤트 절차에 전화하려면 양식 내에서 공개 절차를 호출 하고이 공개 절차 내에서 이벤트 절차를 호출해야합니다.

양식의 모듈로 서브 루틴을 호출하려면

Public Sub DoSomethingElse()
  MsgBox "Bar"
End Sub

... 이벤트 절차에서 직접 전화하십시오.

Call DoSomethingElse

이벤트 절차를 사용하지 않고 양식에서 서브 루틴을 호출하려면

원하는 경우 실제로 컨트롤 아래에서 이벤트 절차를 만들지 않고도 Form Control의 이벤트에 기능을 바인딩 할 수 있습니다. 이렇게하려면 먼저 다음과 같은 서브 대신 모듈에 공개 기능이 필요합니다.

Public Function DoSomethingElse()
  MsgBox "Bar"
End Function

그런 다음 속성 창의 ONCLICK 이벤트에 [이벤트 절차]를 넣는 대신 양식에 버튼이있는 경우 다음을 말하십시오.

=DoSomethingElse()

버튼을 클릭하면 모듈에서 공개 기능을 호출합니다.

절차 대신 함수를 호출합니다

서브를 호출하는 경우 다음과 같습니다.

Call MySub(MyParameter)

그런 다음 함수를 호출하면 다음과 같습니다.

Result=MyFunction(MyFarameter)

여기서 결과는 함수에 의해 반환 된 유형의 변수입니다.

노트: 항상 통화 키워드가 필요하지는 않습니다. 대부분의 경우, 당신은 다음과 같이 서브를 호출 할 수 있습니다.

MySub(MyParameter)

다른 팁

pptcreator가 같은 파일의 함수/절차 인 경우 아래와 같이 호출 할 수 있습니다.

call pptCreator()

하위 절차 호출 - 3 웨이 기술

시각적 기본 언어의 일부이든 절차가 있거나 시각적 기본 언어의 일부이라면 사용할 수 있습니다. 절차를 사용하는 것도 그것을 호출하는 것으로 지칭됩니다.

절차를 호출하기 전에 먼저 사용하려는 코드 섹션을 찾아야합니다. 간단한 절차를 호출하려면 이름을 입력하십시오. 예는 다음과 같습니다.

Sub CreateCustomer()
    Dim strFullName As String

    strFullName = "Paul Bertrand Yamaguchi"

msgbox strFullName
End Sub

Sub Exercise()
    CreateCustomer
End Sub

절차 이름을 사용하여 호출하는 것 외에도 호출 키워드와 앞에있을 수도 있습니다. 예는 다음과 같습니다.

Sub CreateCustomer()
    Dim strFullName As String

    strFullName = "Paul Bertrand Yamaguchi"
End Sub

Sub Exercise()
    Call CreateCustomer
End Sub

통화 키워드의 유무에 관계없이 절차를 호출 할 때, 선택적으로 이름의 오른쪽에 개방 및 닫는 괄호를 입력 할 수 있습니다. 예는 다음과 같습니다.

Sub CreateCustomer()
    Dim strFullName As String

    strFullName = "Paul Bertrand Yamaguchi"
End Sub

Sub Exercise()
    CreateCustomer()
End Sub

절차 및 액세스 수준

가변 액세스와 마찬가지로 프로 시저에 대한 액세스는 액세스 레벨에 의해 제어 될 수 있습니다. 절차는 개인 또는 공개로 만들 수 있습니다. 프로 시저의 액세스 수준을 지정하려면 개인 또는 공개 키워드에 앞서 있습니다. 예는 다음과 같습니다.

Private Sub CreateCustomer()
    Dim strFullName As String

    strFullName = "Paul Bertrand Yamaguchi"
End Sub

글로벌 변수에 적용된 규칙은 동일합니다.

개인 : 프로 시저가 비공개로 이루어지면 동일한 모듈의 다른 절차에서 호출 할 수 있습니다. 외부 모듈의 절차는 그러한 절차에 액세스 할 수 없습니다.

또한 절차가 비공개 일 때 매크로스 대화 상자에 이름이 나타나지 않습니다.

공개 : 대중으로 생성 된 절차는 동일한 모듈의 절차와 다른 모듈의 절차에 의해 호출 될 수 있습니다.

또한 절차가 공개적으로 생성 된 경우 매크로스 대화 상자에 액세스 할 때 이름이 나타나고 거기에서 실행할 수 있습니다.

인수를 전달할 때 모듈의 절차가 유용하고 일반적으로 시작됩니다.

예를 들어:

Public Function DoSomethingElse(strMessage As String)  
    MsgBox strMessage
End Function

이제 strmessage라는 문자열 변수와 함께 전달되는 메시지를 표시 할 수 있습니다.

양식의 새 버튼에 함수를 추가하려면 : (그리고 매크로를 사용하여 기능을 호출하지 마십시오)

함수를 만든 후 (myFunctionName () 함수) 및 양식 디자인보기에 있습니다.

  1. 새 버튼을 추가하십시오 (이전 버튼을 재 할 수 있다고 생각하지 않습니다. 확실하지 않습니다).
  2. 버튼 마법사 창이 열리면 취소를 클릭하십시오.
  3. 버튼 속성 이벤트 탭 - 클릭 - 필드로 이동하십시오.
  4. 해당 필드 드롭 다운 메뉴에서 선택 : 이벤트 절차.
  5. 이제 드롭 다운 메뉴 옆에 버튼을 클릭하면 ... 새로운 비주얼 기본 창 양식의 비공개 하위.
  6. 해당 개인 하위 유형에서 : MyFunctionName을 호출하십시오
    다음과 같이 보일 것입니다.

개인 하위 명령 23_click ()

myFunctionName을 호출하십시오

종료 서브

  1. 그런 다음 저장하십시오.
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top