|
|
|
| strSQL = "INSERT INTO Temp8 (F1, F2) SELECT A13, L16 FROM [Лист1$] IN '" & fileName & "' [Excel 8.0; HDR=no; IMEX=2;]"
dbs.Execute (strSQL)
выдает ошибку - Слишком мало параметров. Требуется два.
Подскажите, что не так?
Мне неообходимо перетащить из Excel содержимое нескольких ячеек | |
|
| |
|
|
|
| Т.е. вы хотите вытянуть содержимое ячеек A13 и L16 одним запросом?
Ваша конструкция ошибочеа в принципе! JET рассматривает указанный лист (или диапазон) как таблицу из нескольких полей и нескольких записей в ней. Имена полей берутся из 1-й строки (если HDR=yes) или имеют имена F1,F2... (если HDR=no, как в вашем случае). Никакихх A13, L16 (тем более несмежных) он не понимает.
Попробуйте так:
strSQL = "INSERT INTO Temp8 (F1, F2) SELECT [Excel 8.0; HDR=no; IMEX=1;Database='" & fileName & "'].[Лист1$A13],
[Excel 8.0; HDR=no; IMEX=1;Database='" & fileName & "'].[Лист1$L16] "
|
| |
|
| |
|
|
|
| Попробовал - выдает ошибку: "Недопустимое имя."
А подскажите способ перекачать данных из нескольких сотен таблиц xls. Причем выборку необходимо призвести из разных ячеек, а не из диапазона.
Мной был уже реализован способ с использованием объектной переменной связанной с Excel - Set xllApp = CreateObject("Excel.Application"). Он работает, но очень медлено.
Необходимо оптимизировать процесс. | |
|
| |
|
|
|
| Так вы хоть один файлик киньте
а то как-то голословно получается
(данные в файле можно и "левые", главное структура, что и откуда получать) | |
|
| |
|
14 Кб. |
|
| Пример абстрактный. Проблема заключается в том, что таких таблиц нужно обработать несколько сотен, ячейки, из которых требуется вытащить данные не принадлежат какому-то одному диапазону и их насчитывается около двухсот. Все ячейки находятся на одном листе. | |
|
| |
|
|
|
| strSQL = "INSERT INTO Temp8 (F1, F2) SELECT [Excel 8.0; HDR=no; IMEX=1;Database='" & fileName & "'].[Лист1$A13:A13],
[Excel 8.0; HDR=no; IMEX=1;Database='" & fileName & "'].[Лист1$L16:L16] "
Исправил ошибку (добавил выделенное). Попробуйте. | |
|
| |
|
|
|
| To Анатолий
Ошибка - Недопустимое имя
Упрощенный вариант:
strSQL = "SELECT [Excel 8.0; HDR=no; IMEX=1; Database='" & fileName& "'].[Лист1$C4:C4];"
также выдает ошибку
значение fileName - путь\имя таблицы - корректно. Проверял в других запросах. | |
|
| |
|
|
|
| Да, без FROM ну никак не хочет работать...
Вот проверенный вариант:
INSERT INTO Temp8 (F1, F2) SELECT * FROM
[Excel 8.0; HDR=no;IMEX=1;Database=M:\Temp\Temp1.xls].[Лист1$A13:A13],
[Excel 8.0; HDR=no; IMEX=1;Database=M:\Temp\Temp1.xls].[Лист1$L16:L16] | |
|
| |