Ошибка: «Не удалось найти Installable ISAM»

Я написал код VBA в книге Excel для извлечения данных из базы данных Access в том же каталоге на рабочем столе. Он отлично работает на моей машине и нескольких других компьютерах под управлением Windows XP, но когда мы протестировали это на машине Vista, мы столкнулись со следующей ошибкой:

Не удалось найти устанавливаемый ISAM

Я сделал кучу поиска в Интернете, но, похоже, не нашел конкретного ответа. Строка подключения кажется прекрасной, и, как я уже упоминал, она работает на нескольких машинах.

Кто-нибудь знает, что может быть причиной этого? Строка подключения следующая:

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

благодаря

Поместите одинарные кавычки вокруг Extended Properties :

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

Попробуйте, это действительно работает.

Попробуйте поставить одинарные кавычки вокруг источника данных:

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

Проблема имеет тенденцию быть белым пространством, которое имеет смысл для синтаксического анализатора.

Если у вас есть другие атрибуты (например, расширенные свойства), их значения также могут быть заключены в одинарные кавычки:

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

Вы также можете использовать двойные кавычки; однако вам, вероятно, придется избегать их, и я нахожу, что больше боли в алгоритме, чем использование синглов.

Вы проверили это http://support.microsoft.com/kb/209805 ? В частности, есть ли у вас Msrd3x40.dll.

Вы также можете проверить, что у вас установлена ​​последняя версия Jet: http://support.microsoft.com/kb/239114

Просто используйте Jet OLEDB: в строке подключения. он решил для меня.

пример ниже:

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

Я только что столкнулся с очень похожими проблемами.

Как и вы, моя строка подключения оказалась правильной – и действительно, точно такая же строка соединения работала в других сценариях.

Проблема оказалась нехваткой ресурсов. 19 раз из 20, я бы увидел, что «Не удалось найти устанавливаемый ISAM», но один или два раза (без каких-либо изменений кода вообще), вместо этого вместо него будет «Out of memory».

Перезагрузка машины «решила» проблему (на данный момент …?). Это произошло с помощью Jet версии 4.0.9505.0 в Windows XP.

Я использовал это, чтобы обновить файл excel 12 xlsx

  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(); 

Используйте эту строку подключения

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

Эта проблема связана с тем, что машина не может найти правильный ISAM (метод индексированного последовательного драйвера), который зарегистрирован для доступа Access.

Вероятно, из-за того, что на компьютере не установлены MSACeesss? Я бы удостоверился, что у вас установлена ​​последняя версия Jet, и если она по-прежнему не работает, найдите файл Msrd3x40.dll с одного из других компьютеров, скопируйте его где-нибудь на машину Vista и вызовите regsvr32 (в режиме администратора ), который должен разобраться в этом для вас.

Используйте следующую строку подключения для чтения из файла XLSX:

string ConnectionString = “Provider = Microsoft.ACE.OLEDB.12.0; Источник данных =” + <> + “; Расширенные свойства = Excel 8.0;”;

  • Отправка HTTP-запросов с помощью VBA из Word
  • Вычисление среднего числа блоков с переменным размером в столбце?
  • Разбор даты и времени ISO8601 (включая TimeZone) в Excel
  • Vlookup для копирования цвета ячейки - Excel VBA
  • Как перенастроить базу данных Excel с 1 длинной строки, на 3 короткие строки и автоматически повторить процесс?
  • Как «сгладить» или «свернуть» таблицу 2D Excel в 1D?
  • Запуск макроса Excel из внешнего Excel с помощью VBScript из командной строки
  • Отображение миллисекунд в Excel
  • Умный способ подключения нескольких изображений к макросу макроса - VAB Excel
  • VBA Short-Circuit `And` Alternatives
  • Прокручивать файлы в папке с помощью VBA?
  • Давайте будем гением компьютера.