Інтеграція access з іншими компонентами офісу - програмні продукти

Клієнти і сервери автоматизації

При інтеграції двох додатків одне надає свої об'єкти для використання, а інше використовує об'єкти першого додатка.

  • Додаток, об'єкти якого доступні для інших додатків, називається сервером автоматизації (іноді його ще називають компонентом)
  • Додаток, який використовує об'єкти іншої програми, називається клієнтом (або контролером) автоматизації. Об'єкти, які доступні для інших додатків, називають об'єктами автоматизації

Для програмного управління об'єктом автоматизації з усіх програм Microsoft Office необхідно:

    1. Установити посилання на бібліотеку об'єктів програми-сервера автоматизації.
    2. Створити об'єкт потрібного класу.
    3. Здійснити всі необхідні дії над об'єктом, звертаючись до його властивостей і методів.
    4. Закрити об'єкт.

Microsoft Access як клієнт автоматизації

Щоб створити об'єкт для використання в операціях автоматизації, потрібно спочатку створити екземпляр його класу і привласнити посилання на нього об'єктної змінної. Однак створити можна не будь-який об'єкт з об'єктної моделі програми-сервера, а тільки глобальні об'єкти. Таким глобальним об'єктом для всіх об'єктних моделей додатків сімейства Microsoft Office є об'єкт Application, який знаходиться на вершині ієрархії об'єктів.

За допомогою ключового слова New

Це ключове слово описує змінну типу Object і одночасно встановлює посилання на новий екземпляр класу об'єкта.

Dim app As New Excel.Application

При використанні ключового слова New для створення нового екземпляра класу Application запускається відповідний додаток (наприклад, Word або Excel). Якщо це додаток вже запущено, то, щоб не запускати другий примірник, краще використовувати для створення нового екземпляра класу функцію GetObject ()

Sub PowerPointOpenFile_Click ()
On Error GoTo Err_
Dim strAppName As String
Dim app As New PowerPoint.Application
strAppName = CurrentProject.Path "\ Презентація1.ppt"
With app
.Visible = True
.Presentations.Open strAppName
End With
Set app = Nothing
Exit_:
Exit Sub
Err_:
MsgBox Err.Description
Resume Exit_
End Sub

За допомогою функції CreateObject ()

Set app = CreateObject ( "Excel.Application")

Об'єктна змінна в даному випадку може бути оголошена як Object, і тоді посилання на бібліотеку об'єктів Microsoft Word встановлювати не треба. А може бути оголошена так:

Dim app As Excel.Application

Set app = CreateObject ( "Excel.Application.11")

Приклад використання функції:

Sub ExcelOpenFile ()
On Error GoTo Err_
Dim strAppName As String
Dim app As Excel.Application
strAppName = CurrentProject.Path "\ Кніга1.xls"
Set app = CreateObject ( "Excel.Application")
With app
.Visible = True
.Workbooks.Open strAppName
End With
Set app = Nothing
Exit_:
Exit Sub
Err_:
MsgBox Err.Description
Resume Exit_
End Sub

За допомогою функції GetObject ()

Цей спосіб використовується для того, щоб отримати посилання на вже існуючий екземпляр класу, т. Е. Для доступу до існуючих документів, що зберігаються в файлах, або для доступу до об'єкта Application вже запущеного додатку-сервера. Функція Getobject () має наступний синтаксис:

Set <объектнаяПеременная> = Getobject ([<путь>] [,<класс>])

Обов'язково повинен бути зазначений хоча б один з аргументів функції!

Розглянемо три варіанти написання функції:

  • Set app = GetObject (, "Excel.Application")

тут опускається перший параметр - тоді функція працює подібно до двох вищесказаним - просто для створення екземпляра класу об'єкту.

  • Set app = GetObject ( "C: \ Baze \ Кніга1.xls", "Excel.Application")

тут вказані обидва параметри - шлях до файлу і назва програми. В цьому випадку запускається файл Кніга.xls

  • Set app = GetObject ( "C: \ Baze \ Кніга1.xls")

Приклад використання функції:

Sub WordOpenFile ()
On Error GoTo Err_
Dim strAppName As String
Dim app As Word.Application
strAppName = CurrentProject.Path "\ Doc1.doc"
Set app = GetObject ( "", "Word.Application")
With app
.Visible = True
.Documents.Open strAppName
End With
Set app = Nothing
Exit_:
Exit Sub
Err_:
MsgBox Err.Description
Resume Exit_
End Sub

Після того як всі необхідні операції з об'єктами докладання-сервера виконані, ці об'єкти слід закрити, щоб звільнити займану ними пам'ять. Більшість об'єктів підтримують для цього методи close або Quit. Крім того, слід звільнити об'єктну змінну, привласнивши їй значення Nothing.

У доданому до статті прикладі показані варіанти відкриття документів Word, Excel, Power Point. Для різноманітності для кожного документа використаний один з трьох способів відкриття. Але, зрозуміло, будь-який з документів можна відкрити будь-яким із способів.

Файли для завантаження