So che ho questo problema ancora e ancora quando distribuisco la mia applicazione su un nuovo server perché sto usando questo driver per connettermi a un file Excel. Quindi ecco cosa sto facendo di recente.
C'è un Windows Server 2008 R2, installo i driver di Access per una macchina a 64 bit e mi sbarazzo di questo messaggio, il che mi rende molto felice di imbattermi in un altro.
Questo qui sotto funziona magnificamente sulla mia macchina di sviluppo, ma sul server mi dà un errore anche dopo aver installato gli ultimi driver ODBC, che penso sia questo il problema, ma è così che l'ho risolto.
private const string OledbProviderString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=|DataDirectory|\\OlsonWindows.xls;Extended Properties=\"Excel 8.0;HDR=YES\"";
Sostituisco con il nuovo provider come questo di seguito:
private const string OledbProviderString = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=|DataDirectory|\OlsonWindows.xlsx;Extended Properties='Excel 12.0;HDR=YES;';";
Ma mentre lo faccio, c'è una cosa che dovresti notare. L'uso dell'estensione del file .xlsx e della versione di Excel è 12.0.
Dopo aver visualizzato questo messaggio di errore Errore: "Impossibile trovare ISAM installabile" , decido di modificare le cose un po 'come di seguito:
private const string OledbProviderString = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=|DataDirectory|\OlsonWindows.xls;Extended Properties='Excel 8.0;HDR=YES;';";
e sì, ho finito con quella brutta cosa, ma qui ho ricevuto un altro messaggio Il motore di database di Microsoft Access non può aprire o scrivere nel file "time_zone". È già aperto esclusivamente da un altro utente o è necessaria l'autorizzazione per visualizzare e scrivere i suoi dati. il che mi dice che non sono lontano dal risolverlo.
Forse c'è un altro processo che ha aperto il file nel frattempo e tutto quello che devo fare è un riavvio e tutto inizierà a funzionare senza problemi come previsto.