317

버튼 클릭 이벤트에서 Excel 파일의 데이터를 가져 오려고합니다. 내 연결 문자열은 다음과 같습니다.

 string connString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\\source\\SiteCore65\\Individual-Data.xls;Extended Properties=Excel 8.0;";

버튼을 클릭하면 다음 오류가 발생합니다.

'Microsoft.ACE.OLEDB.12.0'공급자가 로컬 컴퓨터에 등록되어 있지 않습니다.

이 문제를 해결할 방법이 없습니다. 내 운영 체제는 Windows 7입니다.


  • 단지 접하는 주석 : OLEDB를 사용하여 Excel 파일을 읽는 것은 고대 기술이며 매우 느리고 사용자가 발견 한대로 수동으로 대상 컴퓨터에 추가 패키지를 설치해야합니다. (부여 된 질문은 2011 년에 요청되었습니다.) 상자에서 바로 사용할 수있는 ClosedXml (NuGet에서 사용 가능)을 사용하십시오. - Shaul Behr
  • @ShaulBehr는 좋았 겠지만 ClosedXml은 .xlsx 파일에서만 작동하며 .xls 파일에서는 작동하지 않습니다. - Jimmy
  • Sql Server로 가져 오는 경우 ssms에서이 쿼리를 실행할 수 있습니다. execute master.dbo.xp_enum_oledb_providers 그러면 공급자에게 있다고 생각하는 공급자를 알 수 있습니다. 예전에는 Microsoft.ACE.OLEDB.16.0과 Microsoft.ACE.OLEDB.12.0을 모두 가지고 있었지만 데이터를 가져 오려고 시도했을 때 로컬 컴퓨터에 등록되지 않았습니다. ' Excel 16 및 Excel 2007 파일 형식 (oledb.16.0 및 oledb.12.0 각각)에 대해 OP로 사용됩니다. 손실을 줄이고이 시점에서 Microsoft 소프트웨어를 포기하는 것이 좋습니다. - user1040323

30 답변


407

음, 설치해야합니다. 찾고있는 사람 :


  • 이 구성 요소를 다운로드했지만 저에게 적합하지 않았습니다. Microsoft Access 데이터베이스 엔진 2010 재배포 가능 파일을 여기에서 다운로드해야했습니다.microsoft.com/en-in/download/details.aspx?id=13255MS Office 2013을 사용하고 있기 때문에 그 점을 확신 할 수 있습니다. 올바른 방향으로 나를 안내해 주셔서 감사합니다. - Sizons
  • Access 데이터베이스 엔진과 2007 Office System 드라이버를 설치해야했습니다. 데이터 연결 구성 요소는 여기에 있습니다.microsoft.com/en-us/download/confirmation.aspx?id=23734그것을 작동 시키려면. - Chris
  • 내 상황, 모든 것이 잘 작동했다가 갑자기이 오류가 발생하기 시작했다. 그래서 무슨 일이 일어 났을까요? 코드가 변경되지 않았습니다. - eetawil
  • 필자의 경우, "임의의 CPU" 내 아키텍처와 일치하는 x64로. - Rob Sedgwick
  • 잭 리퍼 (Jack the Ripper)는 해답이 아닌 해답 자체에 제공된 해법을 가리킨다. 설치2007 Office System Driver: Data Connectivity Components즉시 문제를 해결했습니다. - silkfire

119

'Microsoft.ACE.OLEDB.12.0'공급자를 사용할 수있게 해주는 64 비트 버전의 'Microsoft Access Database Engine 2010 재배포 가능 파일'은 여기에서 사용할 수 있습니다.

http://www.microsoft.com/en-us/download/details.aspx?id=13255

허용 된 응답에서 다운로드를 사용하는 경우 @ backtestbroker.com에서 지적한대로 x86 용으로 빌드해야합니다.


  • VS 2012를 사용하는 경우 & quot; 32 비트를 선호 & quot; 확인란은 프로젝트의 속성 & gt; & gt; 빌드 & gt; & gt; 일반 구성. - devstruck
  • @post_erasmus -이 단계는 64 비트 DLL을 설치 한 후 나를위한 열쇠였습니다. (설치가 필요하지 않을 수도 있습니다.) 감사합니다! - Buggieboy
  • VS 2008을 사용하고 있는데 (묻지 않음)이 솔루션은 post_erasmus & # 39;를 읽을 때까지 작동하지 않았습니다. 팁 및 플랫폼 타겟 & # 39; 속성 & gt; & gt; 빌드 & gt; & gt; 내 응용 프로그램의 일반 구성. 정렬 해 줘서 고마워! - Resource
  • 이 대답의 링크를 통해 32 비트 버전을 다운로드하고 설치할 수도 있습니다. Windows 7 64 비트가 있지만 Visual Studio 2013의 IIS Express는 기본적으로 32 비트 모드로 실행되며 일부 Office 2013 구성 요소는 32 비트에 이미 설치되어 있으므로 32 비트 설치는 무엇입니까? 내가 필요. - Eric Barr
  • 이 대답과 함께, "Enable 32-Bit Applications"을 설정해야합니다. 응용 프로그램 풀에서 False로 설정하십시오. - iowatiger08

52

방금 설치 한 연결을 사용하는 응용 프로그램 (32 / 64bit)에 따라 다름

개요:

  • 2007-2016 년의 모든 지사에는 "Microsoft.ACE.Oledb.12.0"공급자가 포함되어 있습니다.
  • 응용 프로그램 아키텍처에 따라 적절한 런타임 엔진 (32/64)을 선택하십시오.
  • powershell 명령을 사용하여 공급자를 확인하십시오.32 비트 및 64 비트 쉘 모두:

    (New-Object system.data.oledb.oledbenumerator).GetElements() | select SOURCES_NAME, SOURCES_DESCRIPTION 
    
  • 시스템에서 사용할 수있는 공급자를 확인할 수 있습니다.

긴 이야기 : 문자열은 다음과 함께 찾을 수 있습니다.http://live.sysinternals.com/strings.exe

예. 32 비트 드라이버가 설치된 64 비트 시스템에서

strings.exe -u -n 10 "c:\Program Files (x86)\Common Files\microsoft shared\OFFICE12\MSO.DLL" | findstr "ACE.O"
strings.exe -u -n 10 "c:\Program Files (x86)\Common Files\microsoft shared\OFFICE14\MSO.DLL" | findstr "ACE.O"
strings.exe -u -n 10 "c:\Program Files (x86)\Common Files\microsoft shared\OFFICE15\MSO.DLL" | findstr "ACE.O"

다가오는 사무실 에서조차 2016

c:\Program Files\Microsoft Office\root\VFS\ProgramFilesCommonX64\Microsoft Shared\OFFICE16\MSO.DLL
c:\Program Files\Microsoft Office\root\VFS\ProgramFilesCommonX86\Microsoft Shared\OFFICE16\MSO.DLL

너는 끈을 찾을거야.

  • Microsoft.ACE.OLEDB

  • Microsoft.ACE.Oledb.12.0

Office 2013에는 csi.dll도 함께 제공됩니다.

c:\Program Files (x86)\Common Files\microsoft shared\OFFICE15\Csi.dll
c:\Program Files\Common Files\Microsoft Shared\OFFICE15\Csi.dll

여기에는 "Microsoft.ACE.OLEDB.15.0"

및 Office 2016

c:\Program Files\Microsoft Office\root\VFS\ProgramFilesCommonX64\Microsoft Shared\OFFICE16\Csi.dll
c:\Program Files\Microsoft Office\root\VFS\ProgramFilesCommonX86\Microsoft Shared\OFFICE16\Csi.dll

"Microsoft.ACE.OLEDB.16.0"버전


  • Nuget LinqToExcel을 사용하여 VS2015에서이 오류가 발생했습니다. 내가 x64 ACE를 설치했기 때문에 모든 CPU를 대상으로하는 대신 x64 (구성 관리자)를 명시 적으로 빌드해야했습니다. - subsci
  • Powershell은 "Microsoft.ACE.Oledb.12.0" 이미 설치되었습니다. 그러나 Access 2007 패키지 설치 (일명2007 Office System 드라이버 : 데이터 연결 구성 요소) 나를 위로 붙잡아 라. 이미 내 시스템에 : Office 2016 Ent, Visual Studio 2017 Ent - SushiGuy
  • 설치된 버전을 알려주는 PowerShell 스크립트가 천재입니다! 고맙습니다. - Rob Bowman
  • 비트 offtopic하지만이 간단한 powershell은 ODBC 드라이버 용입니다 :Get-OdbcDriver | select Name,Platform - Bernhard

29

구성 관리자 대화 상자에서 "x86"에서 "모든 CPU"로 빌드를 변경했을 때 Visual Studio 2010에서이 오류 / 예외가 발생했습니다. 이 OLEDB 데이터베이스 드라이버는 x86에서만 작동하며 64 비트 호환되지 않습니다. 빌드 구성을 x86으로 다시 변경하면 문제가 해결되었습니다.


  • OLEDB는 x64와 호환됩니다. 그것은 어떤 플랫폼에서도 동작 할 수 있지만, 단지 x86이 아닌 모든 CPU에서 실행될 수 있습니다. 아래에서 전체 답변보기 : stackoverflow.com/a/32760211/3637582 - Merav Kochavi

28

가장 먼저 확인해야 할 것은 응용 프로그램의 빌드 구성입니다.

  • 당신이 가지고 있다면x86 플랫폼에서 프로젝트 구축, 그 다음에는 문제를 해결하면 다음 패키지를 설치해야합니다. 기계:

    1. 'Microsoft.ACE.OLEDB.12.0'공급자를 사용하려면Microsoft Access 데이터베이스 엔진 2010 재배포 가능 파일을 설치하십시오.첫째,이 설치는 다음에서 제공됩니다.http://www.microsoft.com/download/en/details.aspx?id=13255.

      설치가 완료되면 응용 프로그램을 실행 해보십시오. 위대한 문제를 해결하고 그렇지 않은 경우 2 단계로 진행합니다.

    2. 이 다음 단계는 설명 할 수없는 해결 방법이며 Office에서 사용할 수 있습니다. 2010 Office 2007의 데이터 연결 구성 요소 임에도 불구하고이 기능이 왜 작동하는지 잘 모르겠습니다.하지만 대부분의 경우 작동하는 것으로 입증되었습니다. 너는 ~해야 해.2007 Office System 드라이버 설치 : 데이터 연결 구성 요소이 설치는 다음에서 제공됩니다.http://www.microsoft.com/download/en/confirmation.aspx?id=23734.

      이 설치가 완료되면 응용 프로그램을 실행 해보십시오. 그러면 문제가 해결됩니다.

  • 당신이x64 또는 AnyCPU로 작성된 응용 프로그램 플랫폼먼저 예상대로 실행되는지 확인하는 것이 좋습니다. x86 플랫폼에서 그것이 그 밑에 달리지 않는 경우에 x86 플랫폼에서 첫 번째 부분의 단계를 수행하고 예상대로 실행됩니다.

    나는 OLEDB 데이터베이스를 포함한 MS Access 드라이버를 읽었습니다. 드라이버는 x86 플랫폼에서만 작동하며 아래에서 호환되지 않습니다. x64 또는 AnyCPU 플랫폼 그러나 이것은 사실이 아닌 것처럼 보입니다. 나는 x86을 빌드 할 때 내 응용 프로그램이 실행되고 있는지 확인한 다음 passive 플래그를 사용하여 Access 데이터베이스 엔진을 설치했습니다.

    1. 먼저 로컬에서 파일을 다운로드하십시오. 설치를 다운로드 할 수 있습니다. 이리:http://www.microsoft.com/en-us/download/details.aspx?id=13255
    2. '/ passive'플래그와 함께 명령 프롬프트를 사용하여 설치.에서 명령 프롬프트에서 다음 명령을 실행하십시오. 'AccessDatabaseEngine_x64.exe / passive'

    이 두 단계를 거친 후 건물을 만든 후 내 응용 프로그램을 실행했습니다. x64 또는 AnyCPU 빌드 구성. 이것은 내 문제를 해결하는 것으로 보였다.

참고 : 단계의 순서에 따라 차이가있는 것 같습니다. 따라서 적절하게 따라하십시오.


  • 문제가 32 비트 응용 프로그램에서 64 비트로 전환 중이며 더 이상 실행되지 않았습니다. 지침의 두 번째 부분은 완벽하게 작동합니다! 그만큼/수동태플래그는 32 비트 Microsoft Office에서도 설치가 가능합니다. - Freddy
  • 팁 : AccessDatabaseEngine_x64.exe를 폴더로 추출하여 AceRedist.msi 및 Data.cab 파일을 가져옵니다. 관리 모드에서 cmd 프롬프트를 열고AceRedist.msi /passive. - Jeremy Thompson
  • 고마워. 첫 번째 옵션은 나를 위해 일했습니다. 32 비트 Office & amp;를 제거하는 데 얼마나 많은 번거 로움을 느꼈는지 기억합니다. 64 비트 사무실을 설치 한 후에 만이 문제는 더 빨리 해결되었습니다. 그러나이 64 비트 오피스 구성 요소는 마술을 대신 수행했습니다. - Biki

17

MS 드라이버를 설치했지만 여전히 작동하지 않습니다. 그런 다음 찾았습니다.이 블로그 게시물그 문제를 해결했습니다. 거기서 읽으십시오. 그렇지 않으면 TLDR sumamary로이 두 이미지를 연결하십시오 :

enter image description here

enter image description here


  • 이것은 나를 위해 일한 유일한 것입니다. - myroslav
  • 내 공헌으로 게시하려고 했어요. 이것은 내 문제였다. 어제 솔루션에서 하나의 프로젝트가 x86 컴파일 된이 IIS 설정을 변경 했으므로 전체 프로그램을 32 비트 클래스로 간주한다고 가정합니다. - Lee
  • 내 서버는 @ 64bits이지만 MS Office 구성 요소는 32 비트입니다. 이게 내 문제를 해결했습니다. 고맙습니다. - MarceloBarbosa
  • 놀라운 일을하는 것이 얼마나 힘든 일입니까? (필자는 powershell에서 스크립트를 작성하여 자동화 된 서버 설정 스크립트에 통합 할 수 있을지 궁금합니다. - David Rogers
  • @DavidRogers는 아마도 PS 전문가가 아니기 때문에 저를 찾아 보지 마십시오! ;-) - Shaul Behr

13

이것에 의해 아직도 영향을받는 모든 사람들을 위해서.

오류가 발생했습니다 ...

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

... OP, Shailesh Sahu에 의해 기술 된대로.

나는 64 비트 윈도우 7을 가지고있다.

내 문제가있다.PowerShell스크립트를 사용하지만 OP의 게시물과 비슷한 연결 문자열을 사용하고 있으므로 C #, PowerShell 및 "Microsoft.ACE.OLEDB"드라이버에 의존하는 다른 언어에도 내 결과가 적용될 수 있기를 바랍니다.

나는이 MS 포럼 스레드에 대한 지침을 따랐다.http://goo.gl/h73RmI

나는 처음 설치를 시도했다.64 비트버전을 설치 한 다음32 비트이 페이지에서 AccessDatabaseEngine.exe 버전http://www.microsoft.com/en-us/download/details.aspx?id=13255

그러나 여전히 기쁨은 없습니다.

나는 아래의 코드를 실행했다.PowerShell(SQL Panda의 사이트에서 제공)http://goo.gl/A3Hu96)

(New-Object system.data.oledb.oledbenumerator).GetElements() | select SOURCES_NAME, SOURCES_DESCRIPTION 

... 나에게이 결과를주었습니다 (간략하게 다른 데이터 소스를 제거했습니다) ...

SOURCES_NAME              SOURCES_DESCRIPTION                                                                       
------------              -------------------                                                                       
Microsoft.ACE.OLEDB.15.0  Microsoft Office 15.0 Access Database Engine OLE DB Provider

보시다시피, 나는 Microsoft.ACE.OLEDB 있습니다.15 명Microsoft.ACE.OLEDB가 아닌 .0 (15).12.0 (12)

그래서, 나는 15로 나의 연결 문자열을 수정했고 그것은 효과가 있었다.

따라서 버전을 소프트 - 코드하는 방법을 보여주는 간단한 PowerShell 스 니펫 ...

$AceVersion = ((New-Object System.Data.OleDb.OleDbEnumerator).GetElements() | Where-Object { $_.SOURCES_NAME -like "Microsoft.ACE.OLEDB*" } | Sort-Object SOURCES_NAME -Descending | Select-Object -First 1 SOURCES_NAME).SOURCES_NAME

$connString = "Provider=$AceVersion;Data Source=`"$filepath`";Extended Properties=`"Excel 12.0 Xml;HDR=NO`";"

하나 이상인 경우 최신 ACE 버전을 선택하도록 개정 됨

다행히도이 기능을 찾는 사람은 OLEDB 버전이 설치되어 있는지 확인하고 적절한 버전 번호를 사용할 수 있습니다.


  • 안녕하세요. PowerShell로 Excel 시트를 읽으려고합니다. SharePoint 문서 라이브러리에 저장된 Excel 파일이며 서버에 Excel이 설치되어 있지 않습니다. 윈도우 서버 2008 R2 있습니다. Office System Driver : 데이터 연결 구성 요소를 설치했지만 쿼리를 실행하면 Microsoft.ACE.OLEDB가 표시되지 않습니다. 그것에 대한 아이디어가 있습니까? 그리고 어떤 제안? 미리 감사드립니다. - doganak
  • 나는 그 해답을 발견했다. MS Access 데이터베이스 엔진을 설치하기 위해 시스템 관리자에게 요청했습니다. 그는 x86 버전을 설치했습니다. PowerShell x86에서 쿼리를 다시 실행하면 ACE.OLEDB가 나타납니다. - doganak
  • 대단한 PowerShell 코드. 32 비트 버전 (PowerShell 목록에 표시되지 않음)이있어서 64 비트 버전을 설치할 수 없었습니다. 32 비트 버전을 제거한 후에 & quot; 이미 32 비트 Office 구성 요소가 있음 & quot;을 제외한 64 비트 버전을 설치할 수있었습니다. & quot; 메시지. 64 비트 버전이 PowerShell 목록에 표시되고 응용 프로그램이 작동하기 시작했습니다. - Doppelganger

13

64 비트를 사용 중이지만 AccessDatabaseEngine을 설치 한 후에도 여전히 문제가 발생하면이 포스트, 그것은 나를 위해 문제를 해결했습니다.

즉, 설치해야합니다.AccessDatabaseEngine


5

"모든 CPU"에서 "x86"또는 "x64"로 솔루션 플랫폼을 사무실 설치의 bitness를 기반으로 변경해야합니다.

단계는 다음과 같습니다.

  1. 솔루션 탐색기에서 솔루션 파일을 마우스 오른쪽 단추로 클릭하십시오.enter image description here

    1. 구성 관리자를 클릭하십시오.
    2. Active Platform 드롭 다운을 클릭하십시오. x86이 이미 있으면 선택하고, 그렇지 않으면 New를 클릭하십시오.enter image description here

    3. 새 플랫폼 드롭 다운에서 x86 또는 x64를 선택하십시오.enter image description here

응용 프로그램을 컴파일하고 실행하십시오.


4

설치된 "AccessDatabaseEngine"이 여전히 도움이되지 않으면 아래 해결 방법이 있습니다 :

Active Solution Platform을 "Any CPU"에서 "x86"으로 변경해야합니다.

OLEDB 공급자가 로컬 컴퓨터에 등록되지 않는다

CodeProject.com에서


  • ONUY & # 39; x86 & # 39;뿐만 아니라 & # 39; 모든 CPU & # 39;로 모든 플랫폼에서 실행할 수 있습니다. & # 63; x64 & # 39; 게다가. 아래에서 전체 답변보기 : stackoverflow.com/a/32760211/3637582 - Merav Kochavi

3

syp_dino,

당신이 제안한대로 나를위한 해결책"Microsoft.ACE.OLEDB.12.0 '공급자가 로컬 컴퓨터에 등록되지 않았습니다"오류는 Active Solution Platform을 "모든 CPU"에서 "x86"으로 변경하는 것입니다.

이러한 단계를 수행 할 때 솔루션을 다시 빌드하고 EXE를 가져 와서 네트워크에 배치하면 모든 것이 Windows 7 64 비트 시스템에서 원활하게 수행됩니다.



3

이 기사의 단계에 따라 문제를 해결할 수있었습니다.http://www.mikesdotnetting.com/article/280/solved-the-microsoft-ace-oledb-12-0-provider-is-not-registered-on-the-local-machine

나를위한 핵심 포인트는 다음과 같습니다.

IIS로 디버깅 할 때,

기본적으로 Visual Studio는 32 비트 버전을 사용합니다. 이걸 바꿀 수있어.   도구»옵션»프로젝트로 이동하여 Visual Studio 내에서   솔루션»웹 프로젝트»일반

"웹 사이트 및 프로젝트에 IIS Express의 64 비트 버전 사용"

그 옵션을 확인한 후 내 프로젝트의 플랫폼 대상을 "모든 CPU"(문제 해결 프로세스의 어딘가에서 x86으로 설정 했음)로 다시 설정하면 오류를 극복 할 수있었습니다.


  • 고맙습니다. 대부분의 다른 대답은 32 비트로 내려가는 것이지만, 앞으로 64 비트로 넘어갈 수 있습니다. - illinoistim

3

웹 프로젝트를 디버깅하는 경우미국 익스프레스프로젝트 설정에 따라 32 비트 또는 64 비트로 실행됩니다.

Goto

도구> 옵션> 프로젝트 및 솔루션> 웹 프로젝트

거기에서 'IIS Express의 64 비트 버전 사용 ...'을 선택 (또는 선택 취소)


  • 다른 솔루션을 시도하는 데 많은 시간을 할애 할뿐입니다. 감사 - Hernaldo Gonzalez

3

SSMS 2014를 사용하여 Excel 파일 (xlsx)에서 SQL Server DB로 데이터를 가져 오려고 할 때이 문제가 발생했습니다.

그만큼2007 Office System 드라이버 : 데이터 연결 구성 요소설치는 저를위한 간계를했다.


2

Excel 파일을 읽을 때 비슷한 문제가 있습니다.

문제의 역사 :

우리는 최근에 메모리 요구 사항 때문에 32 비트에서 64 비트로 애플리케이션을 마이그레이션했습니다. 이를 위해 Windows 7을 32 비트에서 64 비트로 마이그레이션했습니다. 하지만 여전히 우리 기계에 32 비트 사무실을 설치했습니다.

왜냐하면 Excel 데이터를 응용 프로그램으로 가져 오는 동안이 문제가 발생했기 때문입니다.

해결책,

나는 64 비트 버전의http://www.microsoft.com/en-us/download/details.aspx?id=13255인수로 설치되고,

AccessDatabaseEngine_x64.exe / passive

코드를 변경하지 않으면 문제가 해결됩니다.

노트 :

64 비트 OS 및 64 비트 오피스에서이 기능을 사용하지 않으면 내 기능이 정상적으로 작동합니다. 이 수정은 32 비트 Office가 설치된 64 비트 OS에서 64 비트 응용 프로그램을 실행하는 동안에 만 필요합니다.


  • 그러나 Microsoft는이 솔루션에 반대합니다. 이 수정으로 인해 다른 Office 프로그램의 왜곡 현상을 관찰 한 고객은 거의 없습니다. - Rahul Techie

2

다운로드 & amp; 다음 Access DB 엔진을 설치하십시오 (컴퓨터 구성에 따라 X86 또는 X64 :).

https://www.microsoft.com/en-us/download/confirmation.aspx?id=13255


2

먼저 시스템에 설치된 microsoft.ace.oledb.12.0 버전을 확인하십시오.

C : \ Program Files \ Common Files \ Microsoft Shared \ OFFICE14 \ ACEOLEDB.DLL 경로에 체크인하십시오 - 64 비트가 설치되어 있습니다

C : \ Program Files (x86) \ Common Files \ Microsoft Shared \ OFFICE14 \ ACEOLEDB.DLL 경로 아래에 - x86 비트가 설치되어 있는지 확인하십시오.

(x86)이 설치된 경우 구성 관리자를 사용하여 솔루션 플랫폼을 x86으로, x64를 x64로 변경하십시오.

사용할 수없는 경우 아래 링크를 사용하여 설치하십시오.

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


1

나는 다른 사람들이 제시 한 지시를 따랐다. 이 패치 설치, 해당 패치 설치 및 Microsoft Access 데이터베이스 엔진 2010.

내 문제는 내 컴퓨터의 2 개 사이트에서 동일한 라이브러리 (linq2sql)를 사용하고 있다는 것이 었습니다. 1 작품 1 작품.

결국 나는 내 비 작동 사이트에 대한 apppool의 고급 설정에서 "32 비트 응용 프로그램을 활성화"해야한다는 것을 알게되었습니다.

모든 것이 이제는 잘됩니다.


1

이 단계를 시도해 볼 수도 있습니다.

SQL Server에서, 1. 하나의 데이터베이스 열기 2. '서버 Obtect'옵션의 Clic 3. '연결된 서버'의 내용 4. '제공자'의 선택 5.Clic Rigth in 'Microsoft.ACE.OLEDB.12.0' 6. 모든 옵션을 선택 취소하고 닫습니다.


1

설치하는 것을 잊지 마십시오.AccessDatabaseEngine웹 응용 프로그램 용 서버.


1

나는 같은 문제를 가지고 있었지만이 경우에microsoft-ace-oledb-12-0-provider내 컴퓨터에 이미 설치되어 있으며 다른 응용 프로그램이 잘 작동합니다.

그 응용 프로그램과 내가 가진 문제점 사이의 차이점은 오래된 응용 프로그램이 "현지 미국"오류가있는 사람은"미국 익스프레스(Visual Studio에서 실행 "). 그래서 내가 한 일은 -

  1. 프로젝트 이름을 마우스 오른쪽 버튼으로 클릭하십시오.
  2. 속성으로 이동
  3. 오른쪽의 웹 탭으로 이동하십시오.
  4. 서버에서 로컬 IIS를 선택하고 가상 디렉터리 생성 버튼을 클릭하십시오.
  5. 응용 프로그램을 다시 실행하면 효과가 있습니다.


1

나는 가지고 있었다.Microsoft Access 데이터베이스 엔진 2010 재배포 가능 파일이미 내 컴퓨터에 설치되었지만 여전히Microsoft ACE OLEDB 공급자오류.

그런 다음 최근에 Office 2016으로 업그레이드했음을 상기 했으므로 다시 설치해야 할 수도 있습니다.Microsoft Access 데이터베이스 엔진 2010 재배포 가능 파일. 그리고 그것은 내 컴퓨터의 문제를 해결했습니다.

따라서 MS Office의 다른 버전으로 업그레이드하거나 MS Office를 수리 / 재설치 한 경우 다시 설치하십시오Microsoft Access 데이터베이스 엔진 2010 재배포 가능 파일다른 수정 프로그램을 찾는 데 시간을 낭비하기 전에. 행운을 빕니다!


1

1.) 연결 문자열을 다음과 같이 확인하십시오.ConnectionStrings.com.

2.) 올바른 데이터베이스 엔진이 설치되어 있는지 확인하십시오. 이것들은 나를 도왔던 두 개의 데이터베이스 엔진이었습니다.

Microsoft Access 데이터베이스 엔진 2010 재배포 가능 파일

2007 Office System 드라이버 : 데이터 연결 구성 요소

3.) 빌드 타겟 플랫폼에 "Any CPU"라는 문제가있을 수 있습니다. "X86"(속성, 빌드, 플랫폼 타겟) 일 필요가 있습니다.


  • ONUY & # 39; x86 & # 39;뿐만 아니라 & # 39; 모든 CPU & # 39;로 모든 플랫폼에서 실행할 수 있습니다. & # 63; x64 & # 39; 게다가. 아래에서 전체 답변보기 : stackoverflow.com/a/32760211/3637582 - Merav Kochavi
  • 그래, 그렇다고 생각하지 않는다 ... 누군가의 빌드 타겟 플랫폼이 문제의 일부일 수 있다는 점을 언급 할 가치가있다. - u8it

1

ASP.NET 응용 프로그램에서 ACE를 사용하려고 할 때이 오류가 발생하면 32 비트 버전 중 하나를 설치했을 가능성이 높습니다. 기본적으로 64 비트 운영 체제의 IIS는 64 비트 작업자 프로세스로 응용 프로그램을 실행합니다. 64 비트 프로세스는 32 비트 DLL을로드 할 수 없습니다. ACE 공급자에게 전화가 걸리면 64 비트 프로세스에서 64 비트 DLL을 찾습니다. 존재하지 않으면 여기로 가져온 오류 메시지가 나타납니다.

이 경우 두 가지 옵션이 있습니다. 먼저 2010 64 비트 버전을 설치할 수 있습니다. 2007 32 비트 버전이 설치되어있는 경우 2010 년 64 비트 버전을 설치하면됩니다. 2010 년 32 비트 버전이 설치되어있는 경우 제거하고 64 비트 2010 버전을 다운로드하여 설치해야합니다. 32 비트 및 64 비트 버전의 2010 공급자를 동시에 설치할 수는 없습니다. 개발 컴퓨터에서 설치를 수행하는 경우 기존 Office 설치의 비트 수에 따라 제약을받을 수도 있습니다.

두 번째 옵션은 32 비트 응용 프로그램을 사용하도록 IIS의 응용 프로그램 풀을 변경하는 것입니다. 정식 버전의 IIS를 사용하는 경우 관리 도구를 사용하여 제어판 (관리 도구»인터넷 정보 서비스 (IIS) 관리자)을 사용할 수 있습니다.

자세한 내용은 아래를 참조하십시오.링크


1

나는이 같은 문제에 직면했다. 솔루션 등록 정보로 가서 모든 CPU를 x86으로 변경하십시오.


0

그것은 당신이 설치 한 사무실에 따라 다릅니다. x64 비트 사무실이 있다면 x64로 실행해야 응용 프로그램을 컴파일해야합니다. x36을 실행하려면 x86을 설치해야합니다. 위의 모든 솔루션은 있지만 아무도 내가 사무실 x64 비트를 가졌다는 것을 깨닫고 x64로 응용 프로그램을 만들어 작업했습니다.


  • 올바르지 않거나 Office를 설치했는데 관계없이 DB Connector를 설치해야했습니다. - cybermonkey
  • 위의 NONE이 나에게 작용할 때 이것은 나의 문제를 해결합니다! - sam byte

0

  • 나는 며칠 동안 같은 문제에 직면 해왔다. OLEDB를 설치했는데 64 비트 용 드라이버는에서 구할 수있는 32 비트도 시험해 보았습니다. 마이크로 소프트 웹 사이트.
  • 나는 사무실 64 비트 버전도 재설치하려고 노력했다. 어떻게 든 그것은 작동하지 않았다. IIS 풀에서 32 비트 응용 프로그램 허용 시도 참된.
  • 프로젝트 환경을 X86, AnyMachine, Mixed로 변경하려고 시도했습니다. 그리고 거의 모든 패치를 인터넷에서 찾을 수있었습니다. 하지만 모두 해결책은 나를 실망시켰다.
  • 마침내 나는 우리가 다운로드 한 공급자가 최신이었고 작동하지 않았습니다. 그것도 마찬가지다.
  • 나는 그것을 제거하고 oledb 드라이버를 설치했다.14.0.7015.1000. 회사 자원에서 얻은 링크가 없으므로 google을 사용해야 할 수도 있지만 작동합니다. 나는 이것에왔다.다운로드 링크마이크로 소프트의 그것은 너무 일했다 ... 그러나 버전이다14.0.6119.5000하지만 효과가있었습니다.


0

Excel 파일에서 MS-SQL로 데이터를 가져올 때이 오류가 발생했습니다. 공급자가 이미 설치되어 있었고 (64 비트) 이것이 작동하지 않는 이유가 놀랐습니다. 그래서 내가 한 것은 가져 오기 / 내보내기 응용 프로그램 (예 : .EXE)을 찾는 것입니다. 그리고 나는 그것을

C : \ Program Files \ Microsoft SQL Server \ 130 \ DTS \ Binn \ DTSWizard.exe

그런 다음 .exe를 직접 실행하여 데이터 가져 오기를 수행했습니다. 그리고 효과가있었습니다!


0

내가 다른 컴퓨터에서 그것을 해결하는 방법 :

필자는 Office 2010을 가지고 있지 않기 때문에 Access Database를 가지고 있지 않은 Visual Studio 2012와 함께 Windows 7 32 비트 시스템을 가지고 있습니다. Windows 7 64 비트 시스템과 동일한 소스를 복사했습니다.

그래서, 위의 제안에 따라 AccessDatabaseEngine을 다운로드 한 후이 Windows 7 32 비트 시스템에 AccessDatabaseEngine을 설치했습니다. 모든 것이 잘 작동했습니다.

나는 이미 Access 2010을 이미 포함하고있는 Office 2010이있는 Windows 7 64 비트 컴퓨터에서 여전히 문제가있었습니다.이 컴퓨터에서 해결 된 방식은 PROJECT로 이동하여 속성을 선택하고 Platform 대상에서 임의의 CPU를 선택했는지 확인합니다. 32 비트. 재 컴파일 / 빌드 및 Microsoft.ACE.OLEDB.12.0 '공급자가 로컬 컴퓨터에 등록되지 않았다는 메시지가 사라졌습니다.


  • 64 비트 시스템 용 Office를 구매하지 않는 한 분명히 Office를 32 비트 용으로 기본적으로 설치했지만, 전문가는 아니지만 제 추측입니다. 이것이 사실이라면 더 많이 알 수 있습니다. 만약 64 비트 풀 포텐셜로 사용할 예정이라면 위의 다른 사람들이 제안한대로 AccessDatabaseEngine 64 비트 버전을 다운로드해야합니다. 현재로서는 32 비트 CPU를 선호하기 때문에 32 비트 CPU를 선호합니다. - Humbert

0

이것은 나를 위해 지금 일했다.

  1. 방문이 페이지그 패키지를 다운로드하십시오. 컴퓨터 (AccessDatabaseEngine.exe 또는 AccessDatabaseEngine_X64.exe)
  2. 그것을 설치하십시오.
  3. Enjoye ... 코드가 이제 작동합니다 ...

그러나 응용 프로그램 패키지의 경우 다음 솔루션을 사용할 수 있습니다.

  1. "C : \ Program Files (x86) \ Common Files \ microsoft shared"또는 "C : \ Program Files \ Common Files \ Microsoft Shared"를 입력하고 패키지 파일의 같은 위치에 "OFFICE14"디렉토리.

또는

  1. 설치 패키지에 두 개의 프로젝트 (항목 1에 있음)를 첨부하십시오.

연결된 질문


관련된 질문

최근 질문