Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
учебник по аксес.doc
Скачиваний:
23
Добавлен:
14.11.2018
Размер:
1.62 Mб
Скачать

10. Создание формы для просмотра сведений о предприятиях и изделиях.

В седьмом пункте рассматриваемого типового варианта задания нужно создать форму, выводящую сведения из обеих таблиц и содержащую кнопку. Форма должна позволять просматривать записи об изделиях, выводя название выпускающего предприятия и его адрес. По каждому изделию должно выводиться значение его цены в 4-м квартале на очередном предприятии и величина годового выпуска на этом предприятии. Кнопка, присутствующая в форме, должна обеспечить при щелчке по ней вывод на экран значения минимальной среднеквартальной цены данного изделия среди всех выпускающих это изделие предприятий.

При создании такой формы можно идти двумя путями:

- создать вспомогательный запрос, объединяющий данные из различных таблиц, а затем использовать запрос в качестве источника данных для формы;

- сразу создавать форму, использующую данные из различных таблиц.

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

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

Выберем в качестве основной таблицы таблицу Tabv, а в качестве дополнительной – таблицу Tabp. При выборе полей, включаемых в форму, перечислим не только поля, непосредственно выводимые в форму, но и поля, используемые в вычислениях (в том числе поля квартальных цен и выпусков).

Создается одиночная форма. Выберем вид формы – «выровненная». Присвоим форме имя Form7.

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

Создадим новое поле с помощью элемента «поле» на панели элементов управления. Это поле должно содержать объем годового выпуска, поэтому внутри прямоугольника, обозначающего поле, поместим формулу для вычисления: =[vp1]+[vp2]+[vp3]+[vp4]. Рядом с этим полем создадим надпись «Объем годового выпуска».

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

DMin(“([zn1]+[zn2]+[zn3]+[zn4])/4”;”Tabv”;”Forms![Form7]![Izd]=Tabv![Izd]”).

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

Обращение к полю в форме должно содержать имя класса объектов – FORMS, затем имя конкретной формы – FORM7, и только потом – имя самого поля – Izd. Между этими именами записывается символ-разделитель «!».

Обращение к полю таблицы должно содержать имя таблицы – Tabv и имя поля – Izd. Они тоже разделяются восклицательным знаком.

Как и куда вывести значение вычисленной функции? Есть различные возможности – можно создать специальную форму, можно создать поле в форме Form7, которое иногда видимо, иногда не видимо. Но проще всего вывести полученное значение функции в виде сообщения в диалоговое окно.

Создадим макрос по имени «Макрос9», состоящий из одной макрокоманды:

Сообщение.

Ее аргументы:

Сообщение: =dMin(“([zn1]+[zn2]+[zn3]+[zn4])/4”;”Tabv”;”Forms!Form7![Izd]=Tabv![Izd]”)

Сигнал: да

Заголовок: Минимальная цена

Теперь надо создать в форме кнопку с надписью «Мин средняя цена» и связать с ней запуск ранее созданного макроса, выводящего сообщение. Кнопка создается с помощью элемента Кнопка на панели элементов управления либо при участии мастера кнопок, либо без него.

В свойствах созданной кнопки событию Нажатие надо сопоставить запуск макроса.

В результате в открытой форме Form7 имеется изображение кнопки с надписью на ней «Мин средняя цена». Щелчок по ней вызывает вывод окна с сообщением о минимальной среднеквартальной цене изделия среди цен различных предприятий, выпускающих это изделие.

Форма в режиме конструктора представлена на рисунке 24.

Рис. 24. Форма Form7 в режиме конструктора.

Рис. 25. Окно свойств кнопки.

На рисунке 25 показана вкладка «События» окна свойств созданной кнопки.

Форма «Form7», открытая в режиме формы, показана на рисунке 26.

Рис. 26. Просмотр формы Form7 в режиме формы.

На этом рисунке видно также сообщение, выведенное при щелчке по кнопке.