Microsoft Access
Контрольная работа - Компьютеры, программирование
Другие контрольные работы по предмету Компьютеры, программирование
?енный.
- Создание форму для Подчиненного запроса, взяв все поля. Форму следует создать с помощью мастера. Выбрать вид формы - табличный.
- Редактирование Подчиненной формы в режиме Конструктора. Следует в область данных Подчиненной формы добавить поле со списком Товар, подключив из таблицы Товар поля КодТовара для связи и Наименование для выбора и сохранив значение в поле КодТовара.
- Для полей КодТовара, КодПокупателя, НомерПокупки, Цена, Стоимость по правой кнопке мыши взять Свойства, выбрать Данные и установить Блокировка в значение Да, Доступ в значение Нет, так ввод данных в эти поля не предполагается.
- Редактирование подчиненной формы в режиме просмотра. Следует первым установить поля Название, Цена, Количество, Стоимость. Остальные поля можно скрыть, соединив границы поля.
4.Создать главную форму для таблицы ПОКУПАТЕЛЬ с помощью Конструктора.
- Установить элемент ПолеСоСписком с помощью мастера., выбрав в первом окне диалога пункт Поиск записи в форме на основе значения, которое содержит ПолеСоСписком, выбрав КодПокупателя для связи и Имя для выбора.
- Установить элемент Подчиненная форма/отчет, указав в свойствах элемента Данные свойство Объект -источник имя формы, созданной для подчиненного запроса. Тогда установятся значения для свойства Подчиненные поля - КодПокупателя и для свойства Основные поля -КодПокупателя
- Установить элемент поле с именем Поле5 для указания общего количества заказанного товара и элемент поле с именем Поле7 для общей стоимости заказа. Установим свойства элементов Блокировка в значение Да и Доступ в значение Нет.
- Добавим поле с именем Поле9, установим его свойство Данные в значение КодПокупателя и сделаем это поле невидимым (свойство Макет - Вывод на экран в значение Нет). Это поле потребуется для синхронизации перемещения по записям таблицы ПОКУПАТЕЛЬ.
Внешний вид формы показан на рис.
Теперь осталось рассчитать общее количество и общую стоимость заказа для покупателя, чье имя выбрано в выпадающем списке главной формы. Для расчета используем встроенную функцию подсчета суммы по подмножеству DSUM. Аргументами данной функции являются: имя поля таблицы или запроса, по которому будет производиться подсчет суммы, имя таблицы или запроса и критерий, по которому выбираются записи для подсчета суммы. Таким критерием в данном случае является равенство поля КодПокупателя из запроса Подчиненный коду покупателя, установленному при выборе в поле со списком с именем ПолеПоСписком0.
Для подсчета общего количество товара в заказе используем формулу:
Forms![Главная]![Поле5] = DSum("[Количестиво]", "[Подчиненный]", "Forms![Главная]![ПолеСоСписком0] = [Подчиненный]![КодПокупателя]")
Для подсчета общей стоимости заказа испаользуем формулу:
![Главная]![Поле7] = DSum("[Стоимость]", "[Подчиненный]", "Forms![Главная]![ПолеСоСписком0] = [Подчиненный]![КодПокупателя]")
Обработаем события главной формы: при открытии и текущая запись
При открытии формы установим в выпадающем списке имя первого клиента из таблицы ПОКУПАТЕЛЬ и пересчитаем общее количество и общую стоимость заказа.
Sub Form_Open(Cancel As Integer)
[ПолеСоСписком0] = 1![Главная]![Поле5] = DSum("[Количестиво]", "[Подчиненный]",
"Forms![Главная]![ПолеСоСписком0] = [Подчиненный]![КодПокупателя]")![Главная]![Поле7] = DSum("[Стоимость]", "[Подчиненный]",
"Forms![Главная]![ПолеСоСписком0] = [Подчиненный]![КодПокупателя]")
End Sub
При переходе на следующую запись в таблице ПОКУПАТЕЛЬ необходимо синхронно установить имя следующего клиента и также пересчитать общее количество и общую стоимость заказа.
Private Sub Form_Current()
[ПолеСоСписком0] = [Поле9]![Главная]![Поле5] = DSum("[Количестиво]", "[Подчиненный]",
"Forms![Главная]![ПолеСоСписком0] = [Подчиненный]![КодПокупателя]")![Главная]![Поле7] = DSum("[Стоимость]", "[Подчиненный]",
"Forms![Главная]![ПолеСоСписком0] = [Подчиненный]![КодПокупателя]")
End Sub
Для элемента ПолеСоСписком обработаем событие После обновления. В этом случае при смене имени клиента необходимо пересчитать общее количество и общую стоимость заказа.
Sub ПолеСоСписком0_AfterUpdate()
' Поиск записи, соответствующей этому элементу управления..RecordsetClone.FindFirst "[КодПокупателя] = " &
Me![ПолеСоСписком0]
Me.Bookmark = Me.RecordsetClone.Bookmark![Главная]![Поле5] = DSum("[Количестиво]", "[Подчиненный]",
"Forms![Главная]![ПолеСоСписком0] =
[Подчиненный]![КодПокупателя]")![Главная]![Поле7] = DSum("[Стоимость]", "[Подчиненный]",
"Forms![Главная]![ПолеСоСписком0] =
[Подчиненный]![КодПокупателя]")
End Sub
Для Подчиненной формы обработаем события После обновления и После подтверждения Del
Private Sub Form_AfterUpdate()![Главная]![Поле5] = DSum("[Количестиво]", "[Подчиненный]",
"Forms![Главная]![ПолеСоСписком0] =
[Подчиненный]![КодПокупателя]")![Главная]![Поле7] = DSum("[Стоимость]", "[Подчиненный]",
"Forms![Главная]![ПолеСоСписком0] =
[Подчиненный]![КодПокупателя]")
End Sub
Sub Form_AfterDelConfirm(Status As Integer)
Forms![Главная]![Поле5] = DSum("[Количестиво]", "[Подчиненный]",
"Forms![Главная]![ПолеСоСписком0] =
[Подчиненный]![КодПокупателя]")![Главная]![Поле7] = DSum("[Стоимость]", "[Подчиненный]",
"Forms![Главная]![ПолеСоСписком0] =
[Подчиненный]![КодПокупателя]")Sub
Лабораторная работа № 5. Разработка отчетов по данным
Для создан