powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Импорт из Excel
6 сообщений из 6, страница 1 из 1
Импорт из Excel
    #32144435
Галина
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Помогите, пожалуйста, проблемка возникла...
Может кто-нибудь поделится кодом импорта из Excel в Access страниц с различной структурой таблиц. Импорт с первой страницы делается тривиально
DoCmd.TransferSpreadsheet acImport, 8, "ExelTable", MyFile, True, "" ,
А каким образом сделать импорт со 2 или 3 страницы Excel ?
...
Рейтинг: 0 / 0
Импорт из Excel
    #32146155
GeorgeV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Для импорта необходимо знать: 1 - полное имя XLS-файла и, желательно, версию EXCEL, в которой он был создан; 2 - имя импортируемого листа или диапазона (далее таблица).

В общем виде команда импорта может быть записана так:

DoCmd.RunSQL "SELECT * INTO <ИМЯ ТАБЛИЦЫ> FROM [EXCEL <НОМЕР ВЕРСИИ>;DATABASE=<ПОЛНОЕ ИМЯ XLS-ФАЙЛА>].[<ТАБЛИЦА>];"

или так

CurrentDB.Execute "SELECT * INTO <ИМЯ ТАБЛИЦЫ> FROM [EXCEL <НОМЕР ВЕРСИИ>;DATABASE=<ПОЛНОЕ ИМЯ XLS-ФАЙЛА>].[<ТАБЛИЦА>];"

Например, для импорта листа "Лист 10" из книги Excel 8.0(97) C:\Моя книга.xls в таблицу Таблица_Лист_10 текущей базы данных достаточно следующей конструкции:

CurrentDB.Execute "SELECT * INTO [Таблица_Лист_10] FROM [EXCEL 8.0;DATABASE=C:\Моя книга.xls].[Лист 10];"

Если не знаешь номер версии Excel - бери по максимуму из доступных для твоей версии Access.
...
Рейтинг: 0 / 0
Импорт из Excel
    #32183018
ВладимирК
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А как поступить, если имена листов в excel неизвестны заранее (знаю только, что листов больше одного)?
...
Рейтинг: 0 / 0
Импорт из Excel
    #32183055
Хам трамвайный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
все в справке написано
Диапазон Диапазон импортируемых или связываемых ячеек. При импорте или связывании всей электронной таблицы следует оставить данный аргумент пустым. Допускается указание имени диапазона или адреса в формате A1:E25 (учтите, что формат A1..E25 не поддерживается в Microsoft Access 97 и более поздних версиях). Если необходимо, при импорте или связывании из рабочей книги Microsoft Excel версии 5.0 или более поздних версий перед именем диапазона задается имя листа и восклицательный знак; например Бюджет!A1:C7.
...
Рейтинг: 0 / 0
Импорт из Excel
    #32183084
ВладимирК
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
В том-то и дело, что при пустом параметре импортируется только первый лист (а нужны все).
...
Рейтинг: 0 / 0
Импорт из Excel
    #32183107
Хам трамвайный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
количество листов берешь
отсюда Sheets.Count
имя листа Sheets(i).Name
а потом запускаешь цикл на
DoCmd.TransferSpreadsheet acImport, acSpreadsheetTypeExcel9, "ИмпортИзExcel", txtfile, , "Лист1!A:C"
DoCmd.TransferSpreadsheet acImport, acSpreadsheetTypeExcel9, "ИмпортИзExcel", txtfile, , "Лист2!A:C"
это идея
я не проверял
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Импорт из Excel
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]