ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 10.11.2023
Просмотров: 182
Скачиваний: 5
ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
86
7.2.7 Средства макропрограммирования в MS Access
Access, как и любая другая развитая программная система, обладает средствами разработки программных приложений, ориентированных на ко- нечных пользователей. Эти средства базируются на инструментах двух ти- пов: макросах и модулях. Само понятие макроса подразумевает наличие на- бора некоторых стандартных команд системы, или макрокоманд (допустим, таких, как открытие формы, выполнение запроса, вывод отчета), из которых и конструируется сам макрос.
Макрос может быть как собственно макросом, состоящим из последо- вательности макрокоманд, так и группой макросов. Группой макросов назы- вают их набор, сохраняемый под общим именем. В некоторых случаях для решения, должна ли в запущенном макросе выполняться определенная мак- рокоманда, может применяться условное выражение.
Особый интерес вызывает механизм вызова макросов в Access. Для этого существует две принципиальных возможности:
вызов макроса по команде пользователя (либо непосредственно из раз- дела Макросы главного окна базы данных, либо с помощью меню или панели инструментов, с которыми он также может быть ассоциирован);
вызов макроса по некоторому системному событию (открытие или за- крытие формы, изменение управляющего элемента и т. п.).
Весьма полезной представляется возможность организовать автомати- ческое выполнение ряда действий при открытии базы данных. Для этого они должны быть описаны в специальном макросе с именем Autoexec.
Возможности применения макросов при работе в среде СУБД Access можно наглядно продемонстрировать на следующем примере. Предположим, что в ранее созданную форму Бумаги мы хотим добавить процедуру допол- нительного контроля вводимых значений дат эмиссии ценных бумаг, которая должна будет выдавать предупреждающее сообщение, если вводится слиш- ком «ранняя» дата. Допустим, что к таковым относятся даты, предшествую- щие 1 января 1991 года.
Технически решение представляется удобным реализовать в виде мак- роса, вызываемого по событию «до обновления», ассоциированному с полем
ДатаЭм в форме Бумаги.
На рис. 55 показан процесс разработки данного макроса (ему дано имя
КонтрольДатаЭм).
Рисунок 55 – Создание макроса
87
Из него видно, что макрос содержит три макрокоманды:
Первая, Остановить Макрос – прерывает работу, если введена дата более поздняя, чем 1 января 1991 года.
Вторая, Остановить Макрос – выполняется, если пользователь счита- ет, что несмотря на сделанное предупреждение введенная дата является верной. Для вывода предупреждения используется встроенная функция
MsgBox.
Третья – отменяет событие ввода данных, если они после предупреж- дения признаются ошибочными.
Хорошим стилем разработки макросов является снабжение их коммен- тариями, располагаемыми в соответствующей колонке.
На рис. 56 показана привязка разработанного макроса к событию «до обновления» поля ДатаЭм формы Бумаги.
Рисунок 56 – «Привязка» макроса к событию
7.2.8 Разработка программных приложений для MS Access
Модули, в отличие от макросов, являются более тонким и мощным средством создания программных расширений в среде Access, максимально приближающимся по своим функциональным возможностям к таким про- фессиональным инструментам, как Delphi, Visual Basic или PowerBuilder.
Одновременно применение модулей требует от пользователя навыков и ква- лификации программиста, а также знания основных принципов объектно- ориентированного программирования.
Для программирования в Access используется процедурный язык Visu- al Basic для приложений (VBA – Visual Basic for Applications) с добавлением объектных расширений и элементов SQL. Сам процесс создания программ- ных расширений в среде Access предполагает активное использование техно- логии объектно-ориентированного программирования (ООП). В основе ООП лежит идея «упакованной функциональности», в соответствии с которой про- грамма строится из фундаментальных сущностей, называемых объектами.
88
Каждый из объектов характеризуется набором свойств (англ. – property) и операций, которые он может выполнять (англ. – method). Реализация взаимо- действий между объектами ложится на исполняющую среду того средства разработки, на котором пишется программа, и поэтому работа программиста в рамках технологии ООП сводится к созданию объектов, описанию их свойств и реакций на те или иные внешние события.
Фундаментальным понятием ООП является класс. Класс – это шаблон, на основе которого может быть создан конкретный программный объект.
Созданный объект в таком случае становится экземпляром класса. К осново- полагающим принципам ООП относятся:
инкапсуляция – объединение свойств и действий, присущих объекту, в едином пакете и сокрытие подробностей их реализации от окружающе- го мира. Это означает, что пользовательский доступ к объекту допуска- ется только через его свойства и методы;
наследование – предусматривает создание новых классов на базе суще- ствующих, что дает возможность классу-потомку иметь (наследовать) все свойства класса-родителя;
полиморфизм – (от греч. «многоликость») означает, что порожденные объекты обладают информацией о том, какие методы они должны ис- пользовать в зависимости от того, где они находятся в цепочке насле- дования;
модульность – объекты заключают в себе полное определение их ха- рактеристик, никакие определения методов и свойств объекта не долж- ны располагаться вне его, что делает возможным свободное копирова- ние и внедрение одного объекта в другие.
Многие программные объекты в Access совпадают с физическими объ- ектами базы данных, такими как таблицы, формы, отчеты. Для названия со- ставных объектов, которые включают в себя совокупность более простых объектов, используется термин семейство. Например, объект Отчет входит в семейство Отчеты. Помимо «видимых» объектов существует и большое ко- личество «скрытых» объектов, управлять которыми можно только из про- граммных приложений.
В Access существуют два типа модулей: стандартные и модули класса.
Стандартные модули содержат процедуры и функции, которые могут быть вызваны из любого окна базы данных. Как правило, такие модули со- держат программный код универсального характера, предназначенный для применения в различных местах текущего приложения или даже в различных приложениях.
Модули класса используются, для создания новых классов объектов.
При создании конкретного объекта, являющегося экземпляром такого класса, любые процедуры, определенные в модуле, становятся свойствами и метода- ми этого объекта.
89
Модули форм и модули отчетов являются модулями класса, связанны- ми с определенной формой или отчетом. Заметим, что в ранних версиях
Access они являлись единственно возможным инструментом объектно- ориентированного программирования. Эти модули содержат процедуры об- работки событий, запускаемых в ответ на их возникновение в форме или от- чете. Процедуры обработки событий используются для управления поведе- нием формы или отчета и их откликом на события, например такие, как на- жатие кнопки.
Важнейшей областью применения объектно-ориентированного про- граммирования в Access является программирование доступа к данным. Для решения данной задачи фирмой Microsoft был разработан специальный ин- терфейс – DАО (Data Access Objects). DAO – это набор объектных классов, которые моделируют структуру реляционной базы данных. Они обеспечива- ют свойства и методы, которые позволяют выполнять такие операции, как создание базы данных, определение таблиц и индексов, задание связей меж- ду таблицами, формирование запросов и отчетов и т. п. Существенным дос- тоинством объектной модели DАО является ее универсальный характер: она доступна для большинства средств разработки программного обеспечения, поддерживаемогоMicrosoft, в частности, для Visual Basic. Классы объектов доступа к данным организованы по иерархической схеме. На ее вершине на- ходится объект DB Engine, представляющий собой ядро базы данных. Далее следуют объекты, отвечающие за управление сеансами доступа пользователя к данным, – Workspace (от англ. «рабочая область»). Каждая рабочая область включает один или несколько объектов класса база данных – Database, а они, в свою очередь, содержат семейства объектов таблиц (TableDef), запросов
(QueryDef), наборов записей (RecordSet) и т. д.
В заключение раздела, посвященного модулям, отметим, что вопросы теории и практики создания программ на VBA в среде Access не затрагива- ются в данном пособии, так как они являются весьма обширными. В случае необходимости с ними можно ознакомиться в специальных профессиональ- ных изданиях и руководствах.
7.3. Организация защиты данных в СУБД MS Access
MS Access обеспечивает два традиционных способа защиты базы данных:
установка пароля, требуемого при открытии базы данных;
защита на уровне определения прав пользователей, которая позволяет ограничить возможность получения или изменения той или иной ин- формации в базе данных для конкретного пользователя.
Кроме того, можно удалить изменяемую программу Visual Basic из ба- зы данных, чтобы предотвратить изменения структуры форм, отчетов и мо- дулей, сохранив базу данных как файл MDE.
90
Установка пароля на открытие базы данных представляет собой про- стейший способ защиты. После того как пароль установлен (функция меню
Сервис > Защита> Задать пароль базы данных), при каждом открытии базы данных будет появляться диалоговое окно, в котором требуется ввести пароль.
Открыть базу данных и получить доступ к ее ресурсам могут получить только те пользователи, которые введут правильный пароль. Этот способ достаточно надежен (MS Access шифрует пароль, так что к нему нет прямого доступа при чтении файла базы данных). Однако проверка проводится только при откры- тии базы данных, после чего все ее объекты становятся полностью доступны- ми. В результате, установка пароля обычно оказывается достаточной мерой защиты для БД, которые совместно используются небольшой группой пользо- вателей или установлены на автономном компьютере.
Гораздо более надежным и гибким способом организации защиты явля- ется защита на уровне пользователей. Он подобен способам, используемым в большинстве сетевых систем. Процесс задания защиты на уровне пользовате- лей состоит из двух принципиальных этапов:
создание системы пользователей, объединенных в группы (Сервис >
Защита > Пользователи и группы);
задание прав доступа различных пользователей и групп по отношению к объектам базы данных (Сервис > Защита > Разрешения).
Информация о системе пользователей сохраняется в специальном файле, называемом файлом рабочих групп. По умолчанию это файл System.mdw. Од- нако с помощью специальной программы, входящей в поставку Access, раз- личные базы данных можно ассоциировать с различными файлами рабочих групп. При запуске Access от пользователей требуется идентифицировать себя и ввести пароль. Отдельные пользователи могут объединяться в группы, при- чем один и тот же пользователь может являться членом различных групп. Та- кая организация системы пользователей позволяет весьма гибко манипулиро- вать набором их прав доступа, исходя из функциональной специфики пред- метной области. В файле рабочих групп Access по умолчанию создаются две группы: администраторы (группа Admins) и группа Users, в которую включа- ются все пользователи. Допускается также определение других групп. Про- цесс создания системы пользователей и определения их принадлежности к группам показан на рис. 57.
Как группам, так и пользователям предоставляются разрешения на дос- туп, определяющие допустимые для них действия по отношению к каждому объекту базы данных. Набор возможных прав, очевидно, определяется специ- фикой объекта.
По умолчанию члены группы Admins имеют все разрешения на доступ ко всем объектам базы данных. Поскольку группа Users объединяет всех поль- зователей, то ей имеет смысл присваивать некоторый минимальный набор прав. Далее имеется возможность установить более разветвленную структуру
91 управления, создавая собственные учетные записи групп, предоставляя этим группам соответствующие разрешения и добавляя в них пользователей. Про- цесс задания прав доступа пользователей по работе с формами базы данных
TradeTest показан на рис. 58.
Рисунок 57 – Задание системы пользователей
Рисунок 58 – Задание прав пользователей
92
8 ОСНОВЫ ИСПОЛЬЗОВАНИЯ ЯЗЫКА СТРУКТУРИРОВАН-
НЫХ ЗАПРОСОВ
1 ... 4 5 6 7 8 9 10 11 12