Проблемы
При попытке обновить данные в книге Microsoft Excel, которая ссылается на базу данных Microsoft Access, может появиться следующее сообщение об ошибке:
Не удалось найти устанавливаемый ISAM
Эта проблема возникает в том случае, если книга была ранее открыта и обновлена в более поздней версии Excel.
Причина
Если книга Excel, связанная с базой данных Access, открыта в более поздней версии Excel, параметры могут быть добавлены в строку подключения. Если более ранняя версия Excel не распознает эти параметры, она вызывает сообщение об ошибке.
Решение
Чтобы устранить эту проблему, удалите новые параметры из строки подключения. Для этого выполните следующие действия:
-
Откройте книгу Excel.
-
На ленте Data (данные ) нажмите кнопку Connections (соединения ).
-
В диалоговом окне подключения к книге выберите подключение к базе данных Access и нажмите кнопку свойства.
-
В диалоговом окне Свойства подключения откройте вкладку Определение .
-
Удалите из строки соединения следующие параметры:
Jet OLEDB: пропуск проверки UserInfo = ложь; Jet OLEDB: ограниченное кэширование базы данных = ложь; Jet OLEDB: обход ChoiceField проверки = ложь
-
В диалоговом окне Свойства подключения нажмите кнопку ОК. На этом этапе данные должны быть обновлены.
-
В диалоговом окне подключения к книге нажмите кнопку Закрыть, а затем сохраните обновленную книгу.
Дополнительная информация
Если вы обновите и сохраните книгу в более новой версии 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 Метки нет (Все метки)
Доброго времени суток.
0 |
mobile 26777 / 14456 / 3192 Регистрация: 28.04.2012 Сообщений: 15,782 |
||||
14.05.2015, 16:51 |
2 |
|||
Подключение сделайте таким
2 |
6076 / 1320 / 195 Регистрация: 12.12.2012 Сообщений: 1,023 |
|
14.05.2015, 20:10 |
3 |
STAVR, программе непонятно, что за зверь такой:
Если вы будете открывать подключение по схеме, предложенной mobile, то вероятность допустить опечатку будет гораздо меньше. С уважением,
1 |
0 / 0 / 0 Регистрация: 12.03.2012 Сообщений: 40 |
|
15.05.2015, 15:44 [ТС] |
4 |
Подключение сделайте таким Спасибо большое, теперь всё работает.
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?
Как разрешить «Не удалось найти устанавливаемый 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 не нравится раздел «Расширенные свойства»…