Содержание лабораторной работы
Решается задача обработки поступления товаров на склад. База данных должна содержать две таблицы. Входная информация для решения задачи содержится в таблице «Наличие», а выходная – в таблице «Накладные». При решении этой задачи должна корректироваться запись входной таблицы "Наличие" и добавляться новая запись в выходную таблицу "Накладные".
Справочная информация о товарах, хранящихся на складе, имеется в таблице “Наличие”, содержащей следующие данные:
Код товара
Наименование товара
Остаток
Дата
Единицы измерения
В форму осуществляется ввод информации о каждой поступившей на склад партии товаров:
номер накладной
код товара
дата поступления
количество
В таблице "Наличие" осуществляется поиск записи с введенным кодом детали. Если искомая запись найдена, то программа должна предусмотреть выполнение следующих операций:
Произвести корректировку найденной записи в таблице "Наличие", заключающуюся в добавлении к значению поля "Остаток" введенного значения "количество" и в замещении значения поля "Дата" на введенное значение "дата поступления"
Добавить новую запись в таблицу "Накладные".
Выходная таблица имеет следующий состав полей:
Номер накладной
Код товара
Дата поступления
Количество
Выполнение лабораторной работы
Загрузите ACCESS.
Создайте таблицу «Наличие» и введите данные по пяти товарам.
Создайте таблицу «Накладные».
Создайте форму следующего вида:
Задайте имена кнопкам соответственно: ОК и Выход, задайте имена полям соответственно: Номер накладной - nn, Код товара -kt, Дата поступления - dp, Количество -kp.
В окне свойств кнопки Ok на вкладке События выберите значение Процедура обработки события и здесь же нажмите кнопку (с тремя точками).
Введите текст процедуры в модуле формы «Поступление»:
Private Sub Ok_Click()
On Error GoTo Err_Ok_Click
n = nn.Value
t = kt.Value
d = dp.Value
k = kp.Value
Obrabotka
nn.Value = Null
kt.Value = Null
dp.Value = Null
kp.Value = Null
Exit_Ok_Click:
Exit Sub
Err_Ok_Click:
MsgBox Err.Description
Resume Exit_Ok_Click
End Sub
В секцию General введите следующие описания:
Option Compare Database
Option Explicit
Dim n As String
Dim t As String
Dim d As Date
Dim k As Single
Действуя по аналогии с п.3,4 введите текст процедуры обработки события Click для кнопки Выход:
Private Sub Выход_Click()
On Error GoTo Err_Выход_Click
DoCmd.Close
Exit_Выход_Click:
Exit Sub
Err_Выход_Click:
MsgBox Err.Description
Resume Exit_Выход_Click
End Sub
В окне VBA выполните команду Insert\Procedure и затем в окне Add procedure введите имя Obrabotka и выберите тип function.
Function Obrabotka ()
Dim dbs As Database
Dim rst As Recordset
Dim nst As Recordset
Set dbs = CurrentDb
Set rst = dbs.OpenRecordset("Наличие")
Set nst = dbs.OpenRecordset("Накладные")
rst.MoveFirst
Do Until rst.EOF
If t = rst![Код товара] Then
rst.Edit
rst![Остаток] = rst![Остаток] + k
rst![Дата] = d
rst.Update
nst.AddNew
nst![Номер накладной] = n
nst![Код товара] = t
nst![Дата поступления] = d
nst![Количество] = k
nst.Update
End If
rst.MoveNext
Loop
End Function
Выполните созданное приложение, вводя данные в поля формы "Поступление" и нажимая после каждого заполнения полей кнопку Ok.