Access 데이터베이스에서 참조 문제를 해결하는 방법

원본 KB 번호: 310803

요약

이 문서에서는 Access 데이터베이스에서 참조 사용과 관련된 문제에 대해 설명합니다.

참조 오류를 이해하려면 Access 데이터베이스에서 라이브러리를 참조하는 방법과 이러한 참조를 손상시키지 않고 대상 컴퓨터에 데이터베이스를 설치하는 데 필요한 사항을 모두 이해해야 합니다. 이 문서는 다음 주제를 요약한 것입니다.

  • Access 데이터베이스 참조 보기
  • Access에서 Microsoft Visual Basic for Applications 참조 해결
  • 참조 오류 메시지 이해
  • 개발 컴퓨터에서 참조 문제 해결
  • 데이터베이스 파일 배포
  • 참조 목록 업데이트
  • ActiveX 컨트롤이 있는 데이터베이스 파일 배포
  • 파일 다시 등록

Access 데이터베이스 참조 보기

현재 데이터베이스 참조를 보려면 다음을 수행합니다.

  1. 데이터베이스를 엽니다.
  2. Alt+F11을 눌러 Visual Basic Editor를 시작합니다.
  3. 도구 메뉴에서 참조를 클릭합니다.

Access에서 Visual Basic 참조 확인

Access는 참조 상자에 표시되는 정보에 따라 각 참조에 대한 관련 파일(예: 형식 라이브러리, 개체 라이브러리 또는 컨트롤 라이브러리)을 로드합니다. Access에서 파일을 찾을 수 없으면 다음 절차를 실행하여 파일을 찾습니다.

  1. Access는 참조된 파일이 현재 메모리에 로드되어 있는지 확인합니다.
  2. 파일이 메모리에 로드되지 않은 경우 Access는 RefLibPaths 레지스트리 키가 있는지 확인하려고 시도합니다. 키가 있으면 Access는 참조와 이름이 같은 명명된 값을 찾습니다. 일치하는 항목이 있으면 명명된 값이 가리키는 경로에서 참조를 로드합니다.
  3. 그런 다음 Access는 다음 위치에서 이 순서대로 참조된 파일을 검색합니다.
    1. 응용 프로그램 폴더(Msaccess.exe 파일의 위치).
    2. 파일 메뉴에서 열기를 클릭하면 표시되는 현재 폴더입니다.
    3. 운영 체제 파일이 실행 중인 Windows 또는 Winnt 폴더입니다.
    4. Windows 또는 Winnt 폴더 아래의 시스템 폴더.
    5. 운영 체제에서 직접 액세스할 수 있는 PATH 환경 변수의 폴더입니다.
  4. Access에서 파일을 찾을 수 없으면 참조 오류가 발생합니다.

참조 오류 메시지 이해

누락된 파일 또는 데이터베이스에 사용된 버전과 다른 버전이 있는 파일과 관련된 몇 가지 오류 메시지가 있습니다. 대부분의 경우 Microsoft 기술 자료에서 특정 오류 메시지에 대한 문서를 검색한 다음 문서의 단계에 따라 오류를 해결할 수 있습니다. 어떤 경우에는 종속 파일이 기본 파일과 올바르게 일치하지 않습니다.

다음 목록은 나타날 수 있는 몇 가지 참조 오류 메시지에 대해 설명합니다. 그러나 목록에 가능한 참조 오류 메시지가 모두 포함되어 있지는 않습니다.

  • "ObjectName 개체의 MethodName 메서드 실패"

    일반적으로 잘못된 DAO(데이터 액세스 개체) DLL(동적 연결 라이브러리) 파일과 같은 프로그래밍 형식 라이브러리에 문제가 있는 경우 이 오류 메시지가 나타날 수 있습니다. Microsoft 기술 자료에서 이 오류 메시지의 다양한 형태를 설명하는 문서를 검색할 수 있습니다.

  • "용도 표현식에서 사용할 수 없는 기능"

    프로그래밍 유형 라이브러리에 문제가 있거나 코드가 정확한 라이브러리를 구체적으로 호출하지 않고 파일이 동일한 기능을 포함하는 파일보다 참조 목록에서 더 낮은 우선순위로 나열되는 경우 이 오류 메시지가 나타날 수 있습니다. 예를 들어 DAO 코드가 DAO 라이브러리보다 높은 우선 순위에 나열된 ADO(ActiveX Data Object) 라이브러리와 함께 사용되는 경우입니다. 양식이나 보고서에 ActiveX 컨트롤이 포함된 경우에도 이 오류 메시지가 나타날 수 있습니다.

  • "프로젝트 또는 라이브러리를 찾을 수 없"

    Access가 참조 목록에서 파일을 찾을 수 없는 경우 이 오류 메시지가 나타날 수 있습니다. 종종 파일은 참조 대화 상자에서 누락으로 플래그가 지정됩니다. 파일이 개발 컴퓨터에는 있지만 대상 컴퓨터에는 없는 경우가 있습니다.

  • "변수가 정의되지 않음" 또는 "사용자 정의 유형이 정의되지 않음"

    사용자 수준 보안 마법사를 사용하여 기본적으로 포함된 라이브러리 이외의 라이브러리를 참조하는 데이터베이스를 보호하는 경우 이러한 오류 메시지 중 하나가 나타날 수 있습니다. 예를 들어, 보안되지 않은 데이터베이스에 있던 라이브러리에 대한 참조는 보안된 새 데이터베이스에서 자동으로 생성되지 않습니다.

  • "런타임 오류 5", "잘못된 프로시저 호출 또는 인수", "이 기호가 포함된 라이브러리는 현재 프로젝트에서 참조되지 않습니다." 또는 "이 기호가 포함된 라이브러리는 현재 프로젝트에서 참조되지 않으므로 기호가 정의되지 않습니다"

    누락으로 플래그가 지정된 데이터베이스, 형식 라이브러리 또는 개체 라이브러리에 대한 참조가 있는 경우 이러한 오류 메시지 중 하나가 나타날 수 있습니다.

  • "ActiveX 구성 요소가 개체를 만들 수 없습니다"

    이 오류 메시지는 반드시 ActiveX 컨트롤이 관련되어 있음을 의미하지는 않습니다. 예를 들어, ActiveX 구성 요소인 DAO는 DAO 자동화 서버를 시작할 수 없기 때문에 개체를 만들 수 없습니다. 종종 원인은 프로그램에 대해 참조된 기능을 제공하는 DLL이 등록되지 않았거나 잘못 등록되었기 때문입니다.

개발 컴퓨터에서 참조 문제 해결

비어 있는 새 데이터베이스를 만든 다음 다른 데이터베이스 파일에서 개체를 가져오면 코드 또는 ActiveX 컨트롤이 기본적으로 데이터베이스에 포함되지 않은 참조에 의존하는 경우 참조 문제가 발생할 수 있습니다. Access 2000 데이터베이스에 대한 기본 참조는 다음과 같습니다.

  • Visual Basic for Applications
  • Microsoft Access 9.0 개체 라이브러리
  • OLE 자동화
  • Microsoft ADO(ActiveX Data Objects) 2.1 라이브러리

원본이 다른 Access 2000 데이터베이스인 경우 참조가 일치하는지 확인. 소스가 이전 버전의 Access에 있는 경우 DAO 3.5 또는 이전 버전이 사용 중일 수 있습니다. 그러나 Access 2000은 기본적으로 DAO 3.5를 제공하지 않습니다. ADO 2.1 라이브러리(있는 경우)에 대한 참조를 제거하고 DAO 3.6 개체 라이브러리에 대한 참조를 추가해 보십시오.

이전 버전의 Access에서 데이터베이스를 변환했고 데이터베이스에 Utility.mda 파일에 대한 참조가 포함되어 있는 경우 대부분의 경우 이 참조가 호출하는 함수가 Access 2000의 기본 참조에 포함되어 있으므로 이 참조를 제거할 수 있습니다. 이전 버전의 DAO에 대한 참조가 있는 경우 DAO 3.6이 이러한 기능을 해결할 수 있으므로 이러한 참조를 제거할 수도 있습니다.

라이브러리에 대한 참조를 추가하려면:

  1. 데이터베이스를 엽니다.
  2. Alt+F11을 눌러 Visual Basic Editor를 시작합니다.
  3. 도구 메뉴에서 참조를 클릭합니다.
  4. 사용 가능한 참조에서 라이브러리 이름 옆에 있는 확인란을 클릭하여 선택한 다음 확인을 클릭합니다.

라이브러리에 대한 참조를 제거하려면:

  1. 데이터베이스를 엽니다.
  2. Alt+F11을 눌러 Visual Basic Editor를 시작합니다.
  3. 도구 메뉴에서 참조를 클릭합니다.
  4. 사용 가능한 참조에서 라이브러리 이름 옆에 있는 확인란을 클릭하여 선택을 취소한 다음 확인을 클릭합니다.

데이터베이스 파일 배포

두 가지 기본 데이터베이스 파일 배포 방법이 있습니다. 개발 컴퓨터에서 대상 컴퓨터로 파일을 복사하거나 패키지 및 배포 마법사를 사용하여 설치 패키지를 만들 수 있습니다.

개발 컴퓨터에서 대상 컴퓨터로 파일을 복사하면 데이터베이스 파일만 복사됩니다. 참조 목록에 나열된 모든 파일이 개발 컴퓨터와 대상 컴퓨터의 동일한 상대 위치 및 올바른 버전 수준에서 사용 가능한지 수동으로 확인해야 합니다.

Access에서 런타임 응용 프로그램을 개발할 때 일부 운영 체제 파일은 런타임 응용 프로그램과 함께 배포되어야 합니다. 이러한 파일의 패키징은 Microsoft Office 2000 Developer의 패키지 및 배포 마법사 구성 요소에 의해 자동으로 수행됩니다. 경우에 따라 포함된 파일의 버전은 개발 컴퓨터에 설치되어 운영 체제 파일을 수정했을 수 있는 다른 응용 프로그램에 따라 다릅니다.

특정 지침을 따르면 일반적으로 런타임 응용 프로그램을 설치할 때 사용하는 파일 버전이 대상 컴퓨터의 파일과 충돌하지 않습니다. 지침은 다음과 같습니다.

  1. 모든 컴퓨터에서 Access 데이터베이스를 개발합니다.
  2. 하드 디스크를 다시 포맷하고 해당 운영 체제, Office 및 Office 2000 Developer의 가장 초기 버전만 설치된 컴퓨터 환경을 만듭니다. 이 컴퓨터에서 패키지 및 배포 마법사를 실행하여 응용 프로그램의 런타임 버전을 만듭니다. 이렇게 하면 파일의 개정 수준이 모든 대상 컴퓨터에서 작동합니다.
  3. 하드 디스크를 다시 포맷하고 운영 체제만 설치된 컴퓨터 환경을 만. 이 환경에서 런타임 애플리케이션을 테스트하십시오.
    • 응용 프로그램이 성공적으로 실행되지 않으면 응용 프로그램 자체에 문제가 있는 것입니다. 응용 프로그램을 배포하기 전에 문제를 식별하고 수정해야 합니다.
    • 응용 프로그램이 테스트 컴퓨터에서는 성공적으로 작동하지만 대상 컴퓨터에서는 작동하지 않으면 응용 프로그램이 아니라 대상 컴퓨터에 문제가 있음을 알 수 있습니다. 대상 컴퓨터에서 가능한 원인(비호환성 또는 손상된 파일)을 식별하고 수정해야 합니다.

참조 목록 새로 고침

참조 문제가 ActiveX 컨트롤과 관련된 경우 참조 목록을 새로 고쳐 문제를 해결할 수 있습니다. 참조 목록을 새로 고치려면:

  1. Visual Basic Editor의 도구 메뉴에서 참조를 클릭합니다.
  2. 참조 대화 상자에서 아직 선택하지 않은 참조를 클릭하여 선택하고 선택한 참조를 기록한 다음 확인을 클릭합니다.
  3. 도구 메뉴에서 참조를 다시 클릭합니다.
  4. 참조 선택을 취소하려면 클릭한 다음 확인을 클릭합니다.

ActiveX 컨트롤이 있는 데이터베이스 파일 배포

ActiveX 컨트롤에는 디자인 타임 라이선스와 런타임 라이선스라는 두 가지 유형의 라이선스가 있습니다.

  • 디자인 타임 라이선스를 사용하면 Office 2000 Developer에서 사용이 허가된 ActiveX 컨트롤을 Access 데이터베이스의 양식과 보고서에 삽입할 수 있습니다.
  • 런타임 라이선스를 사용하면 Office 2000 Developer가 설치되지 않은 컴퓨터의 Access 데이터베이스에 있는 ActiveX 컨트롤을 사용할 수 있지만 런타임 라이선스를 사용하면 라이선스가 부여된 새 ActiveX 컨트롤을 삽입할 수 없습니다. 런타임 라이센스를 설치하려면 대상 컴퓨터의 레지스트리에 있는 컨트롤에 대한 라이센스를 작성하는 패키지 및 배포 마법사를 사용하여 ActiveX 컨트롤을 배포.

디자인 보기에서 모듈을 연 다음 도구 메뉴에서 참조를 클릭할 때 볼 수 있는 누락 플래그는 대상 컴퓨터의 공통 대화 상자 컨트롤에 대한 참조가 개발 컴퓨터에서 데이터베이스 파일의 소스와 일치하지 않음을 나타냅니다.

배포 가능한 Common Dialog 컨트롤을 설치하지 않고 데이터베이스 파일을 배포하는 경우 컨트롤의 참조가 Missing으로 플래그가 지정될 수 있습니다. 또는 배포할 수 없는 컨트롤이 대상 컴퓨터에 이미 설치된 경우 "이 ActiveX 컨트롤을 사용하는 데 필요한 라이선스가 없습니다"라는 오류 메시지가 나타날 수 있습니다.

데이터베이스 파일이 런타임 응용 프로그램의 일부인 경우에도 대상 컴퓨터에 이미 설치된 배포할 수 없는 컨트롤이 런타임 응용 프로그램에서 제공하는 컨트롤보다 최신 버전인 경우 "이 ActiveX 컨트롤을 사용하는 데 필요한 라이선스가 없습니다" 오류 메시지가 나타날 수 있습니다. 이 문제는 설치 프로그램이 파일의 이후 버전을 동일한 파일의 이전 버전으로 덮어쓰지 않기 때문에 발생할 수 있습니다.

파일 다시 등록

레지스트리에 올바르게 등록되지 않은 파일이 참조 목록에 있을 수 있습니다. 이 문제가 의심되는 경우 다음 단계에 따라 파일을 다시 등록.

  1. Microsoft Windows NT 4.0에서는 시작을 클릭하고 찾기를 가리킨 다음 파일 또는 폴더를 클릭하거나 Windows 2000에서는 시작을 클릭하고 검색을 가리킨 다음 파일 및 폴더용을 클릭합니다.
  2. 이름 지정 상자 또는 이름이 지정된 파일 및 폴더 검색 상자에 regsvr32.exe를 입력합니다.
  3. 찾는 위치 상자에서 하드 디스크의 루트(보통 C:)를 클릭합니다.
  4. 하위 폴더 포함 확인란이 아직 선택되어 있지 않으면 클릭하여 선택한 다음 지금 찾기 또는 지금 검색을 클릭합니다.
  5. 파일을 찾은 후 시작, 실행을 차례로 클릭한 다음 열기 상자에 있는 모든 항목을 삭제합니다.
  6. 검색 결과 창에서 Regsvr32.exe 파일을 열기 상자로 드래그합니다.
  7. 2~6단계를 반복합니다. 이번에는 FileName.dll을 검색합니다. 여기서 FileName은 재등록할 파일의 이름입니다.
  8. FileName.dll 파일이 Regsvr32.exe 파일과 함께 열기 상자에 있으면 확인을 클릭합니다.
  9. Access에서 문제가 여전히 존재하는지 테스트합니다.

컴퓨터에 Regsvr32.exe 파일이 없으면 다른 컴퓨터에서 파일을 확인합니다. 파일을 사용할 수 없는 경우 Microsoft 웹 사이트에서 파일을 얻을 수 있습니다.

참고

참조를 조정한 후 모든 모듈을 컴파일하는 것을 잊지 마십시오. 모든 모듈을 컴파일하려면 모듈이 열려 있는 상태에서 디버그 메뉴에서 데이터베이스 컴파일을 클릭하십시오. 모듈이 컴파일되지 않으면 해결되지 않은 추가 참조가 있을 수 있습니다.