Упражнение 2. Проектирование многотабличных форм

Многотабличная форма создается для работы с данными нескольких взаимосвязанных таблиц. Многотабличная форма может состоять из основной части и одной или нескольких подчиненных включаемых форм, то есть быть составной.

Проектирование многотабличных форм выполняется на основе схемы данных, состоящей из нормализованных таблиц, связанных одно/многозначными отношениями.

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

― Определить таблицы, которые будут источником записей основной части формы.

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

― Определить состав полей каждой из форм.

― Выбрать способы реализации подчиненных форм и источников записей.

Многотабличная форма может быть создана в режиме КОНСТРУКТОРА или с помощью МАСТЕРА форм. Наиболее технологичным является использование КОНСТРУКТОРА.

1. На основе схемы данных определим данные для конструирования формы (рис.7).

Упражнение 2. Проектирование многотабличных форм - student2.ru

Рис.7. Подсхема данных для конструирования формы на базе таблицы ЗАКАЗ

Источник записей для основной части формы ЗАКАЗ – поля таблицы ЗАКАЗ. Поля таблицы ПУНКТ_ЗАКАЗА являются источниками записей подчиненной формы. Для поля основной части ПОКУПАТЕЛЬ источником записей будет таблица ПОКУПАТЕЛЬ. Для поля ФОРМА_ОПЛАТЫ источником записей – поля таблицы ФОРМА_ОПЛАТЫ.

Реализацию списков записей для полей ПОКУПАТЕЛЬ и ФОРМА_ОПЛАТЫ в основной части формы удобно выполнить с помощью элементов управления ПОЛЕ СО СПИСКОМ.

Реализацию полей подчиненной формы удобно выполнить с помощью вложенной формы. Следовательно, необходимо предварительно разработать подчиненную форму ПУНКТ_ЗАКАЗА.

2. В режиме КОНСТРУКТОРА создайте форму для таблицы ПУНКТ_ЗАКАЗА (рис.8).

3. Для поля ТОВАР источником записей является таблица ТОВАР. Реализацию удобно выполнить с помощью элемента ПОЛЕ СО СПИСКОМ (рис.8).

Упражнение 2. Проектирование многотабличных форм - student2.ru

Рис.8. Форма ПУНКТ_ЗАКАЗА в режиме КОНСТРУКТОРА

4. Вносить записи с помощью созданной формы неудобно, так как нужно помнить номер заказа. Эта форма должна быть вложенной формой для формы Заказ. Форму ПунктЗаказа можно просмотреть в режиме ВИД (рис.9).

Упражнение 2. Проектирование многотабличных форм - student2.ru

Рис.9. Окончательный вид подчиненной формы ПУНКТ_ЗАКАЗА

Прежде, чем начать создавать основную часть формы ЗАКАЗ, внесем некоторые изменения в нашу базу данных. Иногда используемые элементы интерфейса и способы реализации полей таблиц в форме Access позволяют сократить количество таблиц в схеме базы данных.

В таблице ЗАКАЗ поле ФОРМА_ОПЛАТЫ имеет всего два значения: наличная оплата и безналичная оплата. В КОНСТРУКТОРЕ форм на панели инструментов есть элемент ПЕРЕКЛЮЧАТЕЛЬ, имеющий два состояния: 1/0, ДА/НЕТ, ВКЛ/ВЫКЛ. Использование элемента ПЕРЕКЛЮЧАТЕЛЬ для реализации поля ФОРМА_ОПЛАТЫ позволит:

― Хранить значения поля ФОРМА_ОПЛАТЫ в числовом формате, а не в текстовом формате (например, 1 – наличная, 0 – безналичная), что является экономией памяти.

― Удалить из схемы таблицу ФОРМА_ОПЛАТЫ (комментарии к значениям поля можно вынести непосредственно в форму).

― Реализовать понятный и привлекательный интерфейс формы.

5. Удалите из базы данных таблицу ФОРМА_ОПЛАТЫ.

6. В режиме КОНСТРУКТОРА создайте форму для таблицы ЗАКАЗ (рис.13).

7. Перенесите поля НОМЕР_ЗАКАЗА, ДАТА_ЗАКАЗА, ОПЛАЧЕНО в область данных формы из списка полей.

8. С помощью свойств поля НОМЕР_ЗАКАЗА это поле можно сделать недоступным для ввода (поле типа счетчик), как показано на рис.15.

9. Сконструируйте поле ПОКУПАТЕЛЬ с помощью элемента ПОЛЕ СО СПИСКОМ (источник записей – таблица ПОКУПАТЕЛЬ).

10. Для создания поля ФОРМА_ОПЛАТЫ щелкните мышью по элементу ГРУППА ПЕРЕКЛЮЧАТЕЛЕЙ на панели инструментов КОНСТРУКТОРА и затем покажите в форме место для помещения этого элемента.

11. Откроется первое диалоговое окно МАСТЕРА создания переключателей. Введите подписи для переключателей (рис.10).

Упражнение 2. Проектирование многотабличных форм - student2.ru

Рис.10. Мастер создания элементов ПЕРЕКЛЮЧАТЕЛИ

12. В следующем диалоге можно выбрать один из переключателей в качестве переключателя, выбранного по умолчанию.

13. В следующем окне диалога вам будет предложено установить числовые значения, которые будут сохранять в поле ФОРМА_ОПЛАТЫ в таблице ЗАКАЗ. Предположим, что наличная форма оплаты – это число 1, безналичная – число 0 (рис.11).

14. Далее надо указать в каком поле будут сохранены значения 1 или 0 (рис.12).

Упражнение 2. Проектирование многотабличных форм - student2.ru

Рис.11. Создание переключателей в форме

Упражнение 2. Проектирование многотабличных форм - student2.ru

Рис.12. Сохранение значений переключателей

15. Следующий шаг определит дизайн вашей группы переключателей.

16. Последний шаг диалога. Введите название вашей группы переключателей, например – форма оплаты.

Упражнение 2. Проектирование многотабличных форм - student2.ru

Рис.13. Форма ЗАКАЗ в режиме КОНСТРУКТОРА

Добавление подчиненной формы в основную форму может быть с помощью кнопки ПОДЧИНЕННАЯ ФОРМА/ОТЧЕТ на панели элементов режима КОНСТРУКТОР Упражнение 2. Проектирование многотабличных форм - student2.ru (рис.14).

Упражнение 2. Проектирование многотабличных форм - student2.ru

Рис.14. Размещение подчиненной формы в основной форме

Упражнение 2. Проектирование многотабличных форм - student2.ru

Рис.15. Окончательный вид многотабличной формы ЗАКАЗ

17. Проверьте работоспособность многотабличной формы (рис.15). Введите несколько заказов, каждый из которых состоит из нескольких позиций[2].

18. Проверьте, что введенные в форму данные помещаются в таблицы ЗАКАЗ и ПУНКТ_ЗАКАЗА.

Самостоятельно

1. Добавьте в форму ЗАКАЗ кнопки для выполнения следующих операций:

― Удаления текущей записи.

― Открытия формы ПОКУПАТЕЛЬ.

― Обновления состояния записей формы.

2. В свойствах поля ЦЕНА_РЕАЛИЗАЦИИ в подчиненной форме установите формат ДЕНЕЖНЫЙ (рис.15).

3. Проверьте возможность добавления нового покупателя непосредственно из формы ЗАКАЗ. Убедитесь, что эти записи попадают в таблицу ПОКУПАТЕЛЬ.

4. Добавьте в форму ТОВАР подчиненную формы, созданную на основе таблицы ПАРТИЯ_ТОВАРА.

5. В форме ПАРТИЯ _ТОВАРА создайте вычисляемое поле ЦЕНА_ПРОДАЖИ (рис. 16) с помощью ПОСТРОИТЕЛЯ ВЫРАЖЕНИЙ (кнопка Упражнение 2. Проектирование многотабличных форм - student2.ru на панели инструментов КОНСТРУКТОРА формы) и элемента управления ПОЛЕ из панели элементов Упражнение 2. Проектирование многотабличных форм - student2.ru .

Упражнение 2. Проектирование многотабличных форм - student2.ru

Рис.16. Создание вычисляемого поля в форме

На рис.17 показан примерный вид формы для таблицы ТОВАР в режиме КОНСТРУКТОРА формы.

Упражнение 2. Проектирование многотабличных форм - student2.ru

Рис.17. Вид формы ТОВАР в режиме КОНСТРУКТОРА

6. Заполните все таблицы вашей базы данных с помощью созданных форм.

7. Добавьте при необходимости кнопки для удаления записей, кнопки для открытия форм-справочников из многотабличных форм.

Наши рекомендации