Невозможно найти устанавливаемый isam excel

Проблемы

При попытке обновить данные в книге Microsoft Excel, которая ссылается на базу данных Microsoft Access, может появиться следующее сообщение об ошибке:

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

Эта проблема возникает в том случае, если книга была ранее открыта и обновлена в более поздней версии Excel.

Причина

Если книга Excel, связанная с базой данных Access, открыта в более поздней версии Excel, параметры могут быть добавлены в строку подключения. Если более ранняя версия Excel не распознает эти параметры, она вызывает сообщение об ошибке.

Решение

Чтобы устранить эту проблему, удалите новые параметры из строки подключения. Для этого выполните следующие действия:

  1. Откройте книгу Excel.

  2. На ленте Data (данные ) нажмите кнопку Connections (соединения ).

  3. В диалоговом окне подключения к книге выберите подключение к базе данных Access и нажмите кнопку свойства.

  4. В диалоговом окне Свойства подключения откройте вкладку Определение .

  5. Удалите из строки соединения следующие параметры:

    Jet OLEDB: пропуск проверки UserInfo = ложь; Jet OLEDB: ограниченное кэширование базы данных = ложь; Jet OLEDB: обход ChoiceField проверки = ложь

  6. В диалоговом окне Свойства подключения нажмите кнопку ОК. На этом этапе данные должны быть обновлены.

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

Дополнительная информация

Если вы обновите и сохраните книгу в более новой версии Excel, эта неполадка будет повторяться.

Нужна дополнительная помощь?

copy the below code to a buton click event. then change the path for you mdb and xls.

it will work..100%…………………

Dim DBImportConn As New OleDbConnection

Dim DBImportCmd As New OleDbCommand

Dim DBImportReader As OleDbDataReader

Dim ImpAccessData As Access.Application

Dim FilePath As String

If File.Exists(Application.StartupPath & «DatabasePatientData.mdb») Then

File.Delete(Application.StartupPath & «DatabasePatientData.mdb»)

End If

ImpAccessData = New Access.ApplicationClass

ImpAccessData.Visible = False

ImpAccessData.NewCurrentDatabase(Application.StartupPath & «DatabasePatientData.mdb»)

ImpAccessData.CloseCurrentDatabase()

ImpAccessData.Quit(Access.AcQuitOption.acQuitSaveAll)

ImpAccessData = Nothing

FilePath = Txt_FilePath.Text

If DBImportConn.State = ConnectionState.Open Then DBImportConn.Close()

DBImportConn = New OleDbConnection(«Provider=Microsoft.Jet.OLEDB.4.0;Data Source=» & FilePath & «;Extended Properties=»»Excel 8.0;HDR=Yes;IMEX=1″»;»)

DBImportConn.Open()

DBImportCmd = DBImportConn.CreateCommand

DBImportCmd.CommandText = «SELECT * INTO [MS Access;Database=» & Application.StartupPath & «DatabasePatientData.mdb» & «].[Sheet1] FROM [Sheet1$]»

DBImportCmd.ExecuteNonQuery()

DBImportConn.Close()

STAVR

0 / 0 / 0

Регистрация: 12.03.2012

Сообщений: 40

1

13.05.2015, 21:16. Показов 3206. Ответов 3

Метки нет (Все метки)


Студворк — интернет-сервис помощи студентам

Доброго времени суток.
при выполнении задания возникла проблема с подключением к базе, ругается на con.Open ConnectionString
текст ошибки:
run-time error ‘-2147467259 (80005005)’
Невозможно найти установленный ISAM
Что это за ошибка и как её исправить.
Заранее спасибо!

Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
Sub makros()
Dim klient As String
Dim sotr As String
Dim tyr As String
klient = ""
sotr = ""
tyr = ""
ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0; Data Sourse=" & ActiveWorkbook.Path & "1.accdb; Jet OLEDB:Database"
Dim con As New ADODB.Connection
con.Open ConnectionString
For i = 2 To 5
klient = Cells(i, 1)
sotr = Cells(i, 2)
tyr = Cells(i, 3)
createSQL_insert = "insert into 1(klient,sotr,tyr_marsh) values('" & klient & "','" & sotr & "','" & tyr & "')"
con.Execute (createSQL_insert)
Next i
con.Close
End Sub



0



mobile

Эксперт MS Access

26777 / 14456 / 3192

Регистрация: 28.04.2012

Сообщений: 15,782

14.05.2015, 16:51

2

Подключение сделайте таким

Visual Basic
1
2
3
Dim con As New ADODB.Connection
con.Provider = "Microsoft.ACE.OLEDB.12.0"
con.Open ActiveWorkbook.Path & "1.accdb"



2



6076 / 1320 / 195

Регистрация: 12.12.2012

Сообщений: 1,023

14.05.2015, 20:10

3

STAVR, программе непонятно, что за зверь такой:

Data Sourse

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

С уважением,

Аксима



1



0 / 0 / 0

Регистрация: 12.03.2012

Сообщений: 40

15.05.2015, 15:44

 [ТС]

4

Цитата
Сообщение от mobile
Посмотреть сообщение

Подключение сделайте таким
Код Visual Basic
1
2
3
Dim con As New ADODB.Connection
con.Provider = «Microsoft.ACE.OLEDB.12.0»
con.Open ActiveWorkbook.Path & «1.accdb»

Спасибо большое, теперь всё работает.



0



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

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

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

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

Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:ptdbProgram Tracking Database.mdb;

Спасибо

04 фев. 2009, в 14:42

Поделиться

Источник

9 ответов

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

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

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

bhupendra singh
23 май 2012, в 06:33

Поделиться

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

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

BIBD
04 фев. 2009, в 17:18

Поделиться

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

приведен пример ниже:

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

Rezoan
08 апр. 2013, в 13:08

Поделиться

Я использовал это для обновления файла 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();

MarkVL
25 нояб. 2015, в 22:46

Поделиться

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

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

Shahid Manzoor
13 окт. 2011, в 06:19

Поделиться

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

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

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

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

Chris Nielsen
13 окт. 2009, в 23:46

Поделиться

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

string ConnectionString = «Provider = Microsoft.ACE.OLEDB.12.0; Source =» + < > + «; Extended Свойства = Excel 8.0;»;

Raghav
22 нояб. 2012, в 14:26

Поделиться

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

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

pezi_pink_squirrel
04 фев. 2009, в 17:38

Поделиться

Ещё вопросы

  • 1Происходит ли бокс при передаче массива через интерфейс IList <T>?
  • 0При запуске тестового приложения VirtualBoxSDK возвращается ошибка «Ошибка создания экземпляра виртуальной коробки»
  • 0функция JavaScript не работает в Firefox
  • 1Как смоделировать конкретные методы и направить остальные методы в конкретную реализацию интерфейса?
  • 0страница ссылки asp.net обновляет страницу после загрузки pdf
  • 0Ввод в Unicode в MySQL и угловой
  • 1Как писать и читать текст с помощью жестов ввода в Android?
  • 1Отрегулировать высоту формы в соответствии с общим количеством строк в datagridview?
  • 1Я хочу иметь возможность наследовать от класса внутри, но запретить класс в других сборках наследовать от класса
  • 0ошибка C2059: синтаксическая ошибка: ‘,’ — для макроса ‘getcwd’
  • 1Кэш данных Elasticsearch распределен?
  • 1JavaScript подсчитывает значения во вложенных объектах
  • 1Использование класса POCO в качестве класса домена, но с пользовательскими получателями и установщиками ссылок?
  • 0Не показывает продукты на домашней странице в magento 1.9
  • 0Связывание таблиц SQL не будет работать для трех таблиц
  • 1Разница между текущей датой и введенной датой в Android
  • 0wxWidgets: размеры и потраченное впустую пространство
  • 1скрипт Python, который выводит сигнал перенаправления для указания браузера на целевую целевую страницу
  • 0Многократный условный оператор в запросе MySQL
  • 1JavaFX обратный вызов в Lambda
  • 1ImportError: невозможно импортировать имя ‘sync’
  • 1Windows Phone XAML: как предотвратить прокрутку страницы при скольжении клавиатуры
  • 1Eclipse зависает при попытке добавить menu.xml
  • 1Замена фрагмента в пейджере представления
  • 0модель angularJS со столом
  • 0Как отформатировать выбранный столбец даты в формате относительного времени в SQL
  • 0Специализированная функция шаблона для строкового итератора, использующего черты типа
  • 0Где в Codeigniter я могу определить, находится ли пользователь на мобильном устройстве?
  • 1IIFE — это то же самое, что инициализация в разработке Java?
  • 1В Spring & Ball Game, как заставить Коллайдер толкнуть мяч?
  • 1Изменение play.tmp в Play! Framework не меняет папку загрузки по умолчанию
  • 0Почему элемент <br> имеет больше высоты, чем line-height
  • 1Определите «__sum__» для класса
  • 0Как отобразить многомерный массив с помощью foreach
  • 1торнадо: передать строковые данные в код JavaScript на визуализированной странице
  • 1Как написать пользовательское исключение с пользовательскими полями?
  • 0Использование «div» в качестве селектора CSS
  • 1Запись данных в сетке в текстовый файл с форматированием
  • 1Добавить файл Excel, используя Apache POI
  • 0c ++, когда запись не найдена на карте
  • 0Зачем включать QtWidgets для приложения командной строки?
  • 0jQuery пользовательский селектор-индекс не работает?
  • 0почему не сохранили данные формы в Laravel?
  • 1Загрузка большого количества изображений из таблицы спрайтов
  • 1Переопределить канал при тестировании компонента
  • 0jstree + json — элементы массива, входящие в один элемент списка
  • 0Несколько в операторах выбора в одном запросе
  • 0Как я могу передать закодированный в json ответ на другую страницу?
  • 0Утечки памяти в C ++ из-за статической переменной [duplicate]
  • 1Панды — являются ли определенные строки dataframeA подмножеством определенных строк dataframeB?

Сообщество Overcoder

Как разрешить «Не удалось найти устанавливаемый ISAM». ошибка для поставщика OLE DB «Microsoft.ACE.OLEDB.12.0»

Яндекс.Директ

СМС рассылка без абонплаты!

Решения LoRaWAN для ЖКХ и города

Получите Допуск СРО! Акция — От 55т.р!

Я пытаюсь импортировать данные из файлов Excel 2007 (.xlsx) в SQL Server 2008 с помощью команды T-SQL OpenRowset() с поставщиком OLE DB «Microsoft.ACE.OLEDB.12.0» , и я получаю постоянная ошибка «Не удалось найти устанавливаемый ISAM». Все аппаратные средства 32-разрядные.

[Пересмотрено 1/10/12, чтобы попытаться более резко сосредоточиться на аномалиях)

Следующий оператор T-SQL создает ошибку:

SELECT * FROM OPENROWSET(‘Microsoft.ACE.OLEDB.12.0’,

‘Data Source=C:workTestData.xlsx;Extended Properties=»Excel 12.0 XML;HDR=YES»‘,

‘SELECT * FROM [Sheet1$]’

)

Если я сохраню файл Excel в формате Excel 97-2003 (.xls) и использую более старый поставщик Microsoft.Jet.OLEDB.4.0 для импорта данных, он работает нормально. Это заставляет меня думать, что это не проблема безопасности или другая экологическая проблема.

SELECT * FROM OPENROWSET(‘Microsoft.Jet.OLEDB.4.0’,

‘Excel 8.0;Database=C:workTestData.xls;HDR=YES’,

‘SELECT * FROM [Sheet1$]’

)

Однако, когда я пытаюсь создать файл *.xls с поставщиком Microsoft.ACE.OLEDB.12.0, который должен быть обратно совместим с форматом *.xls, он снова терпит неудачу с той же ошибкой:

SELECT * FROM OPENROWSET(‘Microsoft.ACE.OLEDB.12.0’,

‘Data Source=C:workTestData.xls;Extended Properties=»Excel 8.0;HDR=YES»;’,

‘SELECT * FROM [Sheet1$]’

)

Кроме того, интересно, когда я использую мастер SSMS «Импорт данных…», он отлично работает. Я сохранил вывод мастера импорта данных в виде пакета SSIS и просмотрел файл SSIS, чтобы попытаться выяснить, как он работает, и он успешно использует поставщика Microsoft.ACE.OLEDB.12.0. Это строка соединения из пакета SSIS:

<DTS:Property DTS:Name=»ConnectionString»>

Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:workTestData.xlsx;Extended Properties=»Excel 12.0 XML;HDR=YES»;

</DTS:Property>

Я также выполнил соответствующую конфигурацию SQL Server, чтобы разрешить распространенный запрос OPENROWSET:

sp_configure ‘show advanced options’, 1

reconfigure

GO

sp_configure ‘Ad Hoc Distributed Queries’, 1

reconfigure

GO

Если я также установил следующие значения * sp_MSset_oledb_prop * (которые я нашел в сообщении где-нибудь)…

USE [master]

GO

EXEC master.dbo.sp_MSset_oledb_prop N’Microsoft.ACE.OLEDB.12.0′, N’AllowInProcess’, 1

GO

EXEC master.dbo.sp_MSset_oledb_prop N’Microsoft.ACE.OLEDB.12.0′, N’DynamicParameters’, 1

GO

… тогда ошибка изменится на «Unspecified error»:

OLE DB provider «Microsoft.ACE.OLEDB.12.0» for linked server «(null)» returned message «Unspecified error».

Msg 7303, Level 16, State 1, Line 1

Cannot initialize the data source object of OLE DB provider «Microsoft.ACE.OLEDB.12.0» for linked server «(null)».

Однако я не уверен, что это ошибка восходящего или нисходящего потока. (Теперь он находит «устанавливаемый ISAM», но впоследствии не работает?)

Я пробовал это с несколькими файлами Excel на двух разных машинах/операционных системах (Windows Server 2003, Windows XP SP3). Обе машины 32-разрядные.

Я также попытался переустановить версии AccessDatabaseEngine.exe для Office 2007 и Office 2010 (http://www.microsoft.com/download/en/details.aspx?id=23734 и http://www.microsoft.com/download/en/details.aspx?id=13255, соответственно), безрезультатно.

Подводя итог:

«Microsoft.Jet.OLEDB.4.0» работает с использованием T-SQL, но «Microsoft.ACE.OLEDB.12.0» этого не делает.

«Microsoft.ACE.OLEDB.12.0» работает с помощью мастера «Импорт данных…» (насколько я могу сказать из сохраненного файла задания SSIS).

Настройка свойств «AllowInProcess» и «DynamicParameters» на «1» изменяет ошибку на «Unspecified error». (Это шаг вперед?!)

Любые мысли?

+18

tsql excel-2007 oledb openrowset isam

Martin_ATS 10 янв. ’12 в 2:48

источник

поделиться

7 ответов

ПОПРОБУЙТЕ это, это может вам помочь:

установите path и strFileType согласно требованию

string connString = «»;

// string strFileType = Path.GetExtension(UpfileName.FileName).ToLower();

// string path = UpfileName.PostedFile.FileName;

if (strFileType.Trim() == «.xls»)

{

connString = «Provider=Microsoft.Jet.OLEDB.4.0;Data Source=» + path + «;Extended Properties=»Excel 8.0;HDR=Yes;IMEX=2″»;

}

else if(strFileType.Trim() == «.xlsx»)

{

connString = «Provider=Microsoft.ACE.OLEDB.12.0;Data Source=» + path + «;Extended Properties=»Excel 12.0;HDR=Yes;IMEX=2″»;

}

+1

Sagar R 30 янв. ’14 в 9:42

источник

поделиться

Хай также столкнулся с такой ситуацией, я решил ее

решаемые

string ConeectionString = String.Format(@»Provider=Microsoft.ACE.OLEDB.12.0;Data Source=» + txtFlp.Text

+ «;Extended Properties=»Excel 12.0 Xml;HDR=YES»»);

OleDbConnection oconn = new OleDbConnection(ConeectionString);</b>

0

user4049619 17 сент. ’14 в 9:03

источник

поделиться

другие ответы

Связанные вопросы

2

Не удалось найти устанавливаемый ISAM. Ошибка сервера в приложении

1

Соединение OLEDB с базой данных Access с паролем: «Не удалось найти устанавливаемый ISAM»

0

сохраняйте это исключение System.Data.OleDb.OleDbException(0x80004005) :?

0

VB.NET Microsoft.ACE.OLEDB.12.0 — Выберите команду col

Похожие вопросы

66

Поставщик Microsoft.ACE.OLEDB.12.0 не зарегистрирован

11

Поставщик Microsoft.ACE.OLEDB.12.0 больше не может открывать .mdb под Windows 8

1

Как узнать причину разрешения поставщика OLE на SQL Server?

1

Агент SQL Server не может выполнить запрос OPENROWSET, но я могу — «Microsoft.ACE.OLEDB.12.0» для связанного сервера «(null)» сообщила об ошибке

0

Экспорт данных из SQL Server 2014 в Excel

0

Поставщик OLE DB «Microsoft.ACE.OLEDB.12.0» вернул сообщение «Неопределенная ошибка»

0

«Не удалось найти Installable ISAM» С# Exception после чтения xls файла

0

Ошибка. Поставщик «Microsoft.ACE.OLEDB.12.0» не зарегистрирован на локальном компьютере.

0

Поставщик «Microsoft.ACE.OLEDB.12.0» не зарегистрирован на локальном компьютере. Microsoft Excel 2016

0

не удалось найти устанавливаемый isam [vb.net]

НАКОНЕЦ, решение!

Проверьте это: Msg 7302, уровень 16, состояние 1, строка 1 Невозможно создать экземпляр поставщика OLE DB «Microsoft.ACE.OLEDB.12.0» для связанного сервера «(null)»

В принципе, вы переходите к

Панель управления > Администрирование > Службы компонентов

затем разверните

Службы компонентов > Компьютеры > Мой компьютеp > Конфигурация DCOM

находка

MSDAINITIALIZE

перейдите к

Свойствa > Безопасность > Разрешения запуска и активации

нажмите

Настроить > Изменить…

добавьте свое имя пользователя или «все», если вы предпочитаете

отметьте ВСЕ поля «разрешить» для нового пользователя/группы

и нажмите ОК на обеих страницах

Теперь посмотрите, работает ли ваша команда OpenRowSet/OpenDataSource

Благодаря Ramesh Babu Vavilla (vr.babu) с сайта social.technet.microsoft.com для ссылки

0

Hamid Sadeghian 19 мая ’14 в 10:30

источник

поделиться

Это сработало для меня:

SELECT * FROM OPENROWSET(‘Microsoft.ACE.OLEDB.12.0’,

‘Excel 12.0;HDR=NO;Database=C:tempfile.xlsx;’,[sheetname$])

0

Simon Turner 18 июл. ’17 в 11:27

источник

поделиться

Попробуйте это

SELECT * FROM OPENROWSET(‘Microsoft.ACE.OLEDB.12.0’,

‘EXCEL 12.0;DataBase=C:TEMPtest.xlsx;Extended Properties=»EXCEL 12.0 Xml;HDR=YES’, [Sheet1$])

0

Gurm 26 февр. ’13 в 17:01

источник

поделиться

Я думаю, что ответ скрывается в информации о пакете SSIS, которую вы опубликовали. Новый формат файла xlsx хранит данные в формате XML вместо старого. Посмотрите на это снова. Он читает… Расширенные свойства = «Excel 12.0 XML; HDR = YES

Не пропустите этот XML после стандартного материала. (Для чего это стоит, я также прочитал, что вам нужно «Excel 12.0 Macro» для подключения к файлу xslm.)

Попробуй. Странно, но, надеюсь, это работает.

0

IHateScreenNamesToo 27 апр. ’12 в 18:16

источник

поделиться

Я решил с этим запросом:

SELECT * FROM OPENROWSET(‘Microsoft.ACE.OLEDB.12.0’,

‘Excel 12.0;HDR=NO;Database=D:Filename.xlsx;’,

[SheetName$])

Кажется, sql не нравится раздел «Расширенные свойства»…

Понравилась статья? Поделить с друзьями:
  • Невозможно изменить ячейку excel
  • Невозможно изменить часть массива excel
  • Невозможно изменить excel файл
  • Невозможно запустить это приложение на вашем пк windows 10 excel
  • Невозможно закрыть приложение microsoft word так как открыто диалоговое окно что делать