Использование 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 То 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 из нужной таблицы, а затем в цикле создается строка заголовков полей и переносятся все данные. На представлена результирующая таблица запроса "Квартальные обороты по товарам" и результат ее экспорта в Excel.
В качестве сервера автоматизации Microsoft Access применяется обычно для создания мастеров, генерирующих приложения баз данных в Access, при этом можно использовать функции CreateFormf), CreateControl(), CreateReportControl().
 
Использование элементов ActiveX в приложении
Функциональные возможности Access могут быть расширены не только за счет использования объектов других приложений — серверов автоматизации. Мини-приложение может быть просто встроено в приложение Access. Такими мини-приложениями являются элементы ActiveX. Элементы ActiveX представляют собой программный компонент, реализованный в виде отдельного файла. Но самостоятельными приложениями элементы ActiveX не являются — они выполняются только в том приложении, которое позволяет встраивать и использовать их, являясь для них контейнером. Вне приложения-контейнера ни один элемент управления ActiveX невозможно запустить на выполнение и требовать каких-либо результатов.
Существует большое количество элементов ActiveX. В этой главе мы познакомимся с одним из них, который включен в стандартную поставку Microsoft Office и используется очень часто. Это элемент Календарь (Calendar). Другие элементы ActiveX можно найти в Microsoft Office 2002 для разработчиков и прочих средствах разработки, в том числе и от других производителей.
Замечание

Если вы включили в свое приложение элементы ActiveX, необходимо следить за тем, чтобы эти элементы были установлены на всех компьютерах, на которых будет использоваться ваше приложение.