![]() |
![]() |
![]() |
|
Как получить колонку по ее номеру в Excel (ADODB+SQL) | ☑ | ||
---|---|---|---|---|
0
bask
28.06.07
✎
18:28
|
Имеется файл xls, с 2-мя колонками, например Товар и Цена.
с помощью ADODB+SQL можно получить запросом значения всех записей в этом xls: SELECT [Товар], [Цена] FROM [Sheet1$] Вопрос: Как обратиться в запросе к колонкам не по имени, а по номеру колнки или ее имени??? |
|||
1
bask
28.06.07
✎
18:31
|
+ (0)
что-то вроде (написаное ниже не работает, уже проверял :)) SELECT [A$], [B$] FROM [Sheet1$] где A, B номера первых 2-ух колонок |
|||
2
bask
28.06.07
✎
18:55
|
up
|
|||
3
asady
28.06.07
✎
19:02
|
||||
4
asady
28.06.07
✎
19:12
|
||||
5
bask
28.06.07
✎
19:17
|
(3) спасибо за ссылку, но в этих примерах ответа нет, запрос написанный там обращается ко всем полям "sQuery = "SELECT * FROM [" & sSheet(n) & "$]"
", а мне надо к отдельным и по номерам столбцов(не по именам, которые, в принципе могут быть какими угодно), или каким-либо другим представлениям, которые однозначно будут идентифицировать столбцы. |
|||
6
asady
28.06.07
✎
19:18
|
(0)
Specify an Unnamed Range To specify an unnamed range of cells as your recordsource, append standard Excel row/column notation to the end of the sheet name in the square brackets. For example: strQuery = "SELECT * FROM [Sheet1$A1:B10]" http://support.microsoft.com/default.aspx?scid=kb;EN-US;257819#Connect |
|||
7
bask
28.06.07
✎
19:18
|
(4) - эту сейчас посмотрю
|
|||
8
bask
28.06.07
✎
19:25
|
(4) - там тоже по именам - не подходит :(
(6) - а вот это сейчас опробую. Еще раз огромное спасибо |
|||
9
bask
28.06.07
✎
19:35
|
(6) Еще раз огромное СПАСИБО!!!
"SELECT * FROM [Sheet1$A1:B10]" для выборки из диапазона ячеек "SELECT * FROM [Sheet1$A:B]" для выборки из первых 2-ух колонок |
|||
10
bask
28.06.07
✎
19:57
|
:)))
появилась еще одна проблема: если в листе EXCEL есть несколько колонок, а выборку в этом случае необходимо сделать по колонкам, не следующим друг за другом, как в этом случае будет выглядеть запрос? Например, колонки A, B, C, D, E. Сделать выборку по колонкам B, C и E |
|||
11
vde69
28.06.07
✎
20:02
|
смотри именованные поля
как вариант сделай вложенный со * и к его результатам обращайся как хочешь |
|||
12
bask
28.06.07
✎
20:09
|
в силу ряда причин именованные поля не подходят.
вложенный запрос посему также не подходит, т.к. после селект возможно в моем случае только * |
|||
13
Neco
28.06.07
✎
20:10
|
(10) Несколько запросов к разным диапазонам соединенных через UNION
|
|||
14
bask
28.06.07
✎
20:28
|
(13) тоже вариант, но тогда придется для каждого столбца отдельно писать свой селект, в результате получу 1 столбец со всеми данными из B, C и E. Хотелось бы все-таки в результате запроса получить 3 столбца, вместо одного.
|
|||
15
Kalambur
28.06.07
✎
20:38
|
(14) может на sql.ru скажут?
|
|||
16
bask
29.06.07
✎
01:09
|
(15) уже поднял там такую же тему, но пока молчат
|
|||
17
774816
29.06.07
✎
07:41
|
так можно обращаться к колонкам
SELECT F1, F3, F2 FROM table но только в том случае если колонка не присвоены имена |
|||
18
bask
29.06.07
✎
10:27
|
(17) колонкам имена не присвоены,
запрос: SELECT F1, F3, F2 FROM [Sheet1$] не работает! |
|||
19
bask
29.06.07
✎
11:04
|
Все еще не сдаюсь :)
еще один ап |
|||
20
774816
29.06.07
✎
12:07
|
Вот две строки экс.дока к которым обращаюсь через F, и все работает
| | | | | | | |156|01.01.2007| 1 | Авто масло |150,20р.| 45| самая первая строка без значений т.е. наименований колонок нет и типы колонок второй строки разные, если тип значений второй строки будет текстовой то наименования колонок унаследуют значение этой строки |
|||
21
вщдеук
29.06.07
✎
16:35
|
открываем файл ёкселя через оле, добавляем одну строку вначале типа F1,F2,F3,..,Fn
закрываем с записью, открываем через адо и обращаемся к полям по номерам в любом порядке |
|||
22
bask
02.07.07
✎
10:34
|
(20), (21) спасибо за идею.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |