Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь FAQ Написать работу КАТЕГОРИИ: ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву
Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
приложение Исходный текст программы
МИНИСТЕРСТВО ОБРАЗОВАНИЯ РФ ЧОУ СПО КОЛЛЕДЖ ПРАВА И ЭКОНОМИКИ
ОТЧЕТ по программированию на VBA Тема: «Стройбаза»
Выполнил: студент гр. П-340 М.А.Е Проверил: Кафтанникова М.Л.
Челябинск‑2013 ОГЛАВЛЕНИЕ введение. 2 1. ПРОЕКТИРОВАНИЕ. 3 1.1 Разработка БД.. 3 1.2 Разработка алгоритма. 5 2. РУКОВОДСТВА ПОЛЬЗОВАТЕЛЯ.. 7 Заключение. 11 Литература.. 12 приложение. Исходный текст программы.. 13
введение Использование программы MS Excel для работы с базой данных обусловлена возможностью хранения информации в различных таблицах, сортировки и фильтрации данных по различным признакам, а так же обработки данных с помощью процедур языка программирование VBA. Цель данной работы: создание программы, для создания, хранения, редактирования базы данных по стройматериалам, в которой можно добавлять категории материалов, сами товары, а также с помощью пользовательских форм осуществлять движение товара на складе. 1. ПРОЕКТИРОВАНИЕ № Предметная область Таблицы базы данных Запросы Интерфейсный элемент Обработка 1. Склад стройматериалов 2. Категории Категории 1. Список товаров данной категории 2. Поиск товара 1.Форма1 2.Форма2 3.Форма3 1. Поиск товара по данной категории 2. Сортировка по категории товара и по идентификатору товара
3. Товары Товары 4. Движение товара на складе Приход/Расход 1.Добавление нового товара 2. Приход-выдача имеющегося на складе товара 1.Форма2 2.Форма3 1.Добавление нового товара 2. Приход-выдача имеющегося на складе товара
1.1 Разработка БД На складе стройматериалов товар сгруппирован по категориям. Поэтому необходимо создать таблицу «Категория», в которой будем хранить наименование категории и идентификатор категории. Соответствующая таблица представлена на рисунке 1. Информация о товаре данной категории содержится в таблице «Товары»: название товара; категория; код товара; производитель; цена и количество на складе. Соответствующая таблица представлена на рисунке 2. Движение товара на складе отображается в таблице «Приход/расход» (рис. 3).
Рис. 1. Таблица «Категория товара»
Рис. 2. Таблица «Товары»
Рис. 3. Таблица «Приход/расход»
1.2 Разработка алгоритма При работе с товаром на складе необходимо принимать товар, находить его в базе данных, а при отсутствии – добавлять новый товар в таблицу. По времени быстрее находить товар, сгруппированный по категории. Поэтому, на пользовательской форме расположим поле со списком по категориям (ComboBox1), ниже разместим поле со списком по товарам (ComboBox2). При изменении пользователем категории в ComboBox1, ComboBox2 заполняется списком товара выбранной категории. При выборе товара вся информация о данном товаре выводится на форму. Для прихода и выдачи товара создадим отдельные формы, представленные на рисунках 4 и 5.
Рис. 4. Пользовательская форма «Приход товара»
Рис. 5. . Пользовательская форма «Выдача товара со склада» Если необходимо ввести новый товар, то пользователь выбирает категорию товара и в названии товара находит строчку «Новый товар». Тогда загружается пользовательская форма, изображенная на рисунке 6.
Рис. 6. Пользовательская форма «Добавить товар» В Label5 заносится выбранная пользователем категория товара. Пользователь вводит название, количество, цену и производителя товара. После нажатия кнопки добавить соответствующий товар будет занесен в таблицу «Товары». Если пользователь ошибочно выбрал добавление товара, то он может закрыть форму, используя кнопку «Закрыть». На отдельном листе разместим кнопки меню. Исходный код программы приведен в приложении. 2. РУКОВОДСТВА ПОЛЬЗОВАТЕЛЯ Для работы программы необходимо открыть файл «База данных1» в приложении Excel. На главной странице располагается меню:
При нажатии копки «Поступление товара» открывается диалоговое окно «Приход товара»:
Для выбора товара по названию необходимо сначала выбрать категорию товара:
Можно добавлять товар вводя соответствующие значения в поле «Поступило на склад». При нажатии на кнопку «Добавить» количество товара на складе увеличится и информация в данном окне изменится, как показано на рисунке ниже. Чтобы закрыть данное окно необходимо нажать кнопку «Закрыть».
Для выдачи товара надо ввести число в поле «Выдать со склада» и нажать кнопку «Выдать». Если попробовать выдать количество несуществующего товара, то на экране появится сообщение об ощибке:
В полях ввода чисел выполнятся контроль ввода. Заключение При работе над проектом были решены следующие задачи: 1) рассмотрена структура движения товара на складе стройматериалов; 2) разработана база данных, содержащая три таблицы: «Категории», «Товары», «Приход/расход»; 3) разработаны пользовательские формы (интерфейс программы); 4) создана программа, позволяющая осуществлять ввод данных о движении товара на складе. Литература 1. С. Роман. Использование макросов в Excel, Спб: «Питер» ‑ 2004 – 507 с. 2. Глушаков, С.В.; Сурядный, А.С. Microsoft Excel 2007. Краткий курс; АСТ, АСТ Москва, Харвест, ‑ 2008. ‑ 352 c. 3. Якушева, Н.М. Visual Basic для студентов; М.: Радио и связь, ‑ 2001 – 232 c. ‘UserForm1 Private Sub ComboBox1_Change() ComboBox2.Clear Nbegin = -1 TextEdit1.Caption = "0" TextEdit2.Caption = "" TextEdit3.Caption = "0" TextBox1.Enabled = False ID_cat = ComboBox1.ListIndex i = 2 While Worksheets("Товар").Cells(i, 2) <> ID_cat And Worksheets("Товар").Cells(i, 2) <> "" i = i + 1 Wend If Worksheets("Товар").Cells(i, 2) = "" Then ComboBox2.AddItem "Новый товар" Exit Sub End If Nbegin = i While Worksheets("Товар").Cells(i, 2) = ID_cat s = Worksheets("Товар").Cells(i, 1) If s <> "" Then Nend = i - 1 ComboBox2.AddItem s Else ComboBox2.AddItem "Новый товар" Exit Sub End If i = i + 1 Wend Nend = i - 1
End Sub
Private Sub ComboBox2_Change() If Nbegin = -1 And ComboBox2.Text <> "Новый товар" Then TextEdit1.Caption = "0" TextEdit2.Caption = "" TextEdit3.Caption = "0" TextBox1.Enabled = False Exit Sub End If If ComboBox2.Text = "Новый товар" Then kod_tovara = ComboBox1.ListIndex * 10000 + ComboBox2.ListIndex + 1 UserForm3.Show UserForm1.Hide Exit Sub End If ID_tovar = ComboBox2.ListIndex Nstr = Nbegin + ID_tovar TextEdit1.Caption = Worksheets("Товар").Cells(Nstr, 6) ' Кол-во на складе TextEdit2.Caption = Worksheets("Товар").Cells(Nstr, 4) ' Производитель TextEdit3.Caption = Worksheets("Товар").Cells(Nstr, 5) ' Цена TextBox1.Enabled = True End Sub
Private Sub CommandButton1_Click() If Len(TextBox1.Text) > 0 Then x = Worksheets("Товар").Cells(Nstr, 6) ' Кол-во на складе Worksheets("Товар").Cells(Nstr, 6) = x + TextBox1.Value TextEdit1.Caption = Worksheets("Товар").Cells(Nstr, 6) End If
End Sub
Private Sub CommandButton2_Click() UserForm1.Hide End Sub
Private Sub TextBox1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger) If InStr("0123456789", Chr(KeyAscii)) = 0 Then KeyAscii = 0 End Sub
Private Sub UserForm_Initialize()
'Worksheets("Категории").Activate For i = 2 To 100 s = Worksheets("Категории").Cells(i, 1) If s <> "" Then ComboBox1.AddItem s Else Exit Sub End If
Next i End Sub
‘UserForm2 Private Sub ComboBox1_Change() ComboBox2.Clear Nbegin = -1 TextEdit1.Caption = "0" TextEdit2.Caption = "" TextEdit3.Caption = "0" TextBox1.Enabled = False ID_cat = ComboBox1.ListIndex i = 2 While Worksheets("Товар").Cells(i, 2) <> ID_cat And Worksheets("Товар").Cells(i, 2) <> "" i = i + 1 Wend If Worksheets("Товар").Cells(i, 2) = "" Then
Exit Sub End If Nbegin = i While Worksheets("Товар").Cells(i, 2) = ID_cat s = Worksheets("Товар").Cells(i, 1) If s <> "" Then Nend = i - 1 ComboBox2.AddItem s Else ComboBox2.AddItem "Новый товар" Exit Sub End If i = i + 1 Wend Nend = i - 1
End Sub
Private Sub ComboBox2_Change() If Nbegin = -1 Then TextEdit1.Caption = "0" TextEdit2.Caption = "" TextEdit3.Caption = "0" TextBox1.Enabled = False Exit Sub End If ID_tovar = ComboBox2.ListIndex Nstr = Nbegin + ID_tovar TextEdit1.Caption = Worksheets("Товар").Cells(Nstr, 6) ' Кол-во на складе TextEdit2.Caption = Worksheets("Товар").Cells(Nstr, 4) ' Производитель TextEdit3.Caption = Worksheets("Товар").Cells(Nstr, 5) ' Цена TextBox1.Enabled = True End Sub
Private Sub CommandButton1_Click() If Len(TextBox1.Text) > 0 Then x = Worksheets("Товар").Cells(Nstr, 6) ' Кол-во на складе If x < CInt(TextBox1.Value) Then MsgBox "Кол-во на складе меньше чем вы хотите выдать" Exit Sub End If Worksheets("Товар").Cells(Nstr, 6) = x - TextBox1.Value TextEdit1.Caption = Worksheets("Товар").Cells(Nstr, 6) End If
End Sub
Private Sub CommandButton2_Click() UserForm2.Hide End Sub
Private Sub TextBox1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger) If InStr("0123456789", Chr(KeyAscii)) = 0 Then KeyAscii = 0 End Sub
Private Sub UserForm_Initialize()
'Worksheets("Категории").Activate For i = 2 To 100 s = Worksheets("Категории").Cells(i, 1) If s <> "" Then ComboBox1.AddItem s Else Exit Sub End If
Next i End Sub
‘UserForm3 Private Sub CommandButton1_Click() If Len(TextBox1) > 0 Then Countstr = Countstr + 1 Worksheets("Товар").Cells(Countstr, 1) = TextBox1.Text Worksheets("Товар").Cells(Countstr, 6) = TextBox2.Text Worksheets("Товар").Cells(Countstr, 5) = TextBox3.Text Worksheets("Товар").Cells(Countstr, 4) = TextBox4.Text Worksheets("Товар").Cells(Countstr, 2) = UserForm1.ComboBox1.ListIndex Worksheets("Товар").Cells(Countstr, 3) = kod_tovara
sort_tovara End If UserForm3.Hide End Sub
Private Sub CommandButton2_Click() UserForm3.Hide End Sub
Private Sub UserForm_Activate() countstring Label5.Caption = UserForm1.ComboBox1.Text End Sub
|
||
|
Последнее изменение этой страницы: 2024-06-17; просмотров: 41; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 216.73.217.21 (0.009 с.) |