Лучший способ прочитать файл Excel в базу данных Access - PullRequest
4 голосов
/ 25 мая 2010

Какой «лучший» способ прочитать (просто прочитать) файл Excel из приложения Access 2007. Я только хочу зациклить строки и поместить данные в таблицу доступа.

Я не хочу импортировать вручную (диалоговое окно «Получить внешние данные»), но VBA. Пользователь получает форму с помощью кнопки «Обзор», а затем указывает на файл Excel с определенным содержимым / форматом. После этого код VBA считывает данные и помещает их в базу данных Access.

Ответы [ 3 ]

7 голосов
/ 25 мая 2010

Вы можете попробовать метод DoCmd.TransferSpreadsheet.

DoCmd.TransferSpreadsheet acImport, , "from_excel","C:\Access\demo.xls", True

Импортирует данные электронной таблицы в таблицу с именем from_excel и предполагает, что первая строка электронной таблицы содержит имена полей. См. Справку Access для TransferSpreadsheet или онлайн здесь , для получения более подробной информации.

3 голосов
/ 25 мая 2010

Если вы хотите прочитать всю электронную таблицу целиком, вы можете импортировать электронную таблицу Excel непосредственно в Access. См. здесь или здесь .

Вы также можете выбрать ссылку на электронную таблицу Excel вместо ее импорта. Таким образом, любые изменения в электронной таблице Excel будут отражены в связанной таблице. Однако вы не сможете вносить изменения в Access.

Третий вариант - написать код VBA в Access, чтобы открыть набор записей и прочитать электронную таблицу. См. Ответы KeithG в этой теме . Вы можете сделать что-то вроде этого, чтобы открыть электронную таблицу в VBA:

Dim xl As Excel.Application
Dim xlsht As Excel.Worksheet
Dim xlWrkBk As Excel.Workbook

Set xl = CreateObject("Excel.Application")
Set xlWrkBk = GetObject("H:/ggg.xls")
Set xlsht = xlWrkBk.Worksheets(1)
0 голосов
/ 25 мая 2010

Попробуйте что-то вроде этого:

Dim excelApp As Excel.Application
Dim workbook As Excel.Workbook
Dim worksheet As Excel.Worksheet

Set excelApp = CreateObject("Excel.application")
Set workbook = excelApp.Open("C:\someFileName.xls")
Set worksheet = workbook.Worksheets(1)

Затем выполните цикл по строкам и столбцам, извлеките данные из ячеек и вставьте их в базу данных. (Вы можете использовать метод worksheet.cells.) Попробуйте поискать в Google примеры кода.

...