C# :: Lecture & TIPs VB :: Lecture & TIPs

“‘Microsoft.ACE.OLEDB.12.0’ 공급자는 로컬 컴퓨터에 등록 할 수 없습니다.” 오류 해결 TIP

OLEDBError

‘Microsoft.ACE.OLEDB.12.0’ 공급자는 로컬 컴퓨터에 등록할 수 없습니다. 라는 예외가 발생하는 경우, 불러오려는 오피스 형식의 파일을 기존 PC 에 설치된 드라이버가 인식하지 못할 경우 발생하는 오류 메시지 입니다.

OLEDBError2

오류 원인은 64-bit Office 제품군을 설치하면서 64-bit 용 OLE DB 제공자는 시스템에 설치되었지만, 32-bit 프로그램인 Visual Studio 에서는 64-bit 용 OLE DB 제공자를 찾아 사용할 수 없기 때문에 발생하는 것입니다.

물론 이를 해결하기 위해서는 Access 데이터베이스 혹은 오피스 파일의 형식 대한 32-bit 버전의 OLE DB 제공자 (aceoledb.dll) 를 설치해야하는데요.

해결 방법 :

Office 2013 버전용 설치 파일을 설치하여도 정상적으로 작동하므로 다음의 경로에서 다운로드 받으셔도 됩니다.

https://www.microsoft.com/en-us/download/details.aspx?id=39358

추가적으로, 각각의 aceoledb.dll 의 파일 경로는 다음과 같습니다.

64-bit :
“C:\Program Files\Common Files\Microsoft Shared\OFFICE15\ACEOLEDB.DLL”

32-bit :
“C:\Program Files (x86)\Common Files\Microsoft Shared\OFFICE15\ACEOLEDB.DLL”

만약, 최신 버전 Office 2016 (Office 365) 용 버전의 파일을 설치하시기를 희망하시는 경우, 다음의 경로에서 다운로드 받으실 수 있습니다.

https://www.microsoft.com/en-us/download/details.aspx?id=54920

다만, 위의 경로에서 AccessDatabaseEngine.exe 파일을 다운로드 받아서 실행하는 경우, 이미 Office 2016 64-bit 버전이 설치되어 있다면 오류가 발생하면서 다음과 같이 더 이상 설치 진행이 되지 않는 경우가 있는데요.

AccessDBError

“Microsoft Office SharePoint Designer 2010, Microsoft Office Professional Plus 2010, Microsoft Office Visio 2010” 세 가지 제품을 제거해야 한다니 말이 안되죠. 다행히 이에 대해서는 아래의 글에서 손쉬운 해결책을 제시해 주고 있습니다.

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-bit Office 2013 :
“C:\Program Files\Common Files\Microsoft Shared\OFFICE15\ACEOLEDB.DLL”

64-bit Office 2016 :
“C:\Program Files\Common Files\Microsoft Shared\OFFICE16\ACEOLEDB.DLL”

32-bit Office 2013 :
“C:\Program Files (x86)\Common Files\microsoft shared\OFFICE15\ACEOLEDB.DLL”

32-bit Office 2016 :
“C:\Program Files (x86)\Common Files\microsoft shared\OFFICE16\ACEOLEDB.DLL”

고맙습니다.

Leave a comment