venerdì 16 gennaio 2015

Il provider 'Microsoft.ACE.OLEDB.12.0' non è registrato nel computer locale

Nel caso che si sviluppano applicazioni .Net, in ambiente a 64 bit che si interfacciano con Office 2007 o versione successiva, bisogna installare il seguente componente http://www.microsoft.com/en-us/download/details.aspx?id=23734 mentre per la versione in n italiano qui  http://www.microsoft.com/it-it/download/details.aspx?id=23734 il compoenete che permette di  risolvere il problema.

19 commenti:

Anonimo ha detto...

Grazie per la dritta e per la precisione nell'indicare la possibile soluzione che ha funzionato!

Emanuele ha detto...

Mi fa molto piacere sapere che ti è servito, continua a seguire il blog, se vuoi registrati alla newsletter.

sunandsea ha detto...

Ciao Emanuele,
nel mio caso la tua soluzione non funziona.
Ti spiego la mia situazione:
Ho un vecchio progetto con database Access 2016 e lavoro su Visual Studio 2012.
Come stringa di connessione ho:

In questo modo l'errore è:
"Il provider 'Microsoft.ACE.OLEDB.12.0' non è registrato nel computer locale"
Prima avevo database Access 2000 sempre con Visual Studio 2012, stringa di connessione

e l'errore era
"Il provider 'Microsoft.ACE.OLEDB.4.0' non è registrato nel computer locale".

Non so più che fare.
Grazie per l'aiuto che mi potrai dare.

Emanuele ha detto...

Ciao Sunandsea,
hai installato il componente dai siti indicati? hai un pc a 32 o 64 bit? qual'è la stringa di connessione?
Fammi sapere.

sunandsea ha detto...

Ciao Emanuele,
sì ho installato il componente.
La stringa di connessione è (probabilmente vengono cancellati i tag)

add name="AccessDB" connectionString="Provider=Microsoft.ACE.OLEDB.12.0;Data Source=|DataDirectory|miodatabase.accdb;Persist Security Info=True" providerName="System.Data.OleDb"

Ho un pc a 64 bit.

Grazie

Emanuele ha detto...

Ciao Sunandsea,
prova a sostituire la parte Microsoft.ACE.Oledb12.00 con
Microsoft.ACE.OLEDB.15.0;
anziché 12.0 prova con 15.0

Fammi sapere.

sunandsea ha detto...

Ciao Emanuele,
facendo come dici tu, l'errore diventa:
"Il provider Microsoft.ACE.OLEDB.15.0 non è registrato nel computer locale."
Allora ho scaricato il Microsoft Access Database Engine 2010 (da https://www.microsoft.com/it-it/download/details.aspx?id=13255) ma, cercando di installarlo, nella versione x64 mi dice che non posso procedere in quanto ho installata la versione a 32bit dei prodotti Office.
Non so che fare...

Posso anche tornare alla versione del database con Access 2000, ma devo risolvere il problema del Microsoft.Jet.Oledb.4.0.

Grazie

Emanuele ha detto...

Ciao SunAndSea,
quando salvi il database Microsoft Access lo hai fatto selezionato versione 2010 o 2013? e poi utilizzi la connessione quella standard?

Fammi sapere.

sunandsea ha detto...

Il formato del file è Access 2007-2016, è un .accdb.
Non so cosa intendi per connessione standard.
Grazie e scusa

Emanuele ha detto...

Devi installare il runtime di access 2010.

Vedrai che funzionerà.

sunandsea ha detto...

Ciao Emanuele,
scusa il ritardo. Ancora non ho risolto: ho disinstallato i prodotti x32 ed installato il runtime di access 2010.
Adesso come mi consigli di salvare il database in access?
Grazie

Emanuele ha detto...

Ciao,
qui http://emanuelemattei.blogspot.it/2017/09/net-collegarsi-al-database-microsoft.html la soluzione.
Ti consiglio di registrare il tuo indirizzo email alla newsletter, così sei aggiornato sulle notizie.E' una notizia recente.
Devi installare il componente che è presente nel sito, il test è stato effettuato su Windows 10, 64 bit.

Ciao Emanuele

Fulvio Trotta ha detto...

Ciao Emanuele,
sto provando a scaricare il runtime di access 2010 perché ho un problema molto simile a quelli citati sopra.
Windows 7 a 64Bit
Office 2010 a 32Bit
Visual studio 2017 Comunity

se ho problemi dopo l'installazione del runtime ha dei consigli aggiuntivi da darmi?

Fulvio

Emanuele ha detto...

Ciao Fulvio,
che problemi hai avuto? Fammi sapere.

Emanuele

Fulvio Trotta ha detto...

il problema è quello oggetto della tread, solo che dopo aver scaricato ACE.OLEDDB.12.0 a 32 Bit, unico che posso installare vista la versione a 32 bit del mio office, ho provato ad installare il runtime di access 2010.

Dopo aver installato queste cose il sistema continua a dirmi "Il provider 'Microsoft.ACE.OLEDB.12.0' non è registrato nel computer locale"

Da ignorante stavo pensando che magari lo devo abilitare poi su Visual Studio, ma non saprei come.

Emanuele ha detto...

Ciao Fulvio,
ma il tuo sistema operativo è 32 o 64 bit? perchè se è 64 devi installare quello a 64 bit.

Fammi sapere.

Ciao Emanuele

Fulvio Trotta ha detto...

il sistema operativo è a 64 Bit, ma se provo ad installarlo mi dice che il mio office è a 32 bit e quindi non posso installarlo.

il pc non è mio altrimenti avrei installato tutto a 64 bit e mi sarei risparmiato un sacco di problemi.

Emanuele ha detto...

Ciao Fulvio,
qui http://emanuelemattei.blogspot.it/2017/09/net-collegarsi-al-database-microsoft.html trovi la soluzione. Devi installare la versione a 64 bit. Fammi sapere.

Fulvio Trotta ha detto...

Ciao,
visto che non riuscivo ad installarlo, nonostante i consigli di Emanuele, ho trovato un post sul web che mi ha risolto il problema, fondamentalmente ho dovuto installare entrambi i runtime, quello a 32 più quello a 64 Bit.

per farlo ho seguito queste istruzioni, erano in inglese e ve le ho tradotte al meglio delle mie possibilità

- Aprire il prompt dei comandi
- andare nella cartella dove avete scaricato il runtime
- lanciare il runtime inserendo la seguente stringa: "nomefile.exe /passive" (tra exe e "/passive" deve esserci uno spazio)

PS.
partirà così l'installazione del runtime che vi serve, fate attenzione che farà riavviare il pc senza chiedere nulla quindi segnatevi tutti i punti indicati in questo messaggio prima di lanciarlo

- accedere ai registri di window (da menù avvio basta scrivere la parola regedit e dare invio)
- andare alla voce: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Office\14.0\Common\FilesPaths
- cancellare o rinominare la seguente chiave di registro "mso.dll" (io la ho rinominata per sicurezza, non ho provato a cancellarla)

io per sicurezza ho anche riavviato il pc dopo aver modificato la chiave, ma non credo sia necessario.

vi copio il link dove ho trovato la soluzione, nel caso non basti quanto ho riportato io

https://datasavvy.me/2017/07/20/installing-the-microsoft-ace-oledb-12-0-provider-for-both-64-bit-and-32-bit-processing/

Intanto ringrazio Emanuele che mi ha messo sulla giusta strada per risolvere il problema.

Fulvio