powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / [игнор отключен] [закрыт для гостей] / Ошибка при подключению к екселю через ADO
16 сообщений из 16, страница 1 из 1
Ошибка при подключению к екселю через ADO
    #36006970
vam911
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
При выполнении Open ошибка: "Ошибка при вызове метода контекста (Open). Произошла исключительная ситуация (Microsoft Data base jet engine): небыл задан текст команды для коммандного объекта."

db=Новый COMОбъект("ADODB.Connection");
rs=Новый COMОбъект("ADODB.Recordset");
db.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="+ИмяФайла+";Extended Properties=""Excel 8.0;""";
db.Open();
rs.ActiveConnection = db;
rs.CursorType = 3;
rs.LockType = 2;
//rs.Source = "Select * from [TDSheet 2$A1:E10000]";
rs.Source = "Select * from [Лист(1)$]";

rs.Open();

Ничего не понимаю :((.
...
Рейтинг: 0 / 0
Ошибка при подключению к екселю через ADO
    #36007426
Фотография Shuhard
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vam911При выполнении Open ошибка: "Ошибка при вызове метода контекста (Open). Произошла исключительная ситуация (Microsoft Data base jet engine): небыл задан текст команды для коммандного объекта."

db=Новый COMОбъект("ADODB.Connection");
rs=Новый COMОбъект("ADODB.Recordset");
db.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="+ИмяФайла+";Extended Properties=""Excel 8.0;""";
db.Open();
rs.ActiveConnection = db;
rs.CursorType = 3;
rs.LockType = 2;
rs.Source = "Select * from [Лист(1)$]";
rs.Open();

отличия найдешь сам
MyCon = Новый COMОбъект ("ADODB.Connection");
MyCon.Open ("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\111.xls;Extended Properties=""Excel 8.0;HDR=No;IMEX=1""");
MyRst = Новый COMОбъект ("ADODB.Recordset");
MyStr = "select * from [Лист1$]";
MyRst.Open (MyStr, MyCon, 2, 3);//adOpenDynamic, adLockOptimistic
...
Рейтинг: 0 / 0
Ошибка при подключению к екселю через ADO
    #36008690
vam911
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не помогло (.
та же ошибка.

db=Новый COMОбъект("ADODB.Connection");
rs=Новый COMОбъект("ADODB.Recordset");
db.Open( "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="+ИмяФайла+;Extended Properties=""Excel 8.0;HDR=No;IMEX=1""");

sqlstr = "Select * from [Лист(1)$]";
rs.Open(sqlstr,db,2,3);
...
Рейтинг: 0 / 0
Ошибка при подключению к екселю через ADO
    #36008850
Фотография Shuhard
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vam911Не помогло (.
та же ошибка.

у меня работает, что я делаю не так?
...
Рейтинг: 0 / 0
Ошибка при подключению к екселю через ADO
    #36008858
vam911
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Будем искать
А офис какой? у меня 2007, но файл сохранен как 2003.
...
Рейтинг: 0 / 0
Ошибка при подключению к екселю через ADO
    #36008860
Фотография Shuhard
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vam911Будем искать
А офис какой? у меня 2007, но файл сохранен как 2003.
2003
...
Рейтинг: 0 / 0
Ошибка при подключению к екселю через ADO
    #36008871
Фотография Shuhard
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
с "Select * from [Лист(1)$" ADODB посылает очень далеко
...
Рейтинг: 0 / 0
Ошибка при подключению к екселю через ADO
    #36008924
vam911
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shuhardс "Select * from [Лист(1)$" ADODB посылает очень далеко

А как надо?
...
Рейтинг: 0 / 0
Ошибка при подключению к екселю через ADO
    #36008981
Фотография Shuhard
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vam911Shuhardс "Select * from [Лист(1)$" ADODB посылает очень далеко

А как надо?
вторая попытка:
MyCon = Новый COMОбъект ("ADODB.Connection");
MyCon.Open ("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\111.xls;Extended Properties=""Excel 8.0;HDR=No;IMEX=1""");
MyRst = Новый COMОбъект ("ADODB.Recordset");
MyStr = "select * from [Лист1$]";
MyRst.Open (MyStr, MyCon, 2, 3);//adOpenDynamic, adLockOptimistic
...
Рейтинг: 0 / 0
Ошибка при подключению к екселю через ADO
    #36009080
vam911
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Забавно, заработало!!!!

Забавно, т.к. в екселе источники данных не видят лист, если он не содержит "(".

Огромное спасибо!!!!!!!!!!!!!!!!!!!!
...
Рейтинг: 0 / 0
Ошибка при подключению к екселю через ADO
    #36009121
Фотография Shuhard
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vam911Забавно, заработало!!!!

Забавно, т.к. в екселе источники данных не видят лист, если он не содержит "(".

Огромное спасибо!!!!!!!!!!!!!!!!!!!!

10 часов - полет нормальный
...
Рейтинг: 0 / 0
Ошибка при подключению к екселю через ADO
    #36607126
Фотография bot67
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Возникла такая ситуация при загрузке и екселя. Загружаю документ чарез ADO.

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
	СтрокаПодключения = "
	|Provider=Microsoft.Jet.OLEDB.4.0;
	|Data Source="+ИмяФайла+";
	|Extended Properties=""Excel 8.0;HDR=No;"";";
	
	Лист="[Накладная$]";
		
	Подключение=CreateObject("ADODB.Connection");
	Запрос=CreateObject("ADODB.Recordset");
	Подключение.ConnectionString = СтрокаПодключения;
	Подключение.Open();
	СтрЗапроса = "Select * from "+Лист+""; 
	Запрос.Open(СтрЗапроса,Подключение, 2 , 3 );
	
	Запрос.MoveFirst();
	Пока Запрос.Eof()= 0  Цикл
                   .................
                   ...........
		Количество=Запрос.Fields(КолКоличество- 1 ).Value;
	                  .................
                   ...........
	КонецЦикла;
Если в ячейке екселя строковое значение, то всё проходит нормально. Если же там число, то ничего не возвращается. В ячейках формул и ссылок нет. Подскажите, чем может быть дело?
...
Рейтинг: 0 / 0
Ошибка при подключению к екселю через ADO
    #36607223
leaf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
как то там было ...
Количество=Запрос.Fields(КолКоличество-1).FormulaR1C1
...
Рейтинг: 0 / 0
Ошибка при подключению к екселю через ADO
    #36607314
Фотография bot67
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
leaf,

нет. так не проходит - "Поле агрегатного объекта не обнаружено (FormulaR1C1)"
...
Рейтинг: 0 / 0
Ошибка при подключению к екселю через ADO
    #36607461
leaf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну тогда запхните сами знаете куда АДО ...

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
Sub Макрос1()
'
' Макрос1 Макрос
' Макрос записан 30.04.2010 (СКиселев)
'

'
    ActiveCell.FormulaR1C1 = "=R[2]C[2]+R[2]C[3]"
    Range("A2").Select
End Sub
работайте как обычные люди через объекты
...
Рейтинг: 0 / 0
Ошибка при подключению к екселю через ADO
    #36608302
Фотография bot67
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Помогло вот это:
авторСмешанные данные в колонках (подводный камень способный попортить не мало крови) Из-за настроек по умолчанию Excel ваша программа нормально считывающая данные из полностью заполненных таблиц, может сбиться на тех таблицах, в первых N (>8) записях которых пустые значения.
В результате, когда доходит до записей с не пустыми полям их значения возвращаются как NULL независимо от реального содержимого в XLS.
Для предотвращения подобной ситуации следует использовать аттрибут IMEX=1 в Extended Properties.
...
Рейтинг: 0 / 0
16 сообщений из 16, страница 1 из 1
Форумы / [игнор отключен] [закрыт для гостей] / Ошибка при подключению к екселю через ADO
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]