Microsoft MVP성태의 닷넷 이야기
오류 유형: 121. Access DB에 대한 32bit/64bit OLE DB Provider 관련 오류 [링크 복사], [링크+제목 복사]
조회: 83022
글쓴 사람
정성태 (techsharer at outlook.com)
홈페이지
첨부 파일
 
(연관된 글이 3개 있습니다.)
Access DB에 대한 32bit/64bit OLE DB Provider 관련 오류

예를 들어, x64 운영체제에서 64비트 Office 2010 제품을 설치하고 Visual Studio의 데이터베이스 연결 관리자에서 Access DB에 대해 연결하려고 하면 다음과 같은 오류가 발생할 수 있습니다.

access_db_error_1.png

"
The 'Microsoft.ACE.OLEDB.12.0' provider is not registered on the local machine.
"


오류 원인은 간단합니다. 64비트 Office 제품군을 설치하면서 64비트용 OLE DB 제공자는 시스템에 설치되었지만, 32비트 프로그램인 Visual Studio에서는 64비트용 OLE DB 제공자를 (사용할 수도 없을뿐더러) 찾을 수 없기 때문에 발생하는 것입니다.

이를 확인하기 위해서, 해당 액세스 파일에 대해 UDL 파일을 만들고 각각 32비트/64비트 ODBC 제어판 애플릿을 구동해 보면 알 수 있습니다.

다음과 같이 64비트용에서는 정상적으로 애플릿이 뜨지만,

"C:\Windows\system32\rundll32.exe" "C:\Program Files\Common Files\System\Ole DB\oledb32.dll",OpenDSLFile C:\temp\test.udl


32비트용으로 실행하면 Visual Studio에서와 비슷한 오류 화면이 뜹니다.

"C:\Windows\syswow64\rundll32.exe" "C:\Program Files (x86)\Common Files\System\Ole DB\oledb32.dll",OpenDSLFile C:\temp\test.udl


access_db_error_2.png

"
Provider cannot be found. Ensure that the provider has been installed properly.
"


물론, 이를 해결하기 위해서는 Access DB에 대한 32비트 버전의 OLE DB 제공자(aceoledb.dll)를 설치해야 하는데, Office 2007용의 파일을 설치해도 정상적으로 동작하므로 다음의 경로에서 다운로드 받을 수 있습니다.

2007 Office System Driver: Data Connectivity Components
; https://www.microsoft.com/en-us/download/confirmation.aspx?id=13255

참고로, 각각의 aceoledb.dll 파일경로는 다음과 같습니다.

64비트: "C:\Program Files\Common Files\Microsoft Shared\OFFICE14\ACEOLEDB.DLL"
32비트: "C:\Program Files (x86)\Common Files\microsoft shared\OFFICE12\ACEOLEDB.DLL"




만약, Office 2010용의 파일을 설치하고 싶다면 다음의 경로에서 다운로드 받을 수 있습니다.

Microsoft Access Database Engine 2010 Redistributable 
; http://www.microsoft.com/downloads/en/details.aspx?familyid=C06B8369-60DD-4B64-A44B-84B371EDE16D&displaylang=en

위의 경로에서 AccessDatabaseEngine.exe 파일을 다운로드 받아서 실행하는 경우, 이미 Office 2010 64비트 버전이 설치되어 있다면 오류가 발생하면서 더 이상 설치 진행이 되지 않습니다.

access_db_error_3.png

"
You cannot install the 32-bit version of Microsoft Access Database Engine 2010 because you currently have 64-bit Office products installed. If you want to install 32-bit Microsoft Access Database Engine 2010, you will first need to remove the 64-bit installation of Office products. After uninstalling the following product(s), rerun setup in order to install 32-bit version of Microsoft Access Database Engine 2010:
Microsoft Office SharePoint Designer 2010, Microsoft Office Professional Plus 2010, Microsoft Office Visio 2010
"


"Microsoft Office SharePoint Designer 2010, Microsoft Office Professional Plus 2010, Microsoft Office Visio 2010" 3가지 제품을 제거해야 한다니... 말이 안되죠. ^^;

다행히 이에 대해서는 아래의 글에서 손쉬운 해결책을 제시해 주고 있습니다.

Microsoft Access Database Engine 2010 Redistributable
; http://codefluententities.wordpress.com/2011/01/20/microsoft-access-database-engine-2010-redistributable/

즉, 명령행에서 "AccessDatabaseEngine.exe /passive"라고 실행해 주면 되는 것입니다. 최종적으로 aceoledb.dll의 경로는 다음과 같이 정리될 수 있습니다. ^^

     64비트: "C:\Program Files\Common Files\Microsoft Shared\OFFICE14\ACEOLEDB.DLL"
32비트 2007: "C:\Program Files (x86)\Common Files\microsoft shared\OFFICE12\ACEOLEDB.DLL"
32비트 2010: "C:\Program Files (x86)\Common Files\microsoft shared\OFFICE14\ACEOLEDB.DLL"





파이썬 Access DB 사용 방법
; https://blog.naver.com/cjinnnn/223047261231



[이 글에 대해서 여러분들과 의견을 공유하고 싶습니다. 틀리거나 미흡한 부분 또는 의문 사항이 있으시면 언제든 댓글 남겨주십시오.]

[연관 글]






[최초 등록일: ]
[최종 수정일: 3/20/2023]

Creative Commons License
이 저작물은 크리에이티브 커먼즈 코리아 저작자표시-비영리-변경금지 2.0 대한민국 라이센스에 따라 이용하실 수 있습니다.
by SeongTae Jeong, mailto:techsharer at outlook.com

비밀번호

댓글 작성자
 



2012-07-10 02시50분
[김상록] 32bit office 2010을 사용하던중 64비트 기반의 app를 만들다 에러가 나서 검색하다 보니 알게 되었네요
위에 말씀하신것처럼 2010용 64비트 버전을 설치해서 app에서 발생하던 오류는 해결했습니다.
그런데 64비트 AccessDatabaseEngine_x64.exe 를 설치하고 난 후 excel파일(xlsx)을 열려고 하면

"개체 라이브러리(ㅣ)중 하나가 빠졌거나 손상되었습니다. 설치 프로그램을 실행하여 다시 설치 하십시오."

라는 팝업 메세지가 나옵니다. 확인을 누르면 구성요소 설치를 진행합니다.
구성요소 구성이 완료된 후 정상적으로 엑셀파일이 열립니다.

문제는 엑셀을 종료하고 파일을 새로 열때마다 팝업->구성요소 구성이 진행된다는 것입니다.

저만 그런건가요? 혹시 이 문제에 대해서 알고 계신가요?
[guest]
2012-07-12 01시00분
"김상록" 님이 겪은 현상이 맞습니다. 덧글을 보고 저도 설치를 한 후 엑셀 파일을 열었더니 동일한 현상이 발생했습니다. 일단, 이에 관한 어떠한 해결책도 웹에서 검색되는 것이 없어서 방법을 찾는 것이 쉽진 않을 것 같습니다. (아니면, 마이크로소프트 측에 이슈 제기를 직접하는 것이 좋을 것 같습니다.)

참고로, 저는 그 현상 때문에 다시 '프로그램 추가/삭제'에서 지우는 걸로 끝냈습니다.

한 가지... 그냥 시도해볼만한 방법이 있다면, "C:\Program Files\Common Files\Microsoft Shared\OFFICE14\ACEOLEDB.DLL" 64비트 파일을 직접 등록하는 것이 어떨까 싶습니다. 관련해서는 레지스트리 설정에 불과할 것이기 때문에, 그 부분만 잘 맞춰주면 해결되지 않을까 싶습니다. (나중에 시간나면 저도 한번 이에 대해서 살펴봐야겠습니다. ^^)
정성태
2013-03-07 02시07분
[김동운] 위처럼
C:\Windows\syswow64\rundll32.exe" "C:\Program Files (x86)\Common Files\System\Ole DB\oledb32.dll",OpenDSLFile C:\temp\test.udl
실행없이
udl 파일 더블클릭 하면 바로 연결이 되게 할수는 없나요??
[guest]
2013-03-07 11시44분
udl 파일을 더블클릭해서도 확인할 수 있습니다. 단지, 더블 클릭하는 경우에는 64비트/32비트 입맛에 맞게 띄우는 것이 쉽지 않겠지요.
정성태
2014-12-05 06시47분
[태수] 님짱
[guest]
2015-07-22 05시00분
[asdf] 개체 라이브러리(ㅣ)중 하나가 빠졌거나 손상되었습니다 이문제 해결 안될까요? 이거원..

직접 등록이라는게 어떤걸 말씀하는것인지 잘모르겠네요..비쥬얼스튜디오 참조에 걸라는 말씀이신건지.
[guest]
2016-02-26 02시29분
[최철] 약간 오래 된글이지만 깔끔하네요.
cmd 창에서 AccessDatabaseEngine.exe /passive 실행하여 '시스템이 지정된 프로그램을 실행할 수 없습니다.
나올경우에는 바로가기 만들어서 속성 - 대상에서 /passive 추가하시면 됩니다
[guest]
2017-05-22 08시22분
[박현식] 우와~ 감사합니다. 현재 32비트 VS에서 64비트 엑셀을 읽으려고하니 오류가 발생하는데... 위처럼 명령어로 해결이 되네요.
[guest]
2019-07-11 04시08분
[zxcv] 많이 늦었지만 혹시 검색으로 찾지 못하신 분들을 위해 64bit 기반 os에서 32bit office 2010를 사용하실 때

64비트 AccessDatabaseEngine_x64.exe 를 설치하고 난 후 엑셀파일(xlsx)을 열려고 하면
"개체 라이브러리(ㅣ)중 하나가 빠졌거나 손상되었습니다. 설치 프로그램을 실행하여 다시 설치 하십시오."
팝업 메시지가 나오시는 분들을 위한 해결 방법을 올립니다.

AccessDatabaseEngine_x64.exe를 설치하시기 전 regedit(레지스트리 편집기)를 여시고
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Office\14.0\Common\FilesPaths 경로로 들어가셔서 mso.dll 항목이 없음을 확인합니다.
다음 알려주신 대로 cmd 창에서 AccessDatabaseEngine_64.exe /passive로 수동설치하시고 regedit에서 아까의 경로로 다시 들어가보면
mso.dll 항목이 생성되어 있을 겁니다. 이게 존재하는 한 엑셀파일(xlsx)을 열 때마다 라이브러리 손상 메시지가 뜨므로 지워주셔야 합니다.

지운 후에는 엑셀파일이 정상적으로 열리며 추가적인 문제는 발견하지 못했습니다.
[guest]
2019-11-05 06시07분
[[손님2]] 위에 내용과 관련 하여 설치 하고 cmd 에서 수동 설치 하였습니다.
그런데 C# 에서 열려고 하니 오류가 다른 오류가 바뀌었습니다.

System.RunTime.InteropServices.SEHException:외부 구성 요서에서 예외를 Throw했습니다.
라는 오류가 발생 하더라고요..

검색 해봐도 나오지 않고 .. 어떻게 해결해 나가야 할지..
막막 합니다..
감사합니다.
[guest]
2019-11-06 01시26분
겪으신 현상이 맞을 겁니다. 이 글의 댓글들을 읽어보세요.
정성태

... 16  17  18  19  20  [21]  22  23  24  25  26  27  28  29  30  ...
NoWriterDateCnt.TitleFile(s)
13102정성태7/19/20226594.NET Framework: 2033. .NET Core/5+에서는 구할 수 없는 HttpRuntime.AppDomainAppId
13101정성태7/15/202215451도서: 시작하세요! C# 10 프로그래밍
13100정성태7/15/20227973.NET Framework: 2032. C# 11 - shift 연산자 재정의에 대한 제약 완화 (Relaxing Shift Operator)
13099정성태7/14/20227836.NET Framework: 2031. C# 11 - 사용자 정의 checked 연산자파일 다운로드1
13098정성태7/13/20226112개발 환경 구성: 647. Azure - scale-out 상태의 App Service에서 특정 인스턴스에 요청을 보내는 방법 [1]
13097정성태7/12/20225508오류 유형: 817. Golang - binary.Read: invalid type int32
13096정성태7/8/20228283.NET Framework: 2030. C# 11 - UTF-8 문자열 리터럴
13095정성태7/7/20226359Windows: 208. AD 도메인에 참여하지 않은 컴퓨터에서 Kerberos 인증을 사용하는 방법
13094정성태7/6/20226064오류 유형: 816. Golang - "short write" 오류 원인
13093정성태7/5/20226984.NET Framework: 2029. C# - HttpWebRequest로 localhost 접속 시 2초 이상 지연
13092정성태7/3/20227935.NET Framework: 2028. C# - HttpWebRequest의 POST 동작 방식파일 다운로드1
13091정성태7/3/20226731.NET Framework: 2027. C# - IPv4, IPv6를 모두 지원하는 서버 소켓 생성 방법
13090정성태6/29/20225890오류 유형: 815. PyPI에 업로드한 패키지가 반영이 안 되는 경우
13089정성태6/28/20226339개발 환경 구성: 646. HOSTS 파일 변경 시 Edge 브라우저에 반영하는 방법
13088정성태6/27/20225451개발 환경 구성: 645. "Developer Command Prompt for VS 2022" 명령행 환경의 폰트를 바꾸는 방법
13087정성태6/23/20228423스크립트: 41. 파이썬 - FastAPI / uvicorn 호스팅 환경에서 asyncio 사용하는 방법 [1]
13086정성태6/22/20227828.NET Framework: 2026. C# 11 - 문자열 보간 개선 2가지파일 다운로드1
13085정성태6/22/20227891.NET Framework: 2025. C# 11 - 원시 문자열 리터럴(raw string literals)파일 다운로드1
13084정성태6/21/20226528개발 환경 구성: 644. Windows - 파이썬 2.7을 msi 설치 없이 구성하는 방법
13083정성태6/20/20227125.NET Framework: 2024. .NET 7에 도입된 GC의 메모리 해제에 대한 segment와 region의 차이점 [2]
13082정성태6/19/20226170.NET Framework: 2023. C# - Process의 I/O 사용량을 보여주는 GetProcessIoCounters Win32 API파일 다운로드1
13081정성태6/17/20226222.NET Framework: 2022. C# - .NET 7 Preview 5 신규 기능 - System.IO.Stream ReadExactly / ReadAtLeast파일 다운로드1
13080정성태6/17/20226852개발 환경 구성: 643. Visual Studio 2022 17.2 버전에서 C# 11 또는 .NET 7.0 preview 적용
13079정성태6/17/20224587오류 유형: 814. 파이썬 - Error: The file/path provided (...) does not appear to exist
13078정성태6/16/20226630.NET Framework: 2021. WPF - UI Thread와 Render Thread파일 다운로드1
13077정성태6/15/20226973스크립트: 40. 파이썬 - PostgreSQL 환경 구성
... 16  17  18  19  20  [21]  22  23  24  25  26  27  28  29  30  ...