Конструирование подчиненных форм в среде Microsoft Access

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

1. Создайте базу данных БД_КНИГИ.

2. Создайте три таблицы:

Книги (Шифр_книги, Название, Автор, Цена)

Заказ (Номер_заказа, Дата_заказа, Фамилия_заказчика)

Книги_в_заказе (Номер_заказа, Шифр_книги, Количество)

 

Ключи в таблицах выделены жирным. Типы полей текстовые (размеры подберите по собственному усмотрению, но не по 50 символов), кроме полей Цена – денежный тип, Количество – числовой, а Дата_заказа – тип дата/время.

3. Создайте схему данных, приведенную на рис.1. Работа с базами данных/Схема данных.Из появившегося окна Добавление таблицы выбрать ранее созданные три таблицы. Установить между ними связи. В окне Изменение связей выбрать: Обеспечение целостности данных.

Рис.1. Схема данных базы данных БД_КНИГИ.

 

Заполните только таблицу Книги, введите информацию о десятке книг.

4. Создайте форму для таблицы Заказ в режиме Мастер форм в один столбец. Сохраните форму Заказ.

Откройте форму Заказ в режиме конструктора. Увеличьте размер формы, как показано на рис.2.

Рис.2. Форма Заказ в режиме конструктора

С помощью инструмента подчиненная форма (Конструктор/Подчиненная форма ) добавьте подчиненную форму на свободное место формы Заказ.

Запустится мастер подчиненных форм. В ходе работы мастера добавьте в подчиненную форму из таблицы Книги поля Автор и Цена, а из таблицы Книги_в_заказе поля Шифр_книги и Количество (рис.3). Сохраните форму Заказ.

 

Рис.3. Форма Заказ с подчиненной формой Книги

Откройте подчиненную форму Книги в режиме конструктора. Измените ее следующим образом:

а) Удалите поле Шифр_книги и на это место поставьте поле со списком с помощью соответствующего инструмента (Конструктор/Поле со списком (элемент управления формы)). Запустится мастер создания полей со списком.

 

б) В ходе работы мастера для поля со списком выберите из таблицы Книги поле Название, далее работайте по мастеру, в пункте Сохранить в поле, выберите поле Шифр_книги. Задайте подпись для поля со списком: Выбери книги.

в) Вид подчиненной формы в режиме конструктора на рис.4. Сохраните форму.

 

Рис.4. Подчиненная форма Книги с полем со списком.

 

5. Откройте форму Заказ. Заполните заказ номер 1 и выберите несколько книг из списка, укажите количество книг.

6. Измените подчиненную форму Книги в режиме конструктора.

6.1. Добавьте вычисляемое поле Количество * Цена, используя построитель выражений. Для этого в свободное место области данных добавьте новое поле (Конструктор/Поле). Щелкните правой кнопкой мыши в новом поле и выберите опцию Свойства, на вкладке Данные в Окне свойств щелкните элемент «…»

Рис.5. Окно свойств

Запустится Построитель выражений. Постройте выражение =Количество*Цена (Поля Количество и Цена выберите из второго столбца в Построителе выражений). Задайте имя поля – Итого.

 

6.2. В части Примечание формы подчиненной формы добавьте поле для подсчета итоговой суммы заказа. Затем щелкните правой кнопкой мыши в новом поле и выберите опцию Свойства, на вкладке Данные щелкните элемент «…» и запустится Построитель выражений. Постройте выражение =sum(Количество * Цена), где поля Количество и Цена выберите из загруженных форм. Запомните название (номер) этого поля, например Поле20.

Измените свойства добавленных полей: на вкладке Макет выберите формат поля Денежный. Сохраните форму.

7. Откройте форму Заказ в режиме конструктора и добавьте поле для подсчета итоговой суммы: в свойствах этого поля с помощью построителя выражений (см. пункт 6.2.) укажите Поле20. Задайте имя поля – Всего к оплате. Также как в пункте 6.2. измените формат поля на формат Денежный. Сохраните форму.

8. Откройте форму Заказ и проведите закупки.

9. Откройте форму Заказ в режиме конструктора и добавьте кнопку для выполнения нового заказа. В процессе работы мастера создания кнопок укажите опции Обработка записей/Добавить запись и задайте на кнопке текст НОВЫЙ ЗАКАЗ.