Pregunta

He escrito algo de código VBA en un libro de Excel para recuperar datos de una base de datos en el mismo directorio en un escritorio. Funciona bien en mi máquina y varias otras máquinas con Windows XP, pero cuando probamos esto en una máquina Vista, nos encontramos con el siguiente error:

  

No se pudo encontrar ISAM instalable

He hecho un montón de búsqueda en línea, pero parece que no puede encontrar una respuesta concreta. La cadena de conexión parece estar bien, y, como he mencionado, funciona en varias máquinas.

¿Alguien tiene alguna idea de lo que podría estar causando esto? Mi cadena de conexión es el siguiente:

Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\ptdb\Program Tracking Database.mdb;

Gracias

No hay solución correcta

Otros consejos

Poner comillas simples alrededor del Extended Properties:

OleDbConnection oconn = 
    new OleDbConnection(
        @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + path + ";Extended Properties='Excel 8.0;HDR=YES;IMEX=1;';");

Pruébalo, realmente funciona.

Trate de poner comillas simples alrededor de la fuente de datos:

Provider=Microsoft.Jet.OLEDB.4.0;Data Source='D:\ptdb\Program Tracking Database.mdb';

El problema tiende a ser el espacio de color blanco que tiene sentido al analizador.

Si tuviera otros atributos (por ejemplo, las propiedades extendidas), sus valores también pueden tener que estar encerrado entre comillas simples:

Provider=Microsoft.Jet.OLEDB.4.0;Data Source='D:\ptdb\Program Tracking Database.mdb'; Extended Properties='Excel 8.0;HDR=YES;IMEX=1;';

Se podría igualmente bien utilizar comillas dobles; Sin embargo, es probable que tenga que escapar de ellos, y me parece que más de un Dolor en el algoritmo que el uso de los solteros.

¿Ha comprobado este http://support.microsoft.com/kb/209805 ? En particular, si usted tiene Msrd3x40.dll.

También te puede interesar para comprobar que dispone de la última versión de Jet: http: // support. microsoft.com/kb/239114

Sólo tiene que utilizar Jet OLEDB: en la cadena de conexión. se resuelve para mí.

un ejemplo es el siguiente:

"Provider=Microsoft.Jet.OLEDB.4.0;Persist Security Info=False;Data Source=E:\Database.mdb;Jet OLEDB:Database Password=b10w"

Sólo he encontrado un problema muy similar.

Al igual que usted, mi cadena de conexión apareció correcta - y, de hecho, exactamente de la misma cadena de conexión estaba trabajando en otros escenarios

.

El problema resultó ser la falta de recursos. 19 veces de cada 20, me gustaría ver el "No se pudo encontrar ISAM instalable", pero una vez o dos veces (sin ningún tipo de código cambia en absoluto), se produciría "Memoria insuficiente" en su lugar.

Al reiniciar la máquina "resuelto" el problema (por ahora ...?). Esto sucedió utilizando Jet versión 4.0.9505.0 en Windows XP.

He utilizado este para actualizar un archivo xlsx Excel 12

        System.Data.OleDb.OleDbConnection MyConnection;
        System.Data.OleDb.OleDbCommand myCommand = new System.Data.OleDb.OleDbCommand();
        MyConnection = new System.Data.OleDb.OleDbConnection("provider=Microsoft.ACE.OLEDB.12.0;Data Source='D:\\Programming\\Spreadsheet-Current.xlsx';Extended Properties='Excel 12.0;HDR=YES;';");
        MyConnection.Open();
        myCommand.Connection = MyConnection;
        string sql = "Update [ArticlesV2$] set [ID]='Test' where [ActualPageId]=114";// 
        myCommand.CommandText = sql;
        myCommand.ExecuteNonQuery();
        MyConnection.Close();

Utilice esta cadena de conexión

string connectionString = @"Provider=Microsoft.ACE.OLEDB.12.0;" +
      "Data Source=" + strFileName + ";" + "Extended Properties=" + "\"" + "Excel 12.0;HDR=YES;" + "\"";

Este problema se debe a que la máquina no puede encontrar el (método controlador secuencial indexado) el ISAM correcta registrada que Access necesita.

Es probablemente porque la máquina no tiene instalado MSACeesss? Me aseguraría de que tiene la última versión de Jet, y si aún así no funciona, encontrar el archivo Msrd3x40.dll de una de las otras máquinas, copiarlo en algún lugar de la máquina de Vista y regsvr32 llamada en ella (en el modo de administrador ) que debe solucionar el problema para usted.

Utilice la cadena de conexión de abajo para leer desde un archivo XLSX:

  

ConnectionString cadena = "Provider = Microsoft.ACE.OLEDB.12.0; Datos   Fuente = "+ <> +", y lo extiende   Propiedades = Excel 8.0; ";

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top