Интеграция Access 2010 с другими компонентами Office 2002

Хотя СУБД Access является прекрасным инструментом для создания различных приложений, выполняющих обработку данных в связанных таблицах, однако некоторые операции с данными гораздо эффективнее решаются другими приложениями, входящими в семейство Microsoft Office 2002. И при разработке приложения возникает желание создать запросы и формы Access, добавить к ним аналитические возможности Excel, обеспечить редактирование отчетов Access в редакторе Word, связать все это с текущей таблицей контактов Outlook или личным календарем и т. д. То есть, чтобы получить приложение для офиса, удовлетворяющее современным требованиям, необходимо обеспечить совместное функционирование различных приложений Microsoft Office. Оказывается, данное желание вполне осуществимо, и в настоящей главе мы покажем это.
Основой для организации такого взаимодействия является технология ActiveX. Технология ActiveX предоставляет разработчику два мощных механизма интеграции приложений:

  • OLE (Object Linking and Embedding) — механизм, который позволяет связывать или внедрять объекты, созданные другими приложениями Microsoft Office, в формы и отчеты Access.
  • Автоматизация (Automation, которая раньше называлась OLE Automation) — технология, позволяющая управлять из приложения Access объектами, которые созданы и поддерживаются другими приложениями Microsoft Office.

Оба этих механизма являются свойствами COM (Component Object Model) — модели компонентных объектов, которая специфицирует взаимодействие объектов в компонентной архитектуре приложения.
О том, как используются указанные механизмы и чем они отличаются, и будет рассказано в данной главе.
Замечание
На самом деле понятия OLE и Automation шире, чем это определено выше, они касаются самых разных приложений, которые поддерживают технологию ActiveX, а не только приложений семейства Microsoft Office, однако в рамках данной книги мы будем рассматривать их именно в таком контексте, как мы определили.
Итак, в настоящей главе будут затронуты следующие вопросы:

  • Использование протокола OLE и связанных с ним моделей построения интегрированных приложений
  • Вставка рисунков в Access, демонстрирующая возможности OLE
  • Совместное использование Access с Word и Excel
  • Общие понятия автоматизации и иллюстрация работы автоматизации внутри комплекта Microsoft Office
  • Использование элементов ActiveX

 

Связывание и внедрение объектов
Итак, OLE — это протокол, позволяющий создавать составные документы, которые включают в себя документы, созданные другими приложениями. Документ, который включает в себя другие документы, называется документом-контейнером OLE. В данном случае документами-контейнерами являются формы и отчеты Access. Документы, которые включаются в форму или отчет, называются документами-источниками или объектами OLE. Объектами OLE могут быть документы Word, Excel, рисунки, созданные в одном из графических редакторов, например Paint, видеоролики (файлы с расширением avi), звуковые файлы с расширением wav. Объекты OLE отличаются от объектов Automation, о которых мы будем говорить ниже, тем, что они являются документами, получаемыми с помощью приложения, а не частью его модели объектов.
Объекты OLE могут быть либо внедрены в документ-контейнер, либо связаны с ним. Приложение, которое поставляет объекты для внедрения и связывания, называется сервером OLE. Внедренный объект представляет собой копию документа-источника, который сохраняется вместе с формой или отчетом. Связанный объект хранится в отдельном файле, и документ-контейнер содержит только указатель на исходный файл объекта. Если кто-либо обновляет исходный файл объекта, то обновляется и представление объекта в составном документе. Коварство связанных объектов заключается в том, что при изменении местоположения исходного файла относительно составного документа, либо при изменении местоположения составного документа таким образом, что исходный файл становится недоступным, связь разрывается. Внедренные объекты всегда доступны, однако частое их использование приводит к непомерному увеличению файла составного документа.
Выполнив внедрение или связывание объекта OLE, можно легко активизировать из документа Access приложение, которому этот объект принадлежит. Для этого достаточно дважды щелкнуть левой кнопкой мыши по внедренному объекту, после чего объект может быть изменен. Когда же активизированное приложение будет закрыто, в документе-контейнере отразится (а в случае внедрения — сохранится) внесенное изменение.
Связывание и внедрение объектов OLE сравниваются в.
Сравнение характеристик связывания и внедрения

Параметр

Связывание

Внедрение

Число файлов

Необходимо поддерживать не

Поддерживать необходимо

менее двух файлов: связанного

лишь один файл составного

объекта (такого как лист Excel) и

документа, содержащего внед-

составного документа, исполь-

ренный объект

зующего этот обьект (такого, как

Word). Можно установить связь

так, что при обновлении исходно-

го файла объекта автоматически

обновляется файл составного

документа

Создание объектов

Объект создается копированием

Объект создается либо копи-

его из исходного документа и

рованием и вставкой, либо

вставкой связи в документ назначения

перетаскиванием с помощью
мыши из исходного файла в

файл составного документа

Обновление

Один и тот же исходный документ

Необходимо отразить измене-

объектов

могут использовать несколько

ния внедренного объекта в

составных документов. При изме-

каждом составном документе

нении исходного документа об-

новление объекта во всех контей-

нерах, которые его используют,

может происходить автоматически

Формат, исполь-

В зависимости от природы самого

Все внедренные объекты по-

зуемый в докумен-

объекта и возможностей контей-

являются в составном доку-

те-контейнере

нера, можно связывать его в раз-

менте как графические

личных форматах. Например,

можно связать рабочий лист Excel

с документом Word как графиче-

ский объект, форматированный

текст, неформатированный текст,

рисунок, растровую картинку

Поддержка

Необходимо отслеживать соответ-

Все, что необходимо — это

объектов

ствие путей к файлу исходного

поддерживать документ, со-

объекта в составном документе

держащий внедренный обьект

Размер объекта

Поскольку исходный документ

Внедренный обьект должен

существует в отдельном файле,

содержать все необходимые

составной документ лишь весьма

данные внутри составного

незначительно увеличивает свой

документа, поэтому размер

размер при связывании его с

последнего значительно уве-

файлом исходного документа

личивается при внедрении

Управление

Используйте команду Правка,

Большинство объектов можно

объектами

Связи (Edit, Links). Например,

преобразовать в составном

можно установить связь таким

документе так, чтобы они су-

образом, чтобы можно было

ществовали как рисунки. Вер-

вручную или автоматически об-

нуть их в исходный формат

новлять объект, временно блоки-

внедренных объектов практи-

ровать связь, разрывать или вос-

чески никогда нельзя

станавливать ее