Microsoft.ACE.OLEDB.12.0 non è registrato

Ho un lavoro di SQL Server che viene eseguito mensilmente che viene eseguito nel server. Job sta utilizzando un pacchetto SSIS e dovrebbe estrarre i dati dal database e creare un foglio Excel e copiare i dati in Excel 2003.

In realtà ho ottenuto circa 140.000 righe dal database a causa di un problema di troncamento in Excel 2003 (Excel supporta 64.000 righe). Così ho modificato il file di configurazione per supportare il formato Excel 2007.

"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + @[User::FullPath] + ";Extended Properties=\"Excel 12.0;HDR=YES\" 

Ma quando provo a eseguire il lavoro, non riesce a mostrare il messaggio di errore:

“Il provider OLE DB richiesto Microsoft.ACE.OLEDB.12.0 non è registrato”

Riepilogato: INSTALLAZIONE Ridistribuibile della versione a 32 bit del motore di database di Microsoft Access 2010 . Disinstallare la versione a 64 bit se precedentemente installata. http://www.microsoft.com/en-us/download/details.aspx?id=13255

Il gestore connessioni Excel sta tentando di utilizzare il provider OLE DB ACE per accedere al file Excel quando la versione è superiore a 2007 (xlsx). Sebbene la tua casella sia a 64 bit, stai utilizzando SQL Server Data Tools, un’applicazione a 32 bit. Non esiste una versione a 64 bit per SSDT. Quando si progetta il pacchetto in SSDT, si utilizza un processo a 32 bit, che può utilizzare solo provider a 32 bit. Quando si tenta di scegliere la tabella nel file Excel, il gestore connessioni deve accedere alla versione a 32 bit del provider OLE DB ACE, ma questo provider non è registrato sul computer, viene installata solo la versione a 64 bit.

È necessario scaricare la versione a 32 bit di “Microsoft Access Database Engine 2010 Redistributable”. Quando tenti di installarlo, potresti ricevere un messaggio di errore. È necessario prima disinstallare solo la versione a 64 bit del “Motore di database di Microsoft Access 2010 ridistribuibile”, che probabilmente è stato installato in precedenza. La versione a 64 bit e la versione a 32 bit non possono convivere nello stesso host, quindi dovrai disinstallare (tramite “Programma e funzionalità”) e installare l’altro se desideri passare da uno all’altro.

Una volta terminata la disinstallazione della versione a 64 bit e l’installazione della versione a 32 bit del provider, il problema viene risolto e puoi finalmente scegliere la tabella all’interno del file Excel. Il gestore connessioni Excel è ora in grado di utilizzare il provider OLE DB ACE (versione a 32 bit) per accedere al file Excel.

Penso che puoi scappare semplicemente installando i driver OLEDB – http://www.microsoft.com/en-us/download/details.aspx?id=13255

C’è un modo alternativo. Apri il file Excel in Microsoft Office Excel e salvalo come “Cartella di lavoro Excel 97-2003”. Quindi, utilizzare il nuovo file excel salvato nella connessione file.

Un’altra opzione è eseguire il pacchetto in modalità a 32 bit. Fare clic su solution => properties =? Debug => Imposta esecuzione a 64 bit su falso.

Ho installato il “Microsoft Access Database Engine 2010 Redistributable” come accennato in precedenza e ho riscontrato problemi di bitness di risoluzione dei problemi quando sembrava essere un problema di versione.

L’installazione di “Driver Office System 2007: componenti di connettività dati” lo ha ordinato per me.

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

Probabilmente hai installato i driver a 32 bit, il lavoro verrà eseguito a 64 bit. Maggiori informazioni: http://microsoft-ssis.blogspot.com/2014/02/connecting-to-excel-xlsx-in- chassis.html

Ho seguito le istruzioni per utilizzare l’opzione / passive qui , dopo aver scaricato il motore di database Access a 64 bit. Sono in esecuzione Office 32-bit, SSAS Tabular Model in SQL Server 2012. Quando ho scaricato ed eseguito il motore di database Access a 64 bit, è venuto fuori con un messaggio che diceva che non potevo installare questo senza prima disinstallare Office 2010, ma l’opzione / passive sembra averlo risolto (ora posso importare le cartelle di lavoro di Excel e le tabelle di accesso in un modello tabulare).

La soluzione più semplice per me è stata la modifica del processo di SQL Agent da eseguire nel runtime a 32 bit. Vai a Lavoro SQL> Proprietà clic destro> passaggio> modifica (passaggio)> scheda Opzioni di esecuzione> Usa runtime a 32 bit

immagine dello schermo

La soluzione più semplice che ho trovato è stata quella di specificare la versione Excel 97-2003 sulla configurazione del gestore connessioni.

Stavo ottenendo lo stesso errore dopo aver precedentemente potuto completare operazioni simili. Non ho provato a scaricare nessuno dei pacchetti menzionati poiché non li avevo in precedenza e le cose stavano funzionando. L’IT nel mio lavoro ha fatto un ‘Ripristino’ su Microsoft Office 2013 (Pannello di controllo> Programmi> Aggiungi / Rimuovi – Seleziona Cambia, quindi Ripristina). Ci sono voluti alcuni minuti per completare, ma sistemato tutto.