Microsoft MVP성태의 닷넷 이야기
오류 유형: 121. Access DB에 대한 32bit/64bit OLE DB Provider 관련 오류 [링크 복사], [링크+제목 복사],
조회: 95952
글쓴 사람
정성태 (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분
겪으신 현상이 맞을 겁니다. 이 글의 댓글들을 읽어보세요.
정성태

... 91  92  93  94  [95]  96  97  98  99  100  101  102  103  104  105  ...
NoWriterDateCnt.TitleFile(s)
11593정성태7/8/201820180Math: 40. GeoGebra 기하 (17) - 각의 복사파일 다운로드1
11591정성태7/7/201819179Math: 39. GeoGebra 기하 (16) - 삼각형의 방심과 방접원파일 다운로드1
11590정성태7/7/201818956Math: 38. GeoGebra 기하 (15) - 삼각형의 수심파일 다운로드1
11589정성태7/7/201818568.NET Framework: 787. object로 형변환된 인스턴스를 원래의 타입 인자로 제네릭 메서드를 호출하는 방법 [2]파일 다운로드1
11588정성태7/7/201820117디버깅 기술: 116. windbg 분석 사례 - ASP.NET 웹 응용 프로그램의 CPU 100% 현상 (3)
11587정성태7/5/201820543.NET Framework: 786. ASP.NET - HttpCookieCollection을 다중 스레드에서 사용할 경우 무한 루프 현상
11586정성태7/5/201818969Math: 37. GeoGebra 기하 (14) - 삼각형의 무게 중심파일 다운로드1
11585정성태7/5/201819668Math: 36. GeoGebra 기하 (13) - 삼각형의 외심과 외접하는 원파일 다운로드1
11584정성태7/5/201818946Math: 35. GeoGebra 기하 (12) - 삼각형의 내심과 내접하는 원파일 다운로드1
11583정성태7/5/201819579.NET Framework: 785. public으로 노출되지 않은 다른 어셈블리의 delegate 인스턴스를 Reflection으로 생성하는 방법파일 다운로드1
11582정성태7/5/201825556.NET Framework: 784. C# - 제네릭 인자를 가진 타입을 생성하는 방법 [1]파일 다운로드1
11581정성태7/4/201822594Math: 34. GeoGebra 기하 (11) - 3대 작도 불능 문제의 하나인 임의 각의 3등분파일 다운로드1
11580정성태7/4/201819615Math: 33. GeoGebra 기하 (10) - 직각의 3등분파일 다운로드1
11579정성태7/4/201818239Math: 32. GeoGebra 기하 (9) - 임의의 선분을 한 변으로 갖는 정삼각형파일 다운로드1
11578정성태7/3/201818336Math: 31. GeoGebra 기하 (8) - 호(Arc)의 이등분파일 다운로드1
11577정성태7/3/201818072Math: 30. GeoGebra 기하 (7) - 각의 이등분파일 다운로드1
11576정성태7/3/201821113Math: 29. GeoGebra 기하 (6) - 대수의 4칙 연산파일 다운로드1
11575정성태7/2/201821581Math: 28. GeoGebra 기하 (5) - 선분을 n 등분하는 방법파일 다운로드1
11574정성태7/2/201820092Math: 27. GeoGebra 기하 (4) - 선분을 n 배 늘이는 방법파일 다운로드1
11573정성태7/2/201818951Math: 26. GeoGebra 기하 (3) - 평행선
11572정성태7/1/201817964.NET Framework: 783. C# 컴파일러가 허용하지 않는 (유효한) 코드를 컴파일해 테스트하는 방법
11571정성태7/1/201819479.NET Framework: 782. C# - JIRA에 등록된 Project의 Version 항목 추가하는 방법파일 다운로드1
11570정성태7/1/201820212Math: 25. GeoGebra 기하 (2) - 임의의 선분과 특정 점을 지나는 수직선파일 다운로드1
11569정성태7/1/201819029Math: 24. GeoGebra 기하 (1) - 수직 이등분선파일 다운로드1
11568정성태7/1/201831203Math: 23. GeoGebra 기하 - 컴퍼스와 자를 이용한 작도 프로그램 [1]
11567정성태6/28/201820927.NET Framework: 781. C# - OpenCvSharp 사용 시 포인터를 이용한 속도 향상파일 다운로드1
... 91  92  93  94  [95]  96  97  98  99  100  101  102  103  104  105  ...