Иллюстрированный самоучитель по Microsoft Access 2002

Использование Access в качестве сервера автоматизации

Все примеры предыдущих разделов демонстрировали работу Microsoft Access в качестве клиента автоматизации. Но это приложение является одновременно и сервером автоматизации, т. е. Access может предоставлять объекты своей объектной модели для использования другим приложениям. Это значит, что другие приложения Microsoft Office могут программно управлять объектами Access. Ниже приведен пример, когда из приложения Excel открывается база данных Access и данные из таблицы экспортируются в активный лист рабочей книги Excel.

Dim objAccess As Access.Application
Dim db As Database
Dim rst As Recordset
Dim i As Integer, j As Integer
Set objAccess = GetObject("D:XBopeu.mdb")
Set db = objAccess.CurrentDb
Set rst = db.OpenRecordset("Квартальные обороты по товарам")
'заполняем 1-ю строку заголовками столбцов таблицы
For i = 1 To rst.Fields.Count - 1
Cells(1, i) = rst.Fields(i).name
Next i
'переносим все остальные строки таблицы
j = 2
rst. - MoveFirst Do Until rst.EOF
For i = 1 To rst.Fields.Count - 1
Cells(j, i) = IlfdsNull(rst.Fields(i)), 0, rst.Fields(i))
Next i
j = j + 1
rst.moveNext Loop
objAccess.Close
Set obAccess = Nothing

Перед тем как создавать эту функцию, необходимо создать две ссылки в редакторе VBA Excel: на библиотеки Microsoft Access 10.0 Object Library и Microsoft DАО 3.6 Object Library. Создав объект Access.Application, можно получить доступ ко всем остальным объектам Access: таблицам, формам, отчетам. В данной программе сначала создается объект Recordset из нужной таблицы, а затем в цикле создается строка заголовков полей и переносятся все данные. На рис. 15.36 представлена результирующая таблица запроса "Квартальные обороты по товарам" и результат ее экспорта в Excel.

Иллюстрированный самоучитель по Microsoft Access 2002 › Интеграция Access 2002 с другими компонентами Office 2002 › Использование Access в качестве сервера автоматизации
Рис. 15.36. Таблица "Доходы за квартал" и результат ее экспорта в Excel

В качестве сервера автоматизации Microsoft Access применяется обычно для создания мастеров, генерирующих приложения баз данных в Access, при этом можно использовать функции CreateForm(), CreateControl(), CreateReportControl().

Если Вы заметили ошибку, выделите, пожалуйста, необходимый текст и нажмите CTRL + Enter, чтобы сообщить об этом редактору.