Имя: Пароль:
1C
1С v8
ADODB.Connection файл Excel с макросами, формат *.xlsm, ошибка при открытии
,
0 aka AMIGO
 
30.07.15
11:22
Код взят из КЗ Книга знаний: Быстрый вывод данных в Excel по OLE с помощью COMSafeArray.

    СтрокаСоединения ="Provider=Microsoft.Jet.OLEDB.4.0;Data Source= " +СокрЛП(ИмяФайла) +" ;Extended Properties=""Excel 8.0;HDR=YES;IMEX=1;""";
    
    Connection = Новый COMОбъект("ADODB.Connection");
    Connection.ConnectionString =  СтрокаСоединения;
    
    Попытка
        Connection.Open();
    Исключение
        Сообщить ("Проблемы с подключением к Excel" ); //с .xlsm попадаю в исключение!
        Возврат;
    КонецПопытки;
    
    RS = Новый COMОбъект("ADODB.Recordset"); //с другим файлом типа
.xls сюда проваливаюсь нормально..

В LibreOffice экселевский файл открывается правильно.

Надоумьте, пожалуйста, в чем дело? В конструкции СтрокиСоединения?
Как заставить читать файл?
1 18_plus
 
30.07.15
11:29
а описаниеошибки() чего скажет?
2 aka AMIGO
 
30.07.15
11:37
(1) Не догадался я применить..

вот что сообщает:

{Форма.Excelстр2.Форма(27)}: Ошибка при вызове метода контекста (Open): Произошла исключительная ситуация (Microsoft JET Database Engine): Внешняя таблица не имеет предполагаемый формат.
3 aka AMIGO
 
30.07.15
11:38
т.е., судя по сообщению об ошибке, содержимое файла не соответствует расширению?
4 18_plus
 
30.07.15
11:42
(3) похоже.
а если в изменить расширение на .zip, откроется как архив?
5 aka AMIGO
 
30.07.15
11:49
(4) сейчас попробую так переименовать.. минуточку..
6 aka AMIGO
 
30.07.15
11:59
да, открывается, как архив
7 18_plus
 
30.07.15
12:02
а офис какой?
гугль говорит, что с новыми офисами нужно использовать не JET, а ACE
Provider=Microsoft.ACE.OLEDB.12.0
Extended Properties="Excel 12.0;HDR=Yes;IMEX=1"
8 aka AMIGO
 
30.07.15
12:08
(7) У меня LibreOffice,  на MSOffice шеф не хочет тратиться.

ACE - пробую..
9 aka AMIGO
 
30.07.15
12:10
+8 Нет, определяет ошибку:
{Форма.Excelстр2.Форма(28)}: Ошибка при вызове метода контекста (Open): Произошла исключительная ситуация (ADODB.Connection): Не удается найти указанный поставщик. Вероятно, он установлен неправильно.
10 aka AMIGO
 
30.07.15
12:14
+9 блин.. извини, друже, 12.0 проставил, заработало, как положено..


Спасибо! Успехов тебе, 18_plus
AdBlock убивает бесплатный контент. 1Сергей