Wizard Import/export data MSSQL Server MS 18 da file Excel da' errore Microsoft.ACE.OLEDB.12.0' provider is not registered on the local machine

Anonimo
2020-03-04T15:13:46+00:00

Ho una licenza Office 365, da non molto acquisita, ed uso Windows 10 Pro x64 sempre aggiornato.

Tra le mie attività personale, c'è l'uso di DB Personale gestito SQL Server Express 2014 con interfaccia via Access.

Nel fare una delle mie attività tipiche, caricare il db con dati da Excel, ho scoperto che la consueta procedura import/export guidata da SQL Server Management Studio non funziona, con un errore 'Microsoft.ACE.OLEDB.12.0' provider is not registered on the local machine' quando si sceglie Excel come source.

Dando un'occhiata alla documentazione sui forum ho visto che è un problema noto. Ho installato MS Access 2016 Database Engine 2016 Redistributable, via https://www.microsoft.com/en-us/download/details.aspx?id=54920, ma anche scegliendo come tipo file Excel 2007-2010 come raccomandato da' lo stesso errore. Ho anche provato un altro workaround suggerito, ma la pagina per il download suggerito, credo sia una versione x86, non risulta esistere. Non ho ahimè preso nota di quella url.

Poiché si accenna a compilazioni da VB faccio presente che non sono un programmatore e che quindi su questo avrei eventualmente bisogno di istruzioni molto chiare.

Per me il problema è molto importante, anche se non urgentissimo.

Grazie.

Microsoft 365 e Office | Access | Per la casa | Windows

Domanda bloccata. Questa domanda è stata eseguita dalla community del supporto tecnico Microsoft. È possibile votare se è utile, ma non è possibile aggiungere commenti o risposte o seguire la domanda.

0 commenti Nessun commento

5 risposte

Ordina per: Più utili
  1. Anonimo
    2020-03-07T19:33:14+00:00

    Ho constatato che il Wizard funziona se il file Excel è in formato 97 (non 2007-2010). Non è la soluzione ideale, ma, se non ci sono idee più brillanti, posso accontentarmi.

    La risposta è stata utile?

    0 commenti Nessun commento
  2. Anonimo
    2020-03-05T13:37:40+00:00

    L'inner join non è per me un problema. Per il futuro, tieni conto che sono un pensionato. :-)

    La risposta è stata utile?

    0 commenti Nessun commento
  3. Anonimo
    2020-03-05T11:10:50+00:00

    ....mmmmm....

    Grazie, Sandro, ne tengo conto, ma non è una soluzione, importo ed esporto i campi di intere tabelle tra loro collegate, anche se solo decine o qualche centinaio di righe alla volta. E poi per il mio skill è una soluzione complessa.

    potrebbe essere la volta buona di ampliare le conoscenze e imparare ad impostare un predicato sql con inner join che dici ?

    In ogni caso qui se OT per una richiesta su SqlServer....ed il wizard....mmmm....meglio cominciare ad abbandonarlo alla volta di teniche piu' programmabili.

    In boccal al lupo per il tuo progetto.

    Ciao!

    Sandro.

    La risposta è stata utile?

    0 commenti Nessun commento
  4. Anonimo
    2020-03-05T11:07:19+00:00

    Grazie, Sandro, ne tengo conto, ma non è una soluzione, importo ed esporto i campi di intere tabelle tra loro collegate, anche se solo decine o qualche centinaio di righe alla volta. E poi per il mio skill è una soluzione complessa.

    La risposta è stata utile?

    0 commenti Nessun commento
  5. Anonimo
    2020-03-04T20:01:21+00:00

    ciao Franco,

    solitamente …. non uso wizard di sorta.

    Prova da codice dall'istanza SqlServer, ho testato dal MsSqlServer 2012l la 2014 non ce l'ho installata.

    Express ovviamente.

    In corsivo quanto devi personalizzare per quanto al tuo scenario, il resto lascialo invariato.

    Dal test effettuato importo da Excel alla tabella target senza problemi.

    Facci sapere.

    Ciao, Sandro.

    use tuoDatabase;

    go

    EXECUTE SP_CONFIGURE 'show advanced options', 1

    RECONFIGURE WITH OVERRIDE

    GO

    EXECUTE SP_CONFIGURE 'Ad Hoc Distributed Queries', 1

    RECONFIGURE WITH OVERRIDE

    GO

    EXECUTE SP_CONFIGURE 'show advanced options', 0

    RECONFIGURE WITH OVERRIDE

    GO

    if OBJECT_ID(N'Dbo.table_1','U') is not null drop table dbo.table_1

    SELECT *

    into dbo.table_1

     FROM OPENROWSET('Microsoft.ACE.OLEDB.12.0',

    'Excel 12.0;HDR=Yes;IMEX=1;Database=PathXlsFileConEstenzione',

    'SELECT tuoCampo, tuoCampo2 FROM [tuoFoglioExcel$]')

    go

    select * from dbo.table_1

    go

    Spaccato del risultato :

    La risposta è stata utile?

    0 commenti Nessun commento