Имя: Пароль:
1C
 
ADODB\Jet Не читает первую колонку, начинает со второй
0 Jokero
 
23.11.15
15:10
На сервере нет офиса, поэтому подключаюсь к exel файлу по "ADODB.Connection".
Использую драйвер Microsoft.Jet.OLEDB.4.0
Полная СтрокаПодключения = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source="+ИмяФайла+"; Extended Properties=""Excel 8.0;HDR=No;IMEX=1;""";

делаю простой запрос "SELECT * FROM[" + ИмяЛиста+ "]"; при этом в выборку попадают все данные, кроме первой колонки.
Почему Jet не читает первую колонку и как это побороть?
1 Serginio1
 
23.11.15
15:18
Наверное потому, что первая колонка с индексом 0
2 palpetrovich
 
23.11.15
15:21
(1)  +1
3 repin_mike
 
23.11.15
15:21
Вероятно это как-то связано с тем, что у экселя нумерация строк и колонок начинается с нуля.
А что даёт запрос SELECT ИмяПервой(Нулевой)Колонки FROM[" + ИмяЛиста+ "] ?
4 Jokero
 
24.11.15
07:26
Jet называет колонки F1,F2,F3,F4.
При вызове F0 - выдает ошибку в запросе.

(1) Похоже на то, потому что он и первую строчку не читает. Как тогда с помощью Jet добавить колонку в лист?
5 sda553
 
24.11.15
07:33
(4) обращайся по индексу колонки
RecResult.MoveFirst();
val = RecResult.fields(0);
6 Jokero
 
24.11.15
07:45
RecResult.fields(0) - это столбец F1, который в файле экселя второй.
7 Jokero
 
24.11.15
07:58
Не, дело походу не в Jet.
Скопировал данные в новый файл xls, сохранил его и вдруг выборка начала читать все колонки и строки.
Дело видимо в самом файле Экселя, что там может быть?
8 Jokero
 
24.11.15
08:07
Да, дело в файле, открываю этот файл екселя, нажимаю сверху кнопочку "сохранить" и выборка начинает видеть первую строку и первый столбец. Файл приходит автоматом от поставщика.
В чем здесь может быть дело? Как исправить файл поступающий файл?
Компьютер — устройство, разработанное для ускорения и автоматизации человеческих ошибок.