Имя: Пароль:
1C
 
Обращение к Excel с наложенным фильтром
0 Barbossa
 
17.09.07
10:01
Нужно обратиться к Экселю с фильтром, наложенным на поле.
Знаю как обратиться к dbf, например:

АДО=Новый COMОбъект("ADODB.Connection");
   АДО.Open("Provider=Microsoft.Jet.OLEDB.4.0;Data Source="+Каталог+";Extended Properties=DBASE IV");        
   РекордСет=Новый COMОбъект("ADODB.RecordSet");
   РекордСет.Open("SELECT * FROM [Loreal.DBF] WHERE F6='"+ШтрихКод + "'",АДО,3);

Можно подобное сделать в экселе?
1 Barbossa
 
17.09.07
10:03
Можно, конечно, перегнать Эксель в ДБФ. Но, во-первых, это займет время, а во вторых происходят некоторые глюки с форматом полей (если гнать через Access).
2 Barbossa
 
17.09.07
10:56
up
3 774816
 
17.09.07
11:11
или Extended Properties меняешь или другое соединение используешь

"Driver={Microsoft Excel Driver (*.xls)};DriverId=790;Dbq=C:\MyExcel.xls;DefaultDir=c:\mypath;"
PS
фильтр молжно устанавливать и через рекодсет
РекордСет.Filter="F='" + ШтрихКод + "'"
4 dk
 
17.09.07
11:16
(0) можно (см. (3)), только там ограничения на первую строку в XLS, т.к. там либо пусто, либо имена колонок должно быть в ячейках.
5 Barbossa
 
17.09.07
11:31
(3),(4) Спасибо, буду пробовать.
6 Barbossa
 
17.09.07
11:49
Написал так:

СтрокаПодключения = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="+Путь+";Extended Properties=Excel 8.0";

АДО=Новый COMОбъект("ADODB.Connection");
АДО.Open(СтрокаПодключения);        
   
РекордСет=Новый COMОбъект("ADODB.RecordSet");
РекордСет.Open("SELECT * FROM [Loreal] WHERE F='"+ШтрихКод + "'",АДО,3);


Что-то не контачит. Ошибка - "Объект Loreal не найден ядром базы Microsoft Jet"
Loreal - название листа в файле.

Пробовал и другой вариант подключения - (3), тоже не помогло.
7 Barbossa
 
17.09.07
12:56
может есть у кого-то готовый пример?
8 774816
 
17.09.07
13:10
Loreal это лист экселя?
если нет то для эксель баз
, лист (имя листа) являеться таблицей
по моему что типа этого пишеться $ИмяЛиста
9 Barbossa
 
17.09.07
13:29
(8) пробовал писать через $ - выскакивает та же ошибка
10 774816
 
17.09.07
13:31
а лист с таким названием есть?
а так [$Loreal]
11 Barbossa
 
17.09.07
13:38
(10) пишу в скобках. Без скобок выходит ошибка - "Ошибка синтаксиса..."