>

우리는 사무실에서 Access 2016을 실행하고 있으며, 컴파일 할 수없는 매크로와 보고서가있는 데이터베이스가 있습니다. 다양한 컴파일 오류가 발생합니다 (예 :

Application.Volatile --> Method or data member not found
If Me.Filter = "" Then --> Invalid use of Me keyword
Me.PageBreak1.Visible --> Method or data member not found 
etc.

이 코드가 컴파일되지 않으면 (현재/2016 년) 실행됩니까? 즉 어딘가에 오래된 컴파일 된 바이너리가 있습니까? 이러한 컴파일 오류를 유발하는 코드를 주석 처리하면 여전히 작동하는 것을 깨뜨릴 위험이 있습니까? ... 아니면작동 할 수 없어코드를 컴파일 할 수 없다고 언급해도 안전합니까?


  • 답변 # 1

    양식, 객체 및 데이터베이스 자체에는 컴파일되지 않은 변형이 컴파일 오류에 부딪히면 응용 프로그램이 제대로 작동하지 않는 것보다 정직하게 응용 프로그램 충돌을 일으킬 가능성이 높은 컴파일 된 코드가 포함될 수 있습니다. 또한 Access는 다른 부분에서 발생하는 컴파일 오류를 발생시키지 않으면 서 응용 프로그램의 부분을 컴파일 할 수 있습니다. 그러나 컴파일 오류는 이유가 있습니다.

    코드는 Option Explicit 에서 잘 작동 할 수 있지만  컴파일하기 위해 제거하면 작성자가 의도 한대로하지 않을 수 있습니다.

    정직하게, 코드를 이해하는 것이 무언가를 주석 처리 할 때 코드에 영향을 줄 수있는 유일한 방법입니다. 예를 들어 If Me.Filter = "" Then 를 주석 처리하면 , 당신은 Else 를 확인해야합니다  그리고 ElseIf  진술과 해당 End If 를 주석 처리 그렇지 않으면 다른 컴파일 오류가 발생합니다.

    그러나 pyzwyz를 주석 처리  이 코드는 Excel에서 복사되는 코드의 나머지 부분이므로 Access는 항상 다시 계산하기 때문에 전혀 아무 것도 수행하지 않습니다.

    따라서, 모든 기존 코드를 읽고 이해하십시오 (또는 시행 착오를 채택하십시오).

  • 답변 # 2

    Application.Volatile
    
    

    코드가 양식 또는 보고서에 속하는 경우 실패 할 수 없습니다.

    따라서도구, 참조메뉴로 이동하여 MISSING으로 표시된 참조를 확인하십시오.

    발견 된 경우이를 수정하십시오.

    실행되지 않는 코드를 주석 처리하는 것이 항상 안전합니다.

    에릭이 옳다;휘발성 방법은 Excel에서 남은 것처럼 보이므로 코드를 컴파일하기 전에 더 큰 정리 프로젝트에 직면 할 수 있습니다.

    If Me.Filter = "" Then --> Invalid use of Me keyword

  • 이전 c# - 소수점이 많은 숫자 문자열 목록 정렬
  • 다음 sql - 하위 테이블에 중첩 테이블을 전달하는 방법