Access 2002: Самоучитель - Павел Дубнов 14 стр.


Может потребоваться создание проекта Microsoft Access и, после его подготовки к тестированию или производству, отключение от базы данных Microsoft SQL Server. Например, можно создать приложение проекта и подключить его к базе данных Microsoft SQL Server после распределения копий. Можно распределить файл проекта по пользователям, снабдить их инструкциями по открытию файла, а после этого выбрать в меню Файл команду Подключение для подключения к серверу, на котором расположена база данных.

Для создания баз данных, доступных пользователям, можно также применять команды Копировать файл базы данных или Перенести базу данных, макрокоманды или методы. Кроме того, создать базу данных Microsoft SQL Server можно с помощью файла сценария.

Использование разработчиками мастера развертывания из пакета Microsoft Office XP

При использовании Microsoft Office XP возможно применение мастера упаковки и развертывания для создания программы инсталляции, которая установит оба приложения проекта Microsoft Access и Microsoft SQL Server 2000 Desktop Engine.

Репликация базы данных Microsoft SQL Server

При использовании двух компьютеров, например стоящего в офисе и переносного, имеется возможность создавать реплики базы данных Microsoft SQL Server и поддерживать их синхронизацию. При этом находящиеся в разных местах пользователи могут одновременно работать каждый со своей копией основной реплики, а затем синхронизировать их по сети через удаленное подключение или Internet.

Резюме

1. В последней версии Access превратилась в распределенную систему. Это произошло в основном за счет развития и внедрения идеологии, связанной с проектами Microsoft Access.

2. Проект Microsoft Access является файлом данных Microsoft Access, обеспечивающим эффективный доступ к базам данных Microsoft SQL Server.

3. Используя проект Microsoft Access, можно создавать приложения в архитектуре клиент/сервер так же легко, как приложения файлового сервера. Такое приложение в архитектуре клиент/сервер может быть традиционным решением, основанным на формах и отчетах, или решением на базе Internet, использующим страницы доступа к данным, либо сочетать в себе весь спектр возможностей. Проект Microsoft Access можно подключить к удаленной базе данных Microsoft SQL Server, локальной базе данных Microsoft SQL Server или к локальной установке Microsoft SQL Server 2000 Desktop Engine (MSDE).

4. Проект Microsoft Access допускает подключение к определенному набору баз данных Microsoft SQL Server.

5. Работа с проектом Microsoft Access очень похожа на работу с базой данных Microsoft Access. Процесс создания форм, отчетов, страниц доступа к данным, макросов и модулей практически не отличается от используемого при создании базы данных Microsoft Access. Подключившись к базе данных Microsoft SQL Server, можно просматривать, создавать, изменять и удалять таблицы, представления, сохраненные процедуры, определяемые пользователем функции и схемы баз данных с помощью конструктора баз данных, конструктора таблиц, конструктора запросов, построителя запросов и текстового редактора SQL.

6. Несколько способов развертывания проекта Microsoft Access рассматривались в этой главе.

Глава 9 Общие вопросы программирования в Access 2002

Сравнительная характеристика языков программирования в Access

Access пользователь может работать с несколькими языками программирования:

• SQL (Structured Query Language) – структурированным языком запросов. Это формальный стандартизованный язык высокого уровня, содержащий средства непроцедурной (не требующей программирования) спецификации запросов;

• макросами;

• VBA (Visual Basic for Applications) – объектно-ориентированным языком программирования.

• XML (Extensible Markup Language) – расширяемым языком разметки, представляющим собой удобный способ сбора, адаптации и совместного использования данных в неограниченном числе приложений и форматов.

Язык SQL

Язык SQL – это внутренний язык Access 2002, на котором, в частности, формулируются запросы. В принципе SQL используется не только в среде Access 2002; он вообще широко применяется в работе с реляционными базами данных. Поскольку сегодня подавляющее большинство БД относится именно к этому классу, язык SQL значительно облегчает пользователю работу с различными СУБД.

Запросы – основной способ получения сведений из базы данных. С помощью запроса вы можете отобрать определенную информацию и рассортировать ее по значениям полей. Очень важно, что запросы позволяют фильтровать данные, то есть выбирать именно ту информацию, которая удовлетворяет определенным, заранее заданным условиям. Запросы можно применять при создании форм, отчетов, страниц доступа к данным. Использовать запросы удобно при разработке таблиц и добавлении новых записей в уже существующие таблицы, при удалении записей, поиске дублирующихся данных и т. д. Работая с языком SQL, вы исходите из существующей организации БД и более или менее стандартного набора операций, хотя структура самого запроса иногда бывает достаточно сложной. Правда, в запросе нежелательно использовать слишком разветвленные логические выражения: формального запрета на них нет и запрос построить можно, однако получившаяся структура будет громоздкой и неудобной. (Для подобных случаев в Access есть средства программирования.) Чтобы запустить запрос, следует создать событие – команду, которая распознается формой, элементом управления формы или отчета. Таким событием может стать, например, щелчок по какой-либо конкретной кнопке. Однако пользователь должен еще задать область применения запроса, так как он не запускается автоматически даже при возникновении события.

Макросы

Макросы, или макрокоманды, представляют собой заранее созданные списки действий – программы, которые выполняются после щелчка пользователя по кнопке или после других определенных действий (возникновение ошибки, открытие, закрытие элемента управления и т. д.). Каждое действие макроса выполняет определенную операцию: например, установку значения, открытие или закрытие формы, диалогового окна и др. Макрос предназначен для объединения нескольких различных действий, представляемых макрооператорами, в одну процедуру, которая легко может быть вызвана. В отличие от SQL макрооператоры тесно связаны с командами данного программного продукта, в частности Access.

В макросах все команды обычно выполняются по очереди. Исключением является ситуация, когда в макрос введено конкретное логическое условие, которое может изменить последовательность операций.

Макрос в среде Access состоит из перечня действий, которые в пошаговом режиме выполняются в случае наступления определенного события. Допустим, макрос запускается, когда пользователь щелкает по командной кнопке, закрывает форму или активизирует панель управления текстовым документом, открывшимся в окне. Макрос может выполняться также при выполнении тех или иных условий. Например, условные макросы могут отображать окно сообщения, если вводимые в поле данные имеют определенное значение. Макросы создаются в специальном окне макросов – Построитель макросов.

Сопоставляя возможности макросов и языка SQL, отметим, что макросы могут использоваться для ситуаций, привязанных к событиям [13] , возникающим независимо от пользователя, для выполнения разветвляющихся операций (например, в условных логических выражениях). Макросы удобны для простых ответов на события, но имеют свои ограничения и не всегда помогают пользователю справляться с разнообразным сложностями, возникающими в реальной практике, особенно если речь идет об Access. Например, нельзя использовать макрос для того, чтобы задать обработку события или выполнить цикл действий по записи транзакций. Макрос не возвращает значение, поэтому не может применяться для извлечения введенной пользователем информации, рассчитанного значения или результата сравнения.

Следует сказать, что отмеченные ограничения в Access 2002 надо рассматривать не как жесткое разделение областей применения с четко очерченными границами, а скорее как некую тенденцию, которая может соблюдаться отнюдь не всегда, и эти границы размываются. Так, в ряде случаев язык SQL может быть использован безотносительно к запросу, для решения каких-то вспомогательных служебных задач, например для того, чтобы внести какие-либо новые функции, изменить настройку элементов управления и т. д. Примеры таких применений будут показаны далее. При этом достаточно широко может использоваться тот же аппарат событий, к которому "привязаны" макросы.

Теоретически нет препятствий к тому, чтобы включить в макрос также и процедуру VBA. Однако на деле все обстоит скорее наоборот: макросы используются как составная часть этих программ, тем более что любой макрос легко конвертировать или включить в процедуру VBA.

Процедуры VBA

Как уже отмечалось, макросы обычно представляют собой только линейную последовательность действий. Но на практике этого недостаточно – требуется весь арсенал средств программирования: ветвления и циклы, вызов вспомогательных процедур и передача параметров, организация диалога с пользователем, проверка и изменение состояния различных элементов документа и т. д.

По сравнению с SQL и макросами язык VBA является более современным, развитым и сложным, поэтому может использоваться для выполнения любых действий в ходе работы приложения. Данный язык включает в себя объекты, семейства, события, методы, процедуры, операторы и свойства. Программа VBA – это процедура, которая выполняет определенную операцию или рассчитывает и возвращает значение. Кроме того, очень важно, что VBA-язык программирования, управляемый событиями. Иначе говоря, с помощью программы VBA можно установить необходимую реакцию объекта Access на определенное событие. Итак, язык VBA позволяет сделать все, что выполняют макросы, и даже существенно больше. В принципе с помощью VBA можно создавать и запросы. Однако специализированный язык, каким является SQL, приспособлен для этого значительно лучше. (Ниже будет показано, что использование языка SQL в самом деле заметно упрощает построение запросов.)

Существуют два вида процедур VBA: подпрограммы (subprocedures) и функции.

Подпрограммы выполняют одну или больше операций, однако не возвращают значение. Функции не только выполняют операции, но и возвращают значение. В справочной системе Access вы найдете множество примеров процедур событий. Эти процедуры можно скопировать и связать со свойствами события элемента управления. Затем вы можете изменить код и имена переменных, чтобы они соответствовали вашему приложению. Для создания собственных процедур используйте построитель программ (см. главу 12).

Язык XML

Для хранения данных используются многочисленные форматы, и часто это связано с применением разных форматов в различных приложениях. Это делает обмен данными между приложениями исключительно сложной задачей, требующей значительных временных затрат. В Microsoft Access 2002 пользователю предоставляется удобный способ сбора, адаптации и совместного использования данных в неограниченном числе приложений и форматов – XML (Extensible Markup Language – расширяемый язык разметки).

Передача информации через Internet и между различными программами всегда была трудной задачей из-за разницы в форматах и структурах данных разных разработчиков программного обеспечения. Язык HTML, хорошо подходящий для отображения текста и изображений в Web-обозревателях, ограничен в своих возможностях определения данных и структуры данных. HTML описывает внешний вид Web-страницы, тогда как XML определяет данные и описывает их структурирование. Язык XML определяет формат обмена данными, обеспечивающий обмен данными между разными компьютерами и приложениями, и позволяет разделить процессы определения и презентации данных. В результате данные XML могут представляться по-разному с помощью различных файлов презентации.

Протокол XML представляет набор правил и соглашений для форматов и структур данных. Он обеспечивает способ создания файлов, которые легко разрабатываются и читаются разными компьютерами и приложениями.

Можно рассматривать три наиболее общих сценария использования языка XML с программой Microsoft Access: импорт данных из различных источников, экспорт данных Microsoft Access в файл XML и преобразование данных XML в другой формат.

Импорт данных из других источников

Обычно для выполнения задания необходимо собрать данные, преобразовать их в доступный для обработки формат и открыть доступ к ним для других сотрудников. Сложность заключается в том, что большая часть данных обычно разбросана по множеству внутренних и внешних источников данных и хранится в разных форматах. Данные могут поступать чаще всего из следующих источников:

• внутренних серверов Microsoft SQL;

• электронных таблиц Microsoft Excel;

• других внешних источников данных;

• текстовых файлов;

• приложений с собственными форматами данных.

Многие из этих источников поддерживают язык XML как формат обмена данными, что упрощает процесс адаптации этих данных для личного использования.

Предположим, требуется периодически объединять данные из разных источников для создания отчета, просматриваемого руководителями и сотрудниками.

Выполнение этой задачи с использованием языка XML состоит из следующих шагов:

1. Работа с администраторами различных источников данных для экспорта данных в набор файлов XML, расположенных на удаленном сервере.

2. Импорт данных из исходных файлов XML в базу данных Microsoft SQL Server. Эти данные также могут быть импортированы в базу данных Microsoft Access или в локальную копию ядра Microsoft SQL Server 2000 Desktop Engine, которое также поддерживает импорт данных XML. Этот процесс может быть автоматизирован путем создания в Microsoft Access программы на языке Visual Basic для импортирования.

3. Создание набора статистических запросов к импортированным данным с помощью клиентской части проекта Microsoft Access, присоединенной к SQL Server.

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

5. Печать отчета, создание снимка отчета или публикация страницы на Web-узле в Internet.

Основное преимущество от использования языка XML в данном сценарии заключается в том, что для извлечения данных из разных источников в Microsoft SQL Server или в Microsoft Access не требуется никаких операций, кроме создания запросов. Без использования XML эта задача может включать экспорт данных в текстовый файл (в случае, если эта операция поддерживается всеми источниками данных), обработку файлов данных путем добавления разделителей компонентов данных, импорт данных в Microsoft SQL Server или в Microsoft Access и, наконец, очистку и доработку данных. Использование XML позволяет минимизировать временные затраты на переформатирование и очистку данных.

Экспорт данных XML из Microsoft Access

Помимо задач сбора и объединения данных часто приходится сталкиваться с задачей предоставления совместного доступа к этим данным из разных приложений или для нескольких пользователей. Диалоговое окно Microsoft Access Экспорт XML позволяет экспортировать данные из проекта или базы данных Microsoft Access в файл данных XML, а также экспортировать описания схемы данных и создавать файлы, упрощающие управление представлением данных.

Преобразование данных

Ранее мы рассмотрели экспорт данных (или объектов Microsoft Access) в файл XML с теми свойствами и характеристиками, которые они имели в Microsoft Access. Предположим, нужно преобразовать данные (или объекты) в другой формат, например для отображения в Web-обозревателе. Для этого может потребоваться изменить структуру данных с помощью фильтра или сортировки и добавить теги [14] HTML, чтобы определить отображение данных в обозревателе. Это можно сделать вручную, добавив теги HTML в файл XML и перераспределив данные, что может оказаться громоздкой задачей; либо выполнить это преобразование с помощью файла XML другого типа – XSLT (XSL Transformation file – файл преобразования XSL).

Файлы XSLT (команды XSLT являются поднабором команд XSL) предназначены в первую очередь для преобразования одного документа XML в другой. Также файлы XSLT удобно использовать для преобразования файлов XML в HTML или другие текстовые форматы.

В чем заключается разница между файлами XSL и XSLT? Файл XSL определяет форматирование и представление документов XML на экране, на принтере и других устройствах вывода. Файл XSLT фактически выполняет преобразование.

После проведенного краткого сопоставления сформулируем некоторые рекомендации по выбору языка программирования.

Выбор языка программирования

В приложении легко создавать и применять макросы и SQL-программы, но иногда вам придется использовать язык VBA. Рассмотрим такой пример. Сообщения об ошибках, которые выводит система, обычно носят довольно абстрактный характер и скорее вызывают новые вопросы, чем дают ответы. Чтобы облегчить работу пользователя, лучше отключить вывод таких сообщений и заменить их на короткие информативные "диагнозы", дополненные советами по решению проблем. Все это можно сделать только с помощью программы VBA.

Макросы выполняются с заданными значениями аргументов. Аргументы – это параметры, используемые при вычислении значений функций и при выполнении процедур. Аргументы заключаются в круглые скобки. Если в ходе работы значения аргументов требуется изменить, то вы должны написать процедуру VBA. Как видите, выбор между макросами и кодом VBA зависит от того, что вы хотите сделать. Макросы могут осуществлять простые операции, такие как просмотр отчета или выключение панели инструментов. Некоторые задачи можно выполнять только с помощью макросов (например, определенные операции при первом запуске базы данных или установление соответствия между комбинацией клавиш и командой).

Access 2002 содержит много встроенных внутренних функций наподобие Date() и Pmt(), которые возвращают значения при указании аргументов. Внутренние функции доступны и для макросов. Если вы хотите сами создать функции, то должны использовать соответствующие процедуры VBA. Кроме того, эти программы позволяют создавать и модифицировать объекты точно так же, как и мастера. С помощью процедур VBA вы можете изменить оформление и функции элементов управления формы и других объектов. Отметим, что процедуры легко открывать, поскольку они хранятся как модули. (Макросы содержатся отдельно во вкладке Макросы окна базы данных.)

Итак, программирование с помощью VBA имеет ряд преимуществ. Еще раз подчеркнем их:

• процедуры VBA находятся внутри определения формы или отчета. Если вы перемещаете или копируете эту форму или отчет в другую БД, то процедуры VBA автоматически перемещаются вместе с ней, в отличие от макросов (последние придется переместить или скопировать отдельно);

Назад Дальше