Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Учебное пособие 3000237.doc
Скачиваний:
7
Добавлен:
30.04.2022
Размер:
1.11 Mб
Скачать

3.4. Создание составной формы

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

Создание составной формы с помощью мастера форм осуществляется следующим образом.

Переходят во вкладку Формы и щелкают по Создать.

В диалоговом окне Новая форма выбирают режим создания – Мастер форм, ОК.

В диалоговом окне Создание форм выбирают главную таблицу из списка Таблицы/Запросы и все поля данной таблицы, используя кнопку >>.

В диалоговом окне Создание форм выбирают подчиненную таблицу из списка Таблицы/Запросы и все поля данной таблицы, используя кнопку >>, щелкают по кнопке Далее.

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

В следующем диалоговом окне выбирают вариант представления подчиненной формы (табличный), щелкают по кнопке Далее.

В следующем окне выбирают стиль оформления форм, щелкают по кнопке Далее.

В последнем окне задают имя главной и подчиненной форм и щелкают по кнопке Готово.

3.5. Защита и контроль данных, вычисления в форме

Защита данных поля от изменения. Для защиты данных поля от изменения используется свойство Блокировка. Блокировка может быть установлена для любого поля формы. Чтобы защитить таким образом поле, надо, находясь в макете формы (режим Конструктор), выделить защищаемое поле и вызвать для него контекстное меню, в котором выбрать пункт Свойства. Затем в окне свойств во вкладке Данные в строке Блокировка выбрать Да. После установки этого свойства поле доступно только для чтения.

Вычисления в каждой записи формы. Чтобы произвести вычисления на основе данных одной записи в форме, необходимо создать вычисляемый элемент управления, в который записывается выражение. Для создания вычисляемого элемента управления надо открыть форму в режиме Конструктор и, нажав на панели элементов кнопку Поле (аб|), разместить вычисляемый элемент управления в нужном месте. Затем в объект свободный вносится выражение, в объект поле надпись. Выражение должно начинаться со знака равенства (=). В качестве операндов выражения чаще всего используются имена полей, константы, а в качестве операторов – знаки арифметических операций.

Для объекта с именем Свободный вызывают контекстное меню, выбирают пункт меню Свойства, вкладку Данные, строку Данные. При этом можно внести формулу в строке Данные вручную, а можно воспользоваться кнопкой Построитель выражений (…), которая находится в данной строке. В окне построителя выражений имеется панель кнопок с различными операторами и есть возможность выбрать из списка нужные поля (активизировав во второй нижней части окна строку <список полей>) и функции.

Вычисление итоговых значений для записей подчиненной формы и вывод их в основной форме. Основная форма и ее подчиненная форма строятся на основе таблиц, между которыми установлена связь типа «один-ко-многим». При этом в основной форме выводится только одна запись, а в подчиненной форме – несколько записей, которые подчинены ей. При расчете итогового значения для группы записей подчиненной формы вычисляемое поле может быть отображено в области данных основной формы.

Пример. Пусть требуется подсчитать для каждой модели суммарную продажу (Sum([Количество])) в подчиненной форме Продажа-ПФ и вывести эти данные в области данных главной формы Устройства-Продажа. Порядок действий следующий:

отобразить подчиненную форму Продажа-ПФ в режиме конструктора;

в данной форме в области примечания формы создать вычисляемый элемент управления (с помощью кнопки Поле панели элементов) и внести туда выражение, содержащее статистическую функцию подсчета суммы =Sum([Количество]); запомнить имя созданного элемента управления (допустим это было имя “Поле10”); сохранить произведенные действия и выйти из режима конструктора;

отобразить основную форму Устройства-Продажа в режиме конструктора; в основной части формы создать поле с помощью кнопки Поле на панели элементов и записать туда выражение:

= [Продажа-ПФ] . [Form]![Поле10]

Это выражение является ссылкой на элемент управления Поле10 в подчиненной форме.

Общий формат такой ссылки имеет вид:

первый вариант ссылки

=[Имя подчиненной формы].[Form]![Имя поля в подчиненной форме]

или второй вариант ссылки

=Forms![Имя главной формы]![Имя подчиненной формы]![Имя поля].

Например:

=Forms![Устройства-Продажа]![Продажа-ПФ]![Поле10]

Пересчет поля в главной форме при изменении или вводе значения в поле подчиненной формы. Пусть имеются основная форма Устройства-Продажа и подчиненная форма Продажа-ПФ для таблиц Устройства и Продажа, между которыми существует связь «один-ко-многим». Требуется пересчитывать поле Кол-во на складе в основной форме при изменении или вводе данных в поле Количество в подчиненной форме, если поле Количество меньше или равно поля Кол-во на складе, в противном случае выдать сообщение об ошибке и обеспечить повторный ввод информации. Порядок действий:

отобразить подчиненную форму Продажа-ПФ в режиме конструктора;

выделить поле Количество и открыть для него окно свойств (кнопка Свойства на панели инструментов или в контекстном меню пункт Свойства);

в окне свойств перейти во вкладку События, в строке После обновления щелкнуть по кнопке Построитель выражений, выбрать пункт меню Программы и щелкнуть по кнопке ОК; при этом мы попадаем в процедуру обработки события;

набрать следующие операторы

If forms![Устройства-Продажа]![Кол-во на складе]> [Количество] Then

forms![Устройства-Продажа]![Кол-во на складе] = forms![Устройства-Продажа]![Кол-во на складе] - [Количество]

Else

[Количество] = null

[Дата продажи].SetFocus

[Количество].SetFocus

MsgBox “ Количество больше количества на складе “, vbOKOnly

End If

сохранить процедуру, закрыть окна процедуры, свойств, конструирования формы.

ЛАБОРАТОРНАЯ РАБОТА № 2

СОЗДАНИЕ ОДНОТАБЛИЧНЫХ И СОСТАВНЫХ ФОРМ

1. Ввести данные в таблицу Виды устройств во вкладке Таблицы, используя кнопку Открыть. Данные для ввода в таблицу Виды устройств:

Материнские платы

Процессоры

Модули памяти

Винчестеры

Видеокарты

Корпуса

Накопители

Звуковые платы и колонки

2. Во вкладке Формы создать Автоформу в столбец для таблицы Устройства, форму назвать Устройства.

В режиме Конструктор осуществить редактирование формы:

в заголовок формы добавить надпись Форма УСТРОЙСТВА; произвести редактирование надписи (выбрать размер шрифта 14-16, полужирное начертание, выбрать цвет и рамку для надписи и т.д.);

в заголовок формы добавить: кнопку выхода из формы, кнопку поиска записей;

поля Вид и Гарантия должны быть организованы как поля с раскрывающимися списками;

выбрать фон для заголовка формы и области данных;

добавить в форму вычисляемое поле Цена в уе (=[Розничная цена] / 43).

С помощью созданной формы ввести следующие данные.

Модель

Вид

Кол-во

на складе

Розничная

цена

Гарантия

Системная плата Abit BE6-II Slot1

Материн-ские платы

123

2136

1 год

Системная плата Abit KT7A-Raid

Материнские платы

87

3146

1 год

Системная плата Intel D815EPFV

Материнские платы

56

3236

1 год

Системная плата Intel D845WN

Материнские платы

145

4058

1 год

Процессор AMD Duron 700

Процессоры

46

1193

1 год

Процессор AMD Duron 1100

Процессоры

76

2417

1 год

Процессор Intel Celeron 700

Процессоры

110

1527

1 год

Процессор Intel Celeron 1000

Процессоры

90

2620

1 год

Жесткий диск HDD 20.4Gb

Винчестеры

45

3061

2 года

Жесткий диск HDD 20Gb

Винчестеры

34

2652

2 года

Жесткий диск HDD 20.5Gb

Винчестеры

23

3132

2 года

Корпус Minitower JNC-8

Корпуса

45

594

6 месяцев

Корпус Minitower H312

Корпуса

38

984

6 месяцев

Корпус Miditower Colegen

Корпуса

56

1541

6 месяцев

3. Создать составную форму, используя мастера форм для таблиц Устройства и Продажа (выбрать вариант - подчиненная форма, выбрать табличный вид для подчиненной формы, назвать главную форму Устройства-Продажа, подчиненную форму Продажа-ПФ).

В режиме Конструктор осуществить редактирование составной формы:

в заголовок главной формы добавить надпись Форма УСТРОЙСТВА-ПРОДАЖА; произвести редактирование надписи (выбрать размер шрифта 14-16, полужирное начертание, выбрать цвет и рамку для надписи и т.д.);

в заголовок главной формы добавить: кнопку выхода из формы, кнопку поиска записей;

поле Вид в главной форме должны быть организовано как поле с раскрывающимся списком;

установить такой размер окна для подчиненной формы, чтобы было видно максимальное число полей из данной формы;

защитить поле Модель в главной форме от изменения;

при вводе данных в поле Количество уменьшать поле Кол-во на складе, если поле Количество меньше или равно поля Кол-во на складе, в противном случае выдать сообщение об ошибке и обеспечить повторный ввод количества;

вычислить для каждой модели суммарную продажу (Sum([Количество]) в подчиненной форме Продажа-ПФ и вывести эти данные в области данных главной формы Устройства-Продажа.

С помощью созданной формы ввести следующие данные в таблицу Продажа:

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

Номер чека

Модель

Дата продажи

Количество

Вносит программа

Системная плата Abit BE6-II Slot1

8.04.13

1

Системная плата Abit BE6-II Slot1

8.04.13

1

Системная плата Intel D815EPFV

9.04.13

1

Системная плата Intel D815EPFV

10.04.13

1

Системная плата Intel D815EPFV

11.04.13

1

Процессор AMD Duron 700

9.04.13

1

Процессор AMD Duron 700

9.04.13

1

Процессор Intel Celeron 1000

12.04.13

1

Жесткий диск HDD 20.4 Gb

11.04.13

1

Жесткий диск HDD 20.4 Gb

11.04.13

1

Жесткий диск HDD 20 Gb

8.04.13

1

Жесткий диск HDD 20 Gb

13.04.13

1

Корпус Minitower JNC-8

8.04.13

1

Корпус Minitower JNC-8

9.04.13

1

Корпус Miditower Colegen

12.04.13

1

Корпус Miditower Colegen

11.04.13

1