MS Excel - Импорт данных из рабочей книги при помощи запросов на добавление (Несколько листов сразу)
Запросом:
Private Sub TestTwo()
Dim s$, sPath$
sPath = "c:\путь\файл.xls"
s = "SELECT * INTO [ИмяТаблицы01] FROM [ИмяЛиста01$] IN '" & sPath & "'[Excel 8.0; HDR=Yes;]"
CurrentDb.Execute s
s = "SELECT * INTO [ИмяТаблицы02] FROM [ИмяЛиста02$] IN '" & sPath & "'[Excel 8.0; HDR=Yes;]"
CurrentDb.Execute s
s = "SELECT * INTO [ИмяТаблицы03] FROM [ИмяЛиста03$] IN '" & sPath & "'[Excel 8.0; HDR=Yes;]"
CurrentDb.Execute s 'Выполнение запроса
s = "INSERT INTO Адреса SELECT * FROM [Лист1$] IN '" & sPath & "'[Excel 8.0; HDR=NO;];
CurrentDb.Execute s
End Sub
За блокировку отвечает параметр IMEX. Например запрос
SELECT [Поле1], [Поле2], [Поле3] FROM [Лист1$] IN '' [Excel 8.0;HDR=Yes;IMEX=1;DATABASE=\\адрес\Имя файла.xls];
открывает только для чтения.
Если создать связанную таблицу методом CreateTableDef (DAO) и укажете IMEX=1, то таблица также будет открываться только в режиме чтения не блокируя файл.
|