Microsoft MVP성태의 닷넷 이야기
오류 유형: 121. Access DB에 대한 32bit/64bit OLE DB Provider 관련 오류 [링크 복사], [링크+제목 복사],
조회: 83310
글쓴 사람
정성태 (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)
1798정성태11/4/201424802오류 유형: 256. 이벤트 로그 - The WinHTTP Web Proxy Auto-Discovery Service service entered the stopped state. [1]
1797정성태11/4/201411516오류 유형: 255. 이벤트 로그 - The Adobe Flash Player Update Service service entered the stopped state.
1790정성태10/22/201412495오류 유형: 254. NETLOGON Service is paused on [... AD Server...]
1789정성태10/22/201414101오류 유형: 253. 이벤트 로그 - The client-side extension could not remove user policy settings for '...'
1787정성태10/22/201424268오류 유형: 252. COM 개체 등록시 0x8002801C 오류가 발생한다면?
1785정성태10/22/201414532오류 유형: 251. 이벤트 로그 - Load control template file /_controltemplates/TaxonomyPicker.ascx failed [1]
1782정성태10/21/201413765오류 유형: 250. 이벤트 로그 - Application Server job failed for service instance Microsoft.Office.Server.Search.Administration.SearchServiceInstance
1780정성태10/15/201417539오류 유형: 249. The application-specific permission settings do not grant Local Activation permission for the COM Server application with CLSID
1779정성태10/15/201413235오류 유형: 248. Active Directory에서 OU가 지워지지 않는 경우
1778정성태10/10/201412408오류 유형: 247. The Netlogon service could not create server share C:\Windows\SYSVOL\sysvol\[도메인명]\SCRIPTS.
1777정성태10/10/201415327오류 유형: 246. The processing of Group Policy failed. Windows attempted to read the file \\[도메인]\sysvol\[도메인]\Policies\{...GUID...}\gpt.ini
1776정성태10/10/201412584오류 유형: 245. 이벤트 로그 - Name resolution for the name _ldap._tcp.dc._msdcs.[도메인명]. timed out after none of the configured DNS servers responded.
1775정성태10/9/201413214오류 유형: 244. Visual Studio 디버깅 (2) - Unable to break execution. This process is not currently executing the type of code that you selected to debug.
1764정성태9/30/201415372오류 유형: 243. 파일 삭제가 안 되는 경우 - The action can't be comleted because the file is open in System
1757정성태9/23/201412410오류 유형: 242. Lync로 모임 참여 시 소리만 들리지 않는 경우 - 두 번째 이야기
1755정성태9/22/201427270오류 유형: 241. Unity Web Player를 설치해도 여전히 설치하라는 화면이 나오는 경우 [4]
1753정성태9/22/201413969오류 유형: 240. Lync로 세미나 참여 시 소리만 들리지 않는 경우 [1]
1747정성태9/19/201421663오류 유형: 239. psexec 실행 오류 - The system cannot find the file specified.
1743정성태9/16/201414869오류 유형: 238. 설치 오류 - Failed to get size of pseudo bundle
1734정성태8/13/201413303오류 유형: 237. Windows Media Player cannot access the file. The file might be in use, you might not have access to the computer where the file is stored, or your proxy settings might not be correct.
1729정성태8/11/201412101오류 유형: 236. SqlConnection - The requested Performance Counter is not a custom counter, it has to be initialized as ReadOnly.
1727정성태8/6/201413636오류 유형: 235. SignalR 오류 메시지 - Counter 'Messages Bus Messages Published Total' does not exist in the specified Category. [2]
1726정성태8/6/201413145오류 유형: 234. IIS Express에서 COM+ 사용 시 SecurityException - "Requested registry access is not allowed" 발생
1725정성태8/6/201415212오류 유형: 233. Visual Studio 2013 Update3 적용 후 Microsoft.VisualStudio.Web.PageInspector.Runtime 모듈에 대한 FileNotFoundException 예외 발생
1722정성태7/25/201414963오류 유형: 232. IIS 500 Internal Server Error - NTFS 암호화된 폴더에 웹 애플리케이션이 위치한 경우
1692정성태6/19/201425902오류 유형: 231. Visual Studio 2013 한글 버전 설치 오류 - The form specified for the subject is not one supported or known by the specified trust provider
... 16  17  18  19  20  21  22  23  24  25  26  [27]  28  29  30  ...