Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лаба_VBA Access 2010.docx
Скачиваний:
7
Добавлен:
09.11.2019
Размер:
45.12 Кб
Скачать

Содержание лабораторной работы

Решается задача обработки поступления товаров на склад. База данных должна содержать две таблицы. Входная информация для решения задачи содержится в таблице «Наличие», а выходная – в таблице «Накладные». При решении этой задачи должна корректироваться запись входной таблицы "Наличие" и добавляться новая запись в выходную таблицу "Накладные".

Справочная информация о товарах, хранящихся на складе, имеется в таблице “Наличие, содержащей следующие данные:

  • Код товара

  • Наименование товара

  • Остаток

  • Дата

  • Единицы измерения

В форму осуществляется ввод информации о каждой поступившей на склад партии товаров:

  • номер накладной

  • код товара

  • дата поступления

  • количество

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

  1. Произвести корректировку найденной записи в таблице "Наличие", заключающуюся в добавлении к значению поля "Остаток" введенного значения "количество" и в замещении значения поля "Дата" на введенное значение "дата поступления"

  2. Добавить новую запись в таблицу "Накладные".

Выходная таблица имеет следующий состав полей:

  • Номер накладной

  • Код товара

  • Дата поступления

  • Количество

Выполнение лабораторной работы

  1. Загрузите ACCESS.

  2. Создайте таблицу «Наличие» и введите данные по пяти товарам.

  3. Создайте таблицу «Накладные».

  4. Создайте форму следующего вида:

Задайте имена кнопкам соответственно: ОК и Выход, задайте имена полям соответственно: Номер накладной - nn, Код товара -kt, Дата поступления - dp, Количество -kp.

  1. В окне свойств кнопки Ok на вкладке События выберите значение Процедура обработки события и здесь же нажмите кнопку (с тремя точками).

  2. Введите текст процедуры в модуле формы «Поступление»:

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

  1. В секцию General введите следующие описания:

Option Compare Database

Option Explicit

Dim n As String

Dim t As String

Dim d As Date

Dim k As Single

  1. Действуя по аналогии с п.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

  1. В окне 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

  1. Выполните созданное приложение, вводя данные в поля формы "Поступление" и нажимая после каждого заполнения полей кнопку Ok.