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. Разработка отчетов по данным

 

Для создан