Чтение книги Excel из Access - PullRequest
       13

Чтение книги Excel из Access

0 голосов
/ 29 ноября 2010

Я хочу, чтобы мое приложение Access (2007) считывало информацию в различных рабочих листах данной книги Excel (2007). В интернете я вижу много примеров, когда это делается с использованием объектной модели DAO / ADO / Excel / VBA, и я думаю, что довольно странно, какой путь лучше.

Теперь я делаю это так:

Dim ExcelApp As Excel.Application
Dim ExcelWorkbook As Excel.Workbook
Dim ExcelWorkSheet As Excel.Worksheet

Set ExcelApp = CreateObject("Excel.Application")
Set ExcelWorkbook = ExcelApp.Workbooks.Open("C:\Temp\test.xls")

For Each ExcelWorkSheet In ExcelWorkbook.Worksheets
    MsgBox ExcelWorkSheet.Name
Next

ExcelWorkbook.Close (False)
ExcelApp.Quit
Set ExcelWorkbook = Nothing
Set ExcelApp = Nothing

(В качестве примера я перебираю рабочие листы и печатаю их имена)

Это правильный способ сделать это? И это самый эффективный способ? (если есть «самый эффективный способ»)

1 Ответ

1 голос
/ 29 ноября 2010

То, что лучше всего, во многом зависит от того, что вы хотите сделать. Если данные в Excel структурированы, и вы хотите импортировать или манипулировать ими, обычно лучше использовать запрос с ключевым словом IN или, проще, связать именованные диапазоны, диапазоны или полные листы Excel.

Ссылка через VBA
http://msdn.microsoft.com/en-us/library/aa141565(office.10).aspx

С помощью схем ADo можно получить полный список рабочих листов и именованных диапазонов.

Запрос
/2217922/gde-v-zaprose-s-dvumya-naborami-zapisei-v-access-vba#2217924

Если вы хотите обновить, скажем, SQL-сервер из Excel через Access, ADO может быть хорошим выбором.

АДО
/2192844/zapros-lista-excel-v-ms-access-vba-s-ispolzovaniem-nabora-zapisei-adodb#2192846

Автоматизация, как показано в вашем вопросе, обычно полезна, только если вы хотите много форматировать и / или обновлять отдельные ячейки и небольшие диапазоны.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...