- •Лабораторная работа № 5.
- •Задание
- •Основные сведения Основные понятия Visual Basic для приложений
- •Модули форм и отчетов
- •Объекты базы данных в vba
- •Объект Recordset
- •Ссылки на библиотеки объектов
- •События
- •Соглашения по синтаксису
- •Ссылки на формы, отчеты, их свойства и элементы управления
- •Ссылки на подчиненные формы и отчеты
- •Использование функции dLookup
- •Внутренние константы
- •Технология работы Создание процедуры для проверки правильности вводимой даты
- •Создать функцию для автоматического установления скидки.
- •Создать процедуры для контроля количества товаров
- •Создать процедуру для добавления записи в таблицу
- •Создать процедуру для удаления записи из таблицы
- •Создание процедуры поиска заказчика из Омска
- •MsgBox "Нет клиентов из Омска!"
- •Создать функцию для копирования цены из поля таблицы в поле формы
- •Создание процедуры подсчета числа заказов на определенную дату
- •Создание процедуры возврата в окно базы данных
- •Создание процедуры обработки события отсутствия в списке
- •Создать процедуры обработки событий для отбора данных при открытии отчета
- •Содержание отчета
Создать процедуры для контроля количества товаров
В запрос – источник записей формы ЗаказанныйТовар дополнительно включите поля НаСкладе, МинимальноеКоличество и Ожидается.
Добавьте эти же поля в область данных формы Заказанный товар.
Предусмотрите выдачу надписи Недостаточный запас и дополнительное поле НеобходимоЗаказать.
4. Для свойства формы Текущая запись напишите процедуру :
Private Sub Form_Current()
If (Me![НаСкладе] + Me![Ожидается]) <= Me![МинимальныйЗапас] Then
Me![НаСкладе].ForeColor = 255
Me!НедостаточныйЗапас.Visible = True
Me!НедостаточныйЗапас.ForeColor=255
Else
Me![НаСкладе].ForeColor = 0
Me!НедостаточныйЗапас.Visible = False
End If
End Sub
Если сумма значений в полях НаСкладе и Ожидается меньше, чем МинимальныйЗапас, то количество товара задается красным цветом в поле НаСкладе и выводится надпись Недостаточный запас. Если минимальный запас достаточен количество в поле НаСкладе выводится черным цветом, а надпись Недостаточный запас скрывается. Работа процедуры проверяется при курсоре, установленном в поле НаСкладе.
Добавьте при отключенном мастере элементов в форму ЗаказанныйТовар кнопку Заказать.
Для этой кнопки в списке свойств задайте имя и подпись Заказать.
В свойстве Нажатие кнопки напишите процедуру:
Private Sub Заказать_Click()
Me![НеобходимоЗаказать] = Me![Минимальный Запас]- (Me![НаСкладе] +
Me![Ожидается])
End Sub
В процедуру Текущая запись добавьте строку после ELSE
Me![НеобходимоЗаказать]=0
Создать процедуру для добавления записи в таблицу
Создайте форму, содержащую кнопку с именем НовыйТип.
В свойстве события кнопки Нажатие кнопки напишите следующую процедуру
Private Sub НовыйТип_Click()
Dim dbs As Database, rst As Recordset
Set dbs = CurrentDb
Set rst = dbs.OpenRecordset("Типы", dbOpenDynaset)
With rst
.AddNew
![Тип] = "Йогурты"
.Update
End With
dbs.Close
End Sub
Откройте форму и проверьте работу кнопки. Просмотрев таблицу Типы,
убедитесь , что запись добавлена.
В форму добавьте поле для ввода типа товара с именем Тип, проверьте,
если поле КодТипа таблицы Типы не является счетчиком , то нужно будет ввести еще одно поле в форму НовыйТип для ввода значений поля КодТипа
В процедуре исправьте строку ![Тип] = "Йогурты" на ![Тип] = Me![Тип].
Проверьте работу формы.
Рис.6.1 Форма для добавления нового типа.
Создать процедуру для удаления записи из таблицы
В форме для ввода нового типа создайте кнопку Отмена добавления с процедурой следующего вида:
Private Sub Отмена_добавления _Click()
Dim dbs As Database, rst As Recordset
Set dbs = CurrentDb
Set rst = dbs.OpenRecordset("Типы", dbOpenDynaset)
With rst
.MoveLast
.Delete
End With
dbs.Close
End Sub
Создание процедуры поиска заказчика из Омска
Создайте стандартный модуль:
Function Поиск()
Dim rst As Recordset
Set rst = CurrentDb.OpenRecordset("Клиенты", dbOpenDynaset)
rst.FindFirst "Город = ‘Омск’"
If rst.NoMatch Then