Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Фатхутдинова / Access-для выполнении КР.doc
Скачиваний:
40
Добавлен:
23.01.2014
Размер:
1.04 Mб
Скачать
      1. Автоматизация поиска данных с помощью объекта ms Access «макросы»

В нашем примере имеются объекты «таблица», связанные между собой (например, объект «таблица» с перечнем самолетов – LA и объект «таблица» с авиапарком - AviaPark). Создадим объект «форма», отображающий все эксплуатируемые самолеты одной марки, причем выбор интересующей марки будет производиться в этом же объекте «форма».

1) Перейдите к объектам “Формы”, нажимите кнопку , выберите режим “Конструктор”, в качестве источника данных выберитеобъект «таблица» LA, из появившегося окна с перечнем полей перенесите на форму поле Name_LA, в свойствах этого поля определяем выводимые данные Name_LA, сохраните созданный объект «форма» с именем Name_LA.

2) Создайте объект «подчиненная форма», указав в виде источника данных объект «таблица» AviaPark. Из появившегося окна с перечнем полей перенесите на объект «форма» поля N_Comp, N_LA и Data. В элементе меню Вид/Свойства для данного объекта «форма» во вкладке Макет укажите Режим по умолчанию – Ленточная форма (рис. 33), во вкладке Данные для опций “Разрешить изменение”, “Разрешить удаление”, “Разрешить добавление” установите значение - Нет. Таким образом запрещено производить какое-либо изменение данных в объекте «таблица» AviaPark. В меню Вид включите отображение Заголовки/Примечания формы и в области Заголовки разместите необходимые надписи для выводимых полей. Сохраните созданный объект «форма» с именем Форма_М2.

Рис.33

3) Внедрите объект «подчиненная форма» Форма_М2 на объект «главная форма» - Name_LA. Для этого откройте объект «главная форма» в режиме конструктора и перетащите на нее мышкой объект «подчиненная форма» из окна базы данных с объектами «форма». В результате получите следующий объект «форма» (рис. 34):

Рис. 34

Рис. 35

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

5) Создайте объект «запрос» по объекту «таблица» LA с просмотром только одного поля – Name_LA, сохраните его с именем qryName_LA. Этот объект «запрос» выводит все модели самолетов. Он необходим для того, чтобы новое поле для выбора значений моделей ЛА (N1) имело источник данных, отличный от источника данных объекта основной формы. Перенесите с панели инструментов поле со списком, определив для него имя N1 (рис. 36). Организуйте навигацию по записям объекта «основная форма» с использованием информации, введенной в это поле, из которого будет определяться модель летательного аппарата, затем введенное значение будет передаваться в поле основного источника данных, далее – в связанные записи подчиненного источника данных. Таким образом, организуем переход по записям объекта «таблица» AviaPark, не используя стандартные кнопки перехода.

Рис. 36

6)Измените объект «макрос» с именем “1”, выполняющий действия, описанные в пункте 5. В общем случае любой объект «макрос» рассматривается как макротаблица, содержащая несколько объектов «макросы» (в данном случае - два). Дополнительная колонка - Имя макроса появляется с помощью кнопки и позволяет в макротаблице сохранить несколько макросов. В данном случае имеем два макроса с именами 1.1 и 1.2.Он будет иметь следующий вид (рис. 37) :

Рис. 37

Макрос 1.1 осуществляет после выбора необходимого значения в элементе управления N1 переход к элементу управления N2 (по макрокоманде КэлементуУправления фокус получает элемент управления N2), затем по макрокоманде НайтиЗапись текущей записью в объекте «основная форма» становится запись, со значением, совпадающим с выбранным в элементе N1. На этом выполнение макроса 1.1 заканчивается т.к. далее в макротаблице идут строки с другим именем макроса (1.2). Аргументы макрокоманд приведены в таблице 8:

Таблица 8.

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

Аргументы

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

НайтиЗапись

7) После создания объекта «макрос» необходимо для элемента N1 объекта «форма» определить в режиме конструктора Свойства/События/После обновления имя выполняемого макроса – 1.1. Этот макрос будет выполняться после открытия объекта «форма» Name_LA и выбора в поле N1 нужного значения. Возможна ситуация, при которой необходимо предварительное обновление объекта «запрос» qryName_LA (в базе данных производились изменения), поэтому для осуществления корректного поиска объект «запрос», являющийся источником для поиска образца, необходимо обновить. Поэтому добавим еще один макрос 1.2, команды которого приведены в следующей таблице 9:

Таблица 9

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

Аргументы

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

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

Закрыть

Выполнение макроса 1.2 производить при загрузке объекта «форма» Name_LA (для объекта «форма» в режиме конструктора установите Свойства/События/Загрузка – выполнение макроса 1.2).

8) Организуйте обновление объекта «запрос» с помощью включения специального флажка. Если он включен, то объект «запрос» обновляется, если выключен, то выдается информационное сообщение о том, что объект «запрос» не обновлен. Кроме того, предупредим пользователя о ситуации, в которой неопределен образец поиска. Интуитивно понятно, что в этом случае нужна обработка некоторых условий (включенного или выключенного флажка, пустого поля N1). Для этого в макротаблицу добавляется поле Условие по кнопке . Кроме того, разместим наобъекте «форма» Name_LA флажок (данный элемент управления расположен на панели инструментов), определив в его свойствах имя -fl1, значение по умолчанию – 0 (0 – выключен/ложь, -1 – включен/истина), а также в событиях После обновления укажем выполнение макроса 1.4) (рис. 38).

9) Измените объект «макрос» “1” (макротаблицу) следующим образом. Команды макросов 1.3 и 1.4 приведены в таблице 10 ниже.

Рис. 38

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

Таблица 10.

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

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

Аргументы

1.3

Сообщение

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

Сообщение

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

НайтиЗапись

1.4

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

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

Закрыть

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