Если вам известно только имя ListObject, нет другого способа, кроме как открыть файл Excel, как описано в ответе @ dbmitch , но если вы знаете диапазон ListObject, вы можете перенести данные из этого диапазона только в свойтаблица без использования Excel.Application
объекта, просто используйте SELECT следующим образом:
INSERT INTO InventoryAvail (PartNumber, Quantity)
SELECT *
FROM [Inventory$D3:E24]
IN "C:\Users\YourName\Desktop\Inventory.xlsx" [Excel 12.0;HDR=YES;IMEX=0];
Это будет работать намного быстрее, чем через объект
ОБНОВЛЕНИЕ
Только что выяснил, что можно запрашивать именованные диапазоны по имени.Синтаксис, подобный следующему:
INSERT INTO InventoryAvail (PartNumber, Quantity)
SELECT *
FROM [Available]
IN "C:\Users\YourName\Desktop\Inventory.xlsx" [Excel 12.0;HDR=YES;IMEX=0];
Обратите внимание, что этот синтаксис работает с именованными диапазонами, для таблиц такой выбор данных не работает.Также не будет работать именованный диапазон, если он был назначен тому же диапазону, что и таблица.Но можно определить именованный диапазон, который включает в себя диапазон таблицы, но не точно такой же