|
|
|
Импорт из Excel
|
|||
|---|---|---|---|
|
#18+
Помогите, пожалуйста, проблемка возникла... Может кто-нибудь поделится кодом импорта из Excel в Access страниц с различной структурой таблиц. Импорт с первой страницы делается тривиально DoCmd.TransferSpreadsheet acImport, 8, "ExelTable", MyFile, True, "" , А каким образом сделать импорт со 2 или 3 страницы Excel ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.04.2003, 19:29 |
|
||
|
Импорт из Excel
|
|||
|---|---|---|---|
|
#18+
Для импорта необходимо знать: 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. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.04.2003, 17:13 |
|
||
|
Импорт из Excel
|
|||
|---|---|---|---|
|
#18+
А как поступить, если имена листов в excel неизвестны заранее (знаю только, что листов больше одного)? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.06.2003, 11:54 |
|
||
|
Импорт из Excel
|
|||
|---|---|---|---|
|
#18+
все в справке написано Диапазон Диапазон импортируемых или связываемых ячеек. При импорте или связывании всей электронной таблицы следует оставить данный аргумент пустым. Допускается указание имени диапазона или адреса в формате A1:E25 (учтите, что формат A1..E25 не поддерживается в Microsoft Access 97 и более поздних версиях). Если необходимо, при импорте или связывании из рабочей книги Microsoft Excel версии 5.0 или более поздних версий перед именем диапазона задается имя листа и восклицательный знак; например Бюджет!A1:C7. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.06.2003, 12:25 |
|
||
|
Импорт из Excel
|
|||
|---|---|---|---|
|
#18+
В том-то и дело, что при пустом параметре импортируется только первый лист (а нужны все). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.06.2003, 12:45 |
|
||
|
Импорт из Excel
|
|||
|---|---|---|---|
|
#18+
количество листов берешь отсюда Sheets.Count имя листа Sheets(i).Name а потом запускаешь цикл на DoCmd.TransferSpreadsheet acImport, acSpreadsheetTypeExcel9, "ИмпортИзExcel", txtfile, , "Лист1!A:C" DoCmd.TransferSpreadsheet acImport, acSpreadsheetTypeExcel9, "ИмпортИзExcel", txtfile, , "Лист2!A:C" это идея я не проверял ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.06.2003, 13:04 |
|
||
|
|

start [/forum/topic.php?fid=45&msg=32144435&tid=1681090]: |
0ms |
get settings: |
7ms |
get forum list: |
16ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
48ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
51ms |
get tp. blocked users: |
1ms |
| others: | 192ms |
| total: | 335ms |

| 0 / 0 |
