TopPicLogo TopPicText

MS Excel - Импорт данных из рабочей книги

Будет работать когда в файле:
    - Первая строка содержит имена столбцов
    - Данные содержатся на первом листе

Private Sub ImportExelFile(strPatch As String, newTblName As String)
'es 01.07.2011
'Импорт Данных из файла Excel
'--------------------------------------------------------------------
'Аргументы:
'   strPatch     = Путь к файлу
'   newTblName   = Имя таблицы с импортированными данными
'--------------------------------------------------------------------
On Error Resume Next ' Выключение обработчика ошибок.
    DoCmd.DeleteObject acTable, "ExelDataTable"
    Err.Clear        ' Очистка кода ошибки.
    DoCmd.TransferSpreadsheet acImport, , "ExelDataTable", strPatch, True
End Sub


Или так (Запросом):


Private Sub TestTwo()
Dim s$, sPath$

'Путь к файлу
    sPath = "c:\путь\файл.xls"

'Для Excel версии 2010 и выше драйвер несколько иной:
'[Excel 12.0 XML; HDR=YES']

'Построение запроса 01 для таблицы 01 и листа 01
    s = "SELECT * INTO [ИмяТаблицы01] FROM [ИмяЛиста01$] IN '" & sPath & "'[Excel 8.0; HDR=Yes;]"
    CurrentDb.Execute s 'Выполнение запроса

'Построение запроса 02 для таблицы 02 и листа 02
    s = "SELECT * INTO [ИмяТаблицы02] FROM [ИмяЛиста02$] IN '" & sPath & "'[Excel 8.0; HDR=Yes;]"
    CurrentDb.Execute s 'Выполнение запроса

'Построение запроса 03 для таблицы 03 и листа 03
    s = "SELECT * INTO [ИмяТаблицы03] FROM [ИмяЛиста03$] IN '" & sPath & "'[Excel 8.0; HDR=Yes;]"
    CurrentDb.Execute s 'Выполнение запроса

'И так далее по необходимости ...

End Sub

Назад ToTop
L.E. 24.03.2017
Рейтинг@Mail.ru