Вставка из Excel

ЧипДейл
Дата: 29.12.2015 09:48:55
Добрый день, подскажите как правильно сделать вставку из Excel в существующую таблицу Access.
str = "Insert into UpFactTbl (year) select [год] FROM [Excel 10.0 xml;HDR=No;IMEX=1;DATABASE=" & Me.Form.l1.Value & "] "
DoCmd.RunSQL str

Выдает ошибку:
Ядру СУБД MS Access не удалось найти входную таблицу или запрос "Excel 10.0 xml;HDR=No;IMEX=1;DATABASE=C:\Users\...\Desktop\n1\загрузка .xlsx".
Akina
Дата: 29.12.2015 09:51:25
ЧипДейл
HDR=No
уже однозначно говорит, что имён полей НЕТ. Следовательно, поля именуются автоматически как F1, F2, ... и поля [год] нет и быть не может.

Ну а что до ошибки - то текст её вполне понятен и перевода не требует.
Akina
Дата: 29.12.2015 09:52:46
Да... данные находятся не в книге, а на листе книги. Это к слову...
Анатолий ( Киев )
Дата: 29.12.2015 11:37:34
ЧипДейл
str = "Insert into UpFactTbl (year) select [год] FROM [Excel 10.0 xml;HDR=No;IMEX=1;DATABASE=" & Me.Form.l1.Value & "] "
Выдает ошибку:
Ядру СУБД MS Access не удалось найти входную таблицу или запрос
HDR=No означает, что данные начинаются с первой строки на листе. Имена полей не используются. В этом случае имена полей выглядят как F1, F2..., а у вас имя поля "год".
ЗЫ. Если имя листа не указывается, то данные берутся с первого листа в книге. У вас так?
ЗЗЫ. Вместо DoCmd.RunSQL лучше использовать метод CurrentDB.Execute.
Чип&Дейл
Дата: 29.12.2015 11:46:47
Анатолий ( Киев ) ,

Да, у меня с первого листа берутся данные т.к. лист только 1 в файле.

Поправил HDR=Yes и заменил DoCmd но ошибка та же.
Lockpickup
Дата: 29.12.2015 12:08:49
Внимание:
Akina
данные находятся не в книге, а на листе книги. Это к слову


SELECT ...бла-бла... FROM [имя_листа_с_данными$ ]
ЧИпДейл
Дата: 29.12.2015 13:19:28
Как мне указать имя листа если файл берется отсюда Me.Form.l1.Value?
ЧипДейл
Дата: 30.12.2015 07:29:05
Разобрался, хоть бы показали что лист указывается вот так.
select [бла бла бла FROM [Excel 12.0 xml;HDR=Yes;IMEX=1;DATABASE=" & Me.Form.l1.Value & "].[Лист2$]  "

Спасибо за помощь.