Member 14075301 Ответов: 2

Как экспортировать доступ к базе данных более 1 миллиона строк


Пожалуйста помочь,

Я хочу экспортировать 6 миллионов строк базы данных access в access.
Я получил код VBA, но он экспортирует только 1 лист (максимум 1048576 строк).
Мне нужно экспортировать в excel на несколько листов-это нормально для меня.

Что я уже пробовал:

Пожалуйста помочь,

Я хочу экспортировать 6 миллионов строк базы данных access в access.
Я получил код VBA, но он экспортирует только 1 лист (максимум 1048576 строк).
Мне нужно экспортировать в excel на несколько листов-это нормально для меня.

0x01AA

Пожалуйста, проверьте свой вопрос еще раз. Для меня это выглядит так, что вы перепутали access и excel: "я хочу экспортировать 6 миллионов строк базы данных access в access"? Воспользуйся Редактирование вопроса[^] чтобы отредактировать ваш вопрос

0x01AA

Если несколько листов excel-это нормально, почему бы вам просто не сделать это?

2 Ответов

Рейтинг:
1

Richard MacCutchan

1048576-это максимальное количество строк, которое может содержать лист. Вам нужно настроить свой код, чтобы начать новый рабочий лист или книгу, когда вы достигнете этого предела.


Maciej Los

Это правда!

Рейтинг:
0

Wendelius

Одним из способов сделать это может быть выполнение нескольких запросов, каждый из которых создает частичный набор данных из таблицы. После выполнения запроса вы можете экспортировать его в Excel.

Чтобы сделать это, вы должны спроектировать свой запрос так, чтобы каждое выполнение возвращало максимум 1048576 строк. Как это сделать, зависит от данных в вашей таблице.

В общем идея могла бы быть примерно такой

FirstKeyValue = 0
LimitKeyValue = 1048576
NameCounter = 1

while FirstKeyValue <= MaxKeyValueInTable
   DoCmd.OpenQuery "QueryWhichFetchesTheKeyRange", acViewNormal, acEdit
   DoCmd.OutputTo acOutputQuery, , acFormatXLS, "FilePathAndName" & NameCounter & ".xls", True

   LimitKeyValue = LimitKeyValue + 1048576
   FirstKeyValue = FirstKeyValue + 1048576
   NameCounter = NameCounter + 1
wend

После создания таблицы, вы можете продолжать сливать файлы на Access или Excel со стороны. Вероятно, было бы проще сделать это на стороне Excel, используя один мастер-файл, содержащий макрос, который собрал бы все частичные листы в один файл.

Рекомендации:
- Метод docmd.Метод OpenQuery (доступ) | Майкрософт Документы[^]
- Метод docmd.Метод OutputTo (доступ) | Майкрософт Документы[^]


Maciej Los

Отличный ответ!