Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft Access Новый топик    Ответить
 Как побороть ошибку ? - "Невозможно найти устанавливаемый ISAM"  [new]
Yuri KR
Member

Откуда:
Сообщений: 145
Добрый день,

Использую для соединения с XLS файлом нижеследующий код.
Выдается ошибка - "Невозможно найти устанавливаемый ISAM"

Все, что нагуглил не помогает.
Если из строки соединения убрать HDR=YES; IMEX=1, то соединение устанавливается.
Но мне необходимо именно такая строка соединения...

Может кто сталкивался c такой проблемкой или есть практический совет?
Спасибо!

Set Cnn = New ADODB.Connection
With Cnn
.Provider = "Microsoft.ACE.OLEDB.12.0"
.ConnectionString = "Data Source= """ & Path_to_File & """;" & _
"Extended Properties=Excel 12.0 ; HDR=YES; IMEX=1"
.Open
End With

strQuery = "SELECT * FROM [“Лист1$”]
Set rst = Cnn.Execute(strQuery)
16 май 19, 09:45    [21885914]     Ответить | Цитировать Сообщить модератору
 Re: Как побороть ошибку ? - "Невозможно найти устанавливаемый ISAM"  [new]
court
Member

Откуда:
Сообщений: 1665
Yuri KR
Использую для соединения с XLS файлом нижеследующий код.

XLS ? не XLSX ?
Если XLS, то должно быть Extended Properties="Excel 8.0;HDR=YES;IMEX=1"
Если XLSX, то - Extended Properties="Excel 12.0 Xml;HDR=YES;IMEX=1"

просвещайся :)
16 май 19, 09:58    [21885933]     Ответить | Цитировать Сообщить модератору
 Re: Как побороть ошибку ? - "Невозможно найти устанавливаемый ISAM"  [new]
Кривцов Анатолий
Member

Откуда:
Сообщений: 241
Yuri KR, а если вручную импортировать файл, выполняется?
16 май 19, 11:03    [21886020]     Ответить | Цитировать Сообщить модератору
 Re: Как побороть ошибку ? - "Невозможно найти устанавливаемый ISAM"  [new]
Yuri KR
Member

Откуда:
Сообщений: 145
court, файл XLSX

И даже XLSM c макросами.

Но ошибка вылетает та же.
16 май 19, 11:18    [21886034]     Ответить | Цитировать Сообщить модератору
 Re: Как побороть ошибку ? - "Невозможно найти устанавливаемый ISAM"  [new]
Yuri KR
Member

Откуда:
Сообщений: 145
Кривцов Анатолий, вручную в Access импортируется, только неправильно определяется формат одной из колонок.
Там значения перемешаны, типа:
00134
00135
00136
ВВГнг-0,66-10015
ВВГнг-0,66-10025
ВВГнг-0,66-10040

Из=за этого и ставлю в строку соединения: XML; HDR=1 ; IMEX=1, чтобы данные воспринимались как текстовые.

Но выскакивает ошибка с ISAM
16 май 19, 11:22    [21886038]     Ответить | Цитировать Сообщить модератору
 Re: Как побороть ошибку ? - "Невозможно найти устанавливаемый ISAM"  [new]
court
Member

Откуда:
Сообщений: 1665
Yuri KR
court, файл XLSX

И даже XLSM c макросами.

Но ошибка вылетает та же.
ты по ссылке сходил ?

для "даже XLSM c макросами", так : Extended Properties="Excel 12.0 Macro;HDR=YES;IMEX=1";
16 май 19, 11:40    [21886055]     Ответить | Цитировать Сообщить модератору
 Re: Как побороть ошибку ? - "Невозможно найти устанавливаемый ISAM"  [new]
Yuri KR
Member

Откуда:
Сообщений: 145
court, ссылку смотрел конечно, полезная информация

Строку проверял.... но ошибка та же.
Extended Properties="Excel 12.0 Macro;HDR=YES;IMEX=1";

Нашел несколько вариантов рекомендаций, где нужно править реестр или переустановить MS Office
Уже склоняюсь к этим действиям...
16 май 19, 12:06    [21886081]     Ответить | Цитировать Сообщить модератору
 Re: Как побороть ошибку ? - "Невозможно найти устанавливаемый ISAM"  [new]
Прогер_самоучка
Member

Откуда:
Сообщений: 67586
Yuri KR
"Extended Properties=Excel 12.0 ; HDR=YES; IMEX=1"
какой у вас стоит офис?
16 май 19, 12:08    [21886085]     Ответить | Цитировать Сообщить модератору
 Re: Как побороть ошибку ? - "Невозможно найти устанавливаемый ISAM"  [new]
Кривцов Анатолий
Member

Откуда:
Сообщений: 241
Думаю, что если укажете HDR=0; IMEX=1, то ошибки не будет.
Драйвер определяет тип поля по значениям в первых строках с данными (8 что ли).
А у вас, видимо, в этих строках числа. Когда вы указываете HDR=0, то в число проверяемых строк включается и 1-я с заголовками (т.е. с текстом), поэтому всё работает.
Как варианты решения:
Переместите вверх строку с текстовым значением в этом столбце;
Или добавьте под заголовками строку с правильными типами значений и исключите ее в запросе;
Или отсортируйте строки по убыванию в этом столбце.

ЗЫ. А то, что текст ошибки не соответствует причине - такое бывает.
16 май 19, 12:09    [21886087]     Ответить | Цитировать Сообщить модератору
 Re: Как побороть ошибку ? - "Невозможно найти устанавливаемый ISAM"  [new]
Yuri KR
Member

Откуда:
Сообщений: 145
Кривцов Анатолий,

это я проверил сразу, данные местами менял (тестовые строки ставил первыми), ничего это не изменяет, к сожалению...
HDR=0 в этом случае ничего не дает.

У меня стоит MS OFFICE 10,
До этого использовался 2007
И одно время стояло два офиса одновременно. Может это и дает такой эффект.
16 май 19, 12:38    [21886117]     Ответить | Цитировать Сообщить модератору
 Re: Как побороть ошибку ? - "Невозможно найти устанавливаемый ISAM"  [new]
Yuri KR
Member

Откуда:
Сообщений: 145
Прогер_самоучка,

У меня стоит MS OFFICE 10,
До этого использовался 2007
И одно время стояло два офиса одновременно. Может это и дает такой эффект.
16 май 19, 12:39    [21886118]     Ответить | Цитировать Сообщить модератору
 Re: Как побороть ошибку ? - "Невозможно найти устанавливаемый ISAM"  [new]
Кривцов Анатолий
Member

Откуда:
Сообщений: 241
Yuri KR, может дадите файл для опытов?
16 май 19, 13:01    [21886144]     Ответить | Цитировать Сообщить модератору
 Re: Как побороть ошибку ? - "Невозможно найти устанавливаемый ISAM"  [new]
Yuri KR
Member

Откуда:
Сообщений: 145
Кривцов Анатолий, высылаю два файла (test1.xlsx - источник данных, TST_Connection - внутри код )

К сообщению приложен файл (TEST.rar - 46Kb) cкачать
16 май 19, 15:07    [21886353]     Ответить | Цитировать Сообщить модератору
 Re: Как побороть ошибку ? - "Невозможно найти устанавливаемый ISAM"  [new]
court
Member

Откуда:
Сообщений: 1665
Yuri KR,

параметры Extended Properties в КАВЫЧКАХ !
Тут же выделил специально 21885933
16 май 19, 15:13    [21886362]     Ответить | Цитировать Сообщить модератору
 Re: Как побороть ошибку ? - "Невозможно найти устанавливаемый ISAM"  [new]
court
Member

Откуда:
Сообщений: 1665
court
Yuri KR,

параметры Extended Properties в КАВЫЧКАХ !
Тут же выделил специально 21885933


вот так всё выполнилось

Public Sub ConnectToExcel()

Set Cnn = New ADODB.Connection
    With Cnn
           .Provider = "Microsoft.ACE.OLEDB.12.0"
           .ConnectionString = "Data Source=C:\temp\TEST\Test1.xlsx;" & _
           "Extended Properties=""Excel 12.0; Xml; HDR=YES; IMEX=1"""
           .Open
    End With
    
    strQuery = "SELECT * FROM [Лист1$]"
    Set rst = Cnn.Execute(strQuery)
    MsgBox rst.GetString
    
End Sub


К сообщению приложен файл. Размер - 89Kb
16 май 19, 15:18    [21886367]     Ответить | Цитировать Сообщить модератору
 Re: Как побороть ошибку ? - "Невозможно найти устанавливаемый ISAM"  [new]
Yuri KR
Member

Откуда:
Сообщений: 145
court, огромное спасибо !!! Сейчас все работает корректно !!!

На кавычки конечно смотрел, да и были они ... "Excel 12.0 Xml;HDR=YES;IMEX=1"

Но как вы догадались, что нужно именно так: "Extended Properties=""Excel 12.0; Xml; HDR=YES; IMEX=1"""
В кавычки взять группами и еще плюс закрывающая ...
Супер!


P.S. И конечно система могла бы написать, что неправильный синтаксис, а то упоминание ISAM вводит сильно в заблуждение !!!
16 май 19, 16:11    [21886426]     Ответить | Цитировать Сообщить модератору
 Re: Как побороть ошибку ? - "Невозможно найти устанавливаемый ISAM"  [new]
Yuri KR
Member

Откуда:
Сообщений: 145
court, прошу прощения,
А где можно почитать вообще о всех параметрах подключения к файлу Excel ?

Например, как подключиться в режиме - только чтение или чтение и запись?
16 май 19, 21:37    [21886650]     Ответить | Цитировать Сообщить модератору
 Re: Как побороть ошибку ? - "Невозможно найти устанавливаемый ISAM"  [new]
court
Member

Откуда:
Сообщений: 1665
Yuri KR
Например, как подключиться в режиме - только чтение

ReadOnly=True в Extended Properties строки подключения
https://www.autoitscript.com/wiki/ADO_ConnectionString_Excel
17 май 19, 09:58    [21886909]     Ответить | Цитировать Сообщить модератору
 Re: Как побороть ошибку ? - "Невозможно найти устанавливаемый ISAM"  [new]
Кривцов Анатолий
Member

Откуда:
Сообщений: 241
Yuri KR
как подключиться в режиме - только чтение или чтение и запись?
Дело в том, что 1 в параметре ImEx (т.е. EMportEXport), это режим импорта (т.е. только чтение). При ImEx = 2 режим чтение/запись, но начиная с офиса 2003 (даже немного раньше) редактирование не допускается. Только чтение или экспорт с созданием нового листа в существующем или новом файле.
17 май 19, 11:09    [21887020]     Ответить | Цитировать Сообщить модератору
 Re: Как побороть ошибку ? - "Невозможно найти устанавливаемый ISAM"  [new]
Yuri KR
Member

Откуда:
Сообщений: 145
Спасибо всем огромное за ответы!
Всем хороших выходных!
17 май 19, 17:34    [21887520]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft Access Ответить