Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
VB-для курсового проектирования4.doc
Скачиваний:
16
Добавлен:
23.08.2019
Размер:
2.36 Mб
Скачать

3.2.4.5. Запуск приложения

Для открытия главной кнопочной формы сразу при открытии файла базы данных установим необходимые параметры запуск, выполнив команду Сервис/Параметры запуска (рис. 52). В строке Вывод формы/страницы укажите форму, созданную диспетчеров кнопочных форм, а для запрета пользователю просматривать окно базы данных необходимо снять флажки Окно базы данных и специальные клавиши Access.

Рис. 52

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

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

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

Для установки пароля запустите Access, выполните команду Открыть, укажите открываемый файл базы данных, установите режим открытия – монопольно (рис. 53), выполните команду СЕРВИС/Защита/Задать пароль базе данных. Пароль вводится с учетом регистра. При удалении пароля откройте монопольно базу данных, указав пароль, выполните команду СЕРВИС/Защита/Удалить пароль базы данных, повторив удаляемый пароль.

Рис. 53

3.2.5. Макросы

Наряду с такими объектами, ка формы, запросы и отчеты для реализации практических задач пользователя применяются средства рограммироваия:язык макросов и язык Visual Basic for Applications (VBA). Программа на языке макросов или просто макрос является объектом Access, который наряду с с другими объектами представлен в окне базы данных. Макрос состоит из набора макрокоманд. Макрокоманда – это конструкция, ориентированная на выполнение определенного действия. Макрокомандой можно открыть форму, отчет, напечатать отчет, запустить на выполнение запрос, применить фильтр, присвоить значение. Имеющийся в Access набор макрокоманд (более 40) реализует практически любые действия, которые необходимы при разработке небольших персональных приложений пользователя.

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

В

Рис. 54

нашем примере имеются таблицы, связанные между собой (например, таблица с перечнем летательных аппаратов – LA и таблица с записями по всем контрактам - Kontract). Создадим форму (вручную), отображающую все контракты, содержащие данный вид летательного аппарата. Переходим к объектам Формы, нажимаем кнопку , в качестве источника данных выбираем таблицу LA, с панели инструментов переносим на форму поле, в свойствах этого поля определяем выводимые данные Name_LA, сохраняем созданную форму, допустим с именем Name_LA. Аналогично создайте форму, указав в виде источника дан­ных таблицу Kontract, и в элементе меню Вид/Свойства для дан­ной формы во вкладке Макет укажите Режим по умолчанию – Ленточная форма (рис. 54).

В меню Вид включите отображение Заголовки/Примеча­ния формы и в области Заголовки разместите необходимые надписи для выводимых полей. Сохраните созданную форму с именем LA_Kontr.

Внедрим подчиненную форму–LA_Kontr на главную форму - Name_LA. Для этого откройте главную форму в режиме конструктора и перетащите на нее мышкой подчиненную форму. В результате получите следующую форму (рис. 55):

Рис. 55

В области подчиненной формы можно убрать кнопки перехода по записям и указатель текущей записи, установив для этой формы в Свойства/Макет опции: Кнопки перехода – нет и Область выделения – нет.

Рис. 56

Макросы в Access хранятся в базе данных как особые объекты и рассматриваются как действия, выполняемые последовательно друг за другом. Перейдя в область макросов и нажав кнопку , вы открываете бланк для конструирования макроса (рис. 56). После выбора нужной макрокоманды – Открыть форму необходимо указать параметры этой макрокоманды (имя открываемой формы – Name_LA и, например, режим данных – только чтение). Сохраните созданный макрос допустим с именем 1. Запустить его можно по кнопке из области макросов, либо двойным щелчком по макросу. В этом случае созданная форма будет открыта, причем пользователь не сможет изменять данные, а только их просматривать. В Access существует зарезервированное имя для макроса –autoexec. Если в базе данных существует макрос с таким именем, то он будет выполняться сразу же после открытия базы данных. Таким образом можно организовать вызов основной кнопочной формы.

Организуем навигацию по записям основной формы с использованием поля со списком, из которого будет выбираться тип летательного аппарата, выбранное значение будет передаваться в поле основной таблицы, связанное с записями подчиненной таблицы, т.е. огранизуем переход по записям не используя стандартные кнопки перехода. Создадим макрос, выполняющий эти действия. Предваритель­но разместим на форме элемент управления Поле со списком, определив для него имя N1 (рис. 57), затем в конструкторе создадим запрос на выборку, содержащий типы ЛА из таблицы LA (в режиме SQL он будет иметь вид: Select Name_LA from LA), сохраним его с именем qryName_LA. Этот запрос необходим для того, чтобы новое поле для выбора значений типов ЛА (N1) имело источник данных, отличный от источника данных основной таблицы формы.

Рис. 57

Создадим следующий макрос с именем 1 (рис. 58).

Рис. 58

В общем случае любой макрос рассматривается как макротаблица, содержащий несколько макросов (в данном случае - два). Дополнительная колонка - Имя макроса появляется с помощью кнопки и позволяет в макротаблице сохранить несколько макросов. В данном случае имеем два макроса с именами 1.1 и 1.2. Предпочтительнее в базе данных иметь небольшое количество макротаблиц, содержащих макросы. Макрос 1.1 осуществляет после выбора необходимого значения в элементе управления N1 переход к элементу управления N2 (по макрокоманде КэлементуУправления фокус получает элемент управления N2), затем по макрокоманде НайтиЗапись текущей записью в основной форме становится запись, со значением, совпадающим с выранным в элементе N1. На этом выполнение макроса 1.1 заканчивается т.к. далее в макротаблице идут строки с другим именем макроса (1.2). Аргументы макрокоманд приведены в таблице 12:

Таблица 12.

Макрокоманда

Аргументы

КЭлементуУправления

НайтиЗапись

После создания макроса необходимо для элемента N1 формы определить в режиме конструктора Свойства/События/После обновления имя выполняемого макроса – 1.1. Этот макрос будет выполняться после открытия формы Name_LA и выбора в поле N1 нужного значения.

Возможна ситуация, при которой необходимо предварительное обновление запроса qryName_LA (при работе с базой данные изменялись), поэтому для осуществления корректного поиска запрос, являющийся источником для поиска образца, необходимо обновить. Поэтому добавим еще один макрос 1.2, команды которого приведены в следующей таблице 13:

Таблица 13

Макрокоманда

Аргументы

ОткрытьЗапрос

ОбновитьОбъект

Закрыть

Выполнение макроса 1.2 производить при загрукзе формы Name_LA (для формы в режиме конструктора установите Свойства/События/Загрузка – выполнение макроса 1.2). Теперь организуем обновление запроса с помощью включения специального флажка. Если он включен, то запрос обновляется, если выключен, то выдается информационное сообщение о том, что запрос не обновлен. Кроме того, предупредим пользователя о ситуации, в которой неопределен образец поиска. Интуитивно понятно, что в этом случае нужна обработка некоторых условий (включенного или выключенного флажка, пустого поля N1). Для этого в макротаблицу добавляется поле Условие по кнопке . Кроме того, разместим на форме Name_LA флажок , определив в его свойствах имя - fl1, значение по умолчанию – 0 (0 – выключен/ложь, -1 – включен/истина), а также в событиях После обновления укажем выполнение макроса 1.4 (рис. 59). Видоизменим макрос 1 (макротаблицу) следующим образом. Команды макросов 1.3 и 1.4 приведены в таблице 14 ниже.

Рис. 59

Многоточие в столбце Условия означает повтор предыдущего условия.

Таблица 14.

Номер макроса

Макрокоманда

Аргументы

1.3

Сообщение

ОстановитьМакрос

Сообщение

КЭлементуУправления

НайтиЗапись

1.4

ОткрытьЗапрос

ОбновитьОбъект

Закрыть

Напомним, что макрос 1.4 выполняется при наступлении события После обновления – включения для элемента флажок, а макрос 1.3 должен выполняться при настеплении события После обновления для элемента N1.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]