Mai mult
'Microsoft.ACE.OLEDB.12.0' prestatorul nu este înregistrat pe mașina locală
Am'm încercarea de a obține date dintr-un fișier Excel pe un buton, faceți clic pe eveniment. Mi șir de conexiune este:
string connString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\\source\\SiteCore65\\Individual-Data.xls;Extended Properties=Excel 8.0;";
Când m-am faceți clic pe butonul, am si eu urmatoarea eroare:
'Microsoft.ACE.OLEDB.12.0' prestatorul nu este înregistrat pe mașina locală.
Nu am nici o idee cum de a repara acest lucru. Sistemul meu de operare este Windows 7.
405
33
Ei bine, trebuie să-l instalați. Te're în căutarea pentru:
Un 64-bit traducere de 'Motor de baze de Date Microsoft Access 2010 Redistributable' care vă va permite să utilizați 'Microsoft.ACE.OLEDB.12.0' furnizorul este disponibil aici:
http://www.microsoft.com/en-us/download/details.aspx?id=13255
Dacă utilizați descărcați de pe răspunsul acceptat, va trebui să construiască pentru x86, după cum a subliniat de către @backtestbroker.com.
în funcție de aplicație(32/64bit), folosind conexiunea pe care ai putea s-o instalez
Rezumat:
(New-Object system.date.oledb.oledbenumerator).GetElements() | selectați SOURCES_NAME, SOURCES_DESCRIPTION
o poveste lungă: siruri de caractere pot fi găsite cu http://live.sysinternals.com/strings.exe
de exemplu. pe 64 de biți Sistem cu 32 de biți driverele instalate
chiar și în cele viitoare office 2016
veți găsi siruri de caractere
Microsoft.ACE.OLEDB
Microsoft.ACE.Oledb.12.0
Office 2013 vine, de asemenea, cu csi.dll
care conține "Microsoft.ACE.OLEDB.15.0"
și Office 2016
care are "Microsoft.ACE.OLEDB.16.0" versiune
Primul lucru pe care aveți nevoie pentru a verifica este de a construi dumneavoastră de configurare a aplicației.
După ce instalarea este completă, încercați funcționare cerere, dacă acest rezolvă problema mare, dacă nu, continuați cu pasul 2.
După această instalare este completă, încercați să rulați aplicația dumneavoastră, acest lucru ar trebui să rezolve problema.
Am citit că MS Access drivere inclusiv baza de Date OLEDB driver funcționează numai sub platforma x86 și este incompatibil sub x64 sau AnyCPU platforma. Dar acest lucru pare a fi neadevărate. Am validat cererea mea a fost de funcționare atunci când construirea x86, apoi am instalat Accesa Motorul de baze de Date folosind pasiv pavilion.
Dupa aceste 2 etape am reușit să rula aplicația mea după construirea în x64 sau AnyCPU construi configurare. Aceasta a apărut pentru a rezolva problema mea.
Notă: ordinea de pași pare să facă o diferență, așa că vă rugăm să urmați în mod corespunzător.
Am primit această eroare/excepție în Visual Studio 2010, când mi-am schimbat construi în Configuration Manager dialog box de la "x86" pentru "Orice CPU". Acest driver de baze de date OLEDB am înțeles funcționează numai în x86 și nu este de 64 de biți compatibil. Schimbarea de configurare construi înapoi la x86 rezolvat problema pentru mine.
Am instalat MS drivere si tot nu't de lucru pentru mine. Apoi am găsit acest blog]1 care a rezolvat problema. Cititi acolo, altceva folosi aceste două imagini (legate de post), ca FIIND sumamary:
Daca're folosind 64-bit dar încă probleme chiar și după instalarea AccessDatabaseEngine, a se vedea acest mesaj, a rezolvat problema pentru mine.
și anume, Aveți nevoie pentru a instala acest AccessDatabaseEngine
Pentru toți cei mai afectați de acest lucru.
Am'am fost obtinerea de eroare...
...așa cum este descris de către OP, Shailesh Sahu.
Am 64 de biți de Windows 7.
Problema mea este la PowerShell script-uri, dar este folosind un șir de conexiune, similar cu OP's de post, deci sperăm că concluziile mele pot fi aplicate pentru C#, PowerShell și orice altă limbă bazându-se pe "Microsoft.ACE.OLEDB" driver.
Am urmat instrucțiunile de pe această MS forum thread: http://goo.gl/h73RmI
Am încercat în primul rând instalarea 64bit versiune, apoi instalarea 32 de biți versiunea AccessDatabaseEngine.exe din această pagină http://www.microsoft.com/en-us/download/details.aspx?id=13255
Dar încă nici o bucurie.
Am verificat codul de mai jos în PowerShell (de la SQL Panda's site-ul http://goo.gl/A3Hu96)
...care mi-a dat acest rezultat (am'am eliminat alte surse de date pentru concizie)...
După cum puteți vedea, am Microsoft.ACE.OLEDB.15.0 (cincisprezece) nu Microsoft.ACE.OLEDB.12.0 (douăsprezece)
Deci, am modificat mea șir de conexiune la 15 și a funcționat.
Deci, o scurtă PowerShell fragment pentru a demonstra cum de a soft-cod versiunea...
a fost modificat pentru a alege cele mai recente ACE versiune, dacă mai mult de o
Să sperăm că cineva a găsi acest acum puteți verifica pentru a vedea ce OLEDB versiune este instalat și utilizat corespunzător numărul de versiune.
Aveți nevoie pentru a schimba Soluția Platforma de la "Orice CPU" pentru "x86" sau "x64" bazat pe bitness de instalare office.
Pașii sunt prezentate mai jos:
Click dreapta pe Soluție de Fișiere în Soluție de Explorer:
Faceți clic pe Configuration Manager.
Apăsați pe Platforma de Drop-down, dacă x86 este deja acolo, apoi selectați care, altfel, faceți clic pe Nou.
Selectați x86 sau x64 de la noua platforma vertical:
Compila și rula aplicația.
Deși mulți s-au dat răspunsuri, problema-am întâlnit nu a fost încă menționat.
Scenariul meu: Aplicație pe 64 de Biți, Win10-64, Office 2007 32-Bit instalat.
Instalarea 32-Bit Installer AccessDatabaseEngine.exe fi descărcat de la MS rapoarte de succes, dar NU este instalat, verificat cu Powershell Script-ul de una dintre postarile de mai sus aici.
Instalarea pe 64 de Biți de instalare AccessDatabaseEngine_X64.exe raportate șocante un mesaj de eroare:
Foarte simplă soluție a fost găsit aici de pe site-ul Autodesk. Trebuie doar să adăugați parametrul /pasiv la commandline șir de caractere, astfel:
Instalare de succes, OleDb a lucrat șofer.
Excel fișiere sunt prelucrare cu OleDb sunt de xlsx tip, produs cu EPPlus 4.5 și modificat cu Excel 2007.
Dacă sunteți de depanare un proiect web, doar asigurați-vă că IIS Express se execută fie pe 32 sau pe 64 de biți, în funcție de setările proiectului.
Du-te
și de acolo bifați (sau debifați) la 'Utilizați versiunea pe 64 de biți de IIS Express...'
Dacă instalat "AccessDatabaseEngine" încă nu ajuta, mai jos este solutia:
Aveți nevoie pentru a schimba Active Soluție Platforma de la "Orice CPU" pentru "x86".
OLEDB Provider Nu este Înregistrată pe Mașina Locală
Din CodeProject.com
Am fost capabil de a repara acest lucru urmând pașii din acest articol: http://www.mikesdotnetting.com/article/280/solved-the-microsoft-ace-oledb-12-0-provider-is-not-registered-on-the-local-machine
Punctul cheie pentru mine a fost asta:
Atunci când depanare cu IIS,
"Utilizați versiunea pe 64 de biți de IIS Express pentru site-uri web și proiecte"
După verificarea faptului că o opțiune, apoi setarea platforma țintă din proiectul meu înapoi la "Orice CPU" (am pus-o pe x86 undeva în procesul de depanare), am fost capabil să depășească eroarea.
În primul rând a verifica ce versiune de microsoft.ace.oledb.12.0 este instalat în sistemul dumneavoastră.
Verificați în calea de mai jos C:\Program Files\Common Files\Microsoft Shared\OFFICE14\ACEOLEDB.DLL --64 bit este instalat
Verificați în calea de mai jos C:\Program Files (x86)\Common Files\Microsoft Shared\OFFICE14\ACEOLEDB.DLL --x86 bit este instalat
Dacă (x86), atunci este instalat folosind configuration manager schimba soluție platformă x86, x64 schimba la x64.
Dacă nu este disponibil, atunci instala folosind link-ul de mai jos
https://www.microsoft.com/en-us/download/details.aspx?id=23734
Am avut această problemă atunci când încearcă pentru a importa date dintr-un fișier excel (xlsx) într-un Server SQL DB folosind SSMS 2014.
De 2007 Office System Driver: Conectivitate de Date Componente a se instala făcut truc pentru mine.
syp_dino,
Soluția pentru mine cum ai sugerat pentru "Microsoft.ACE.OLEDB.12.0' prestatorul nu este înregistrat pe mașina locală" eroare este de a schimba Active Soluție Platforma de la "Orice CPU" pentru "x86".
Atunci când am efectuat acești pași, reconstruit soluție, a luat EXE și plasate în rețea, totul a mers fără probleme pe Windows 7 64 bit mașină.
Trebuie doar să descărcați & instala următoarele Acces DB motor (X86 sau X64: ca pe configurația aparatului dumneavoastră) și a vedea magia :)
https://www.microsoft.com/en-us/download/confirmation.aspx?id=13255
Și eu am astfel de problemă atunci când citim fișier Excel.
Istoria problemei:
Am migrat recent aplicația noastră de 32-bit to 64-bit pentru cerința de memorie. Pentru că am migrat nostru de windows 7 de 32-bit to 64-bit. Dar încă am instalat pe 32 de biți de office pe mașinile noastre.
pentru că, de asta am avut această problemă în timp ce importul de date Excel în aplicare.
Soluția,
Am descarcat versiunea pe 64 de biți de http://www.microsoft.com/en-us/download/details.aspx?id=13255 și-a instalat cu argumentul ca,
AccessDatabaseEngine_x64.exe /pasiv
Fără nici o schimbare de cod problema mea sa rezolvat.
Notă:
Pe 64 de biți și pe 64 de biți de office, funcțiile mea a fost de lucru bine și fără acest remediu. Această remediere este necesară numai în timp ce aplicația noastră este de 64-biți care rulează pe 64-bit sistem de OPERARE care are 32 de biți de office instalat pe el.
M-am confruntat cu aceeași problemă. Du-te la Proprietățile Soluției și de a schimba Orice CPU x86, cred ca va face treaba.
face acest lucru de 2 pași:
var nume = string.Format("{0}", openFileDialog1.FileName); //var connectionString = string.Format("Provider=Microsoft.Jet.OLEDB.4.0; data source={0}; Proprietăți Extinse=Excel 8.0;", fileName); var connectionString = string.Format("Provider=Microsoft.ACE.OLEDB.12.0;data Source={0}; Proprietăți Extinse='Excel 12.0 Xml;HDR=DA'", fileName); var adaptor = new OleDbDataAdapter("SELECTAȚI * DE la [Sheet1$]", connectionString); var ds = new DataSet();
adaptor.Fill(ds, TableNmae);
DataTable datele = ds.Tabele[TableNmae]; dg1.DataSource = de date;