приложение Исходный текст программы 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

приложение Исходный текст программы

 

МИНИСТЕРСТВО ОБРАЗОВАНИЯ РФ

ЧОУ СПО КОЛЛЕДЖ ПРАВА И ЭКОНОМИКИ

 

 

ОТЧЕТ

по программированию на 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 с.)