Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
RASChET_SDEL_NOJ_ZARABOTNOJ_PLATY.docx
Скачиваний:
2
Добавлен:
01.05.2025
Размер:
199.01 Кб
Скачать

Ввод данных о движении товаров

Данные накладных по приходу и расходу товаров переносятся в базу данных Движение с помощью командной кнопки, размещенной на листе Документ. Основные этапы работ:

  1. Подготовка программного модуля на языке Visual Basic

  2. Отладка программного модуля

  3. Запуск программного модуля.

Создание программного модуля

  1. Выполнить команду Разработчик, Visual Basic

  2. Выполнить команду Insert, Module.

  3. Текст программного модуля:

' Обязательное объявление всех переменных, используемых в модуле

Option Explicit

' Пользовательский тип данных для добавления данных документа в базу данных

‘ Объявление пользовательского типа данных – shet

' Объявление переменных различных типов: String – текст,

‘Integer - целое, Variant - произвольное, Date – дата, Long - число

Type shet

Товар As String

Наименование As String

Едизм As String

Цена As Long

Количество As Long

End Type

Dim sh() As shet

Dim nr As Integer

Dim nc As Integer

Dim i As Integer

Dim str1 As Variant

Dim str As Date

Dim str2 As Variant

4. Выполнить команду меню Insert, Procedure, указать имя процедуры Накладная_в_БД

5. Текст программного модуля:

' начало процедуры переноса данных документа в базу данных

Sub Накладная_в_БД()

' выбор блока Накладная, находящегося на листе Документ

Application.Goto Reference:="Накладная"

'определение количества строк в блоке Накладная

nr = Selection.Rows.Count

' настройка размерности динамического массива

ReDim sh(nr)

' установка на начало области блока Накладная

ActiveCell.Offset(1, 0).Range("A1").Select

' цикл формирования элементов динамического массива

‘ на основании блока Накладная

For i = 1 To nr

sh(i).Товар = Range("Накладная").Cells(i, 1).Value

sh(i).Наименование = Range("Накладная").Cells(i, 2).Value

sh(i).Едизм = Range("Накладная").Cells(i, 3).Value

sh(i).Цена = Range("Накладная").Cells(i, 4).Value

sh(i).Количество = Range("Накладная").Cells(i, 5).Value

Next i

i = 1

' присвоение переменной str2 номера накладной

Range("C1").Select

str2 = ActiveCell.Value

' присвоение переменной str даты выписки накладной

Range("F1").Select

str = ActiveCell.Value

' присвоение переменной str1 названия организации

Range("C3").Select

str1 = ActiveCell.Value

' выбор блока База_данных

Application.Goto Reference:="База_данных"

' установка на ячейку - А2

ActiveCell.Offset(1, 0).Range("A1").Select

' вставка новой записи в базу данных

Selection.EntireRow.Insert

' организация цикла добавления новой строки в блок База_данных

‘заполнение ячеек строки данными динамического массива

‘счетчик цикла равен числу строк

‘табличной части документа Накладная

For i = 1 To nr

Cells(i + 1, 1).Value = str

Cells(i + 1, 2).Value = sh(i).Товар

Cells(i + 1, 3).Value = sh(i).Наименование

Cells(i + 1, 4).Value = sh(i).Едизм

Cells(i + 1, 5).Value = sh(i).Цена

Cells(i + 1, 7).Value = str2

' проверка вида документа для заполнения ячеек и вычисление

‘стоимости поступивших и стоимости отгруженных товаров

If Range("Вид_движения").Value = 1 Then _

Cells(i + 1, 8).Value = sh(i).Количество

If Range("Вид_движения").Value = 2 Then _

Cells(i + 1, 9).Value = sh(i).Количество

'формулы вычисления стоимости поставки/отгрузки товаров

Cells(i + 1, 10).FormulaR1C1 = "=RC[-2]*RC[-5]"

Cells(i + 1, 11).FormulaR1C1 = "=RC[-2]*RC[-6]"

‘ перемещение курсора на начало строки

Selection.End(xlToLeft).Select

ActiveCell.Offset(1, 0).Range("A1").Select

‘ вставка пустой строки

Selection.EntireRow.Insert

‘ повторение цикла

Next i

' удаление лишней пустой строки в блоке Движение

Selection.EntireRow.Delete

' конец прцедуры

End Sub

Отладка программного модуля

  1. Заполнить лист Документ первичными данными.

  2. Перейти на лист программного модуля и выполнить запуск макроса клавишей F5.

  3. Перейти на лист Движение и проверить правильность формирования записей списка.

  4. Перейти на лист Итоги и проверить изменение остатков товаров.

  5. Перейти на лист Расчеты и проверить изменение итоговых показателей.

6. Если обработка выполняется корректно, перейти на лист Движение, удалить введенные строки, оставив первую вспомогательную строку блока База_данных, проверить его границы (блок База_данных должен содержать строку за головков столбцов и хотя бы одну строку).

Запуск программы

Для запуска программного модуля использовать использование командной кнопки, которая размещается в форме документа Накладная:

  1. Снять защиту с листа Документ, разместить кнопку запуска модуля Накладная_в_БД:

  • Выполнить команду Разработчик, Элементы управления, Вставить.

  • Выбрать кнопку и назначить ей макрос – Накладная_в_БД.

  • Изменить название кнопки – Запись документа.

2. Защитить лист Документ.

3. Заполнить документ и нажать кнопку для переноса данных в базу данных Движение.

4. Перейти в базу данных, проверить наличие новых данных и сохранность определения блока База_данных.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]