Создание и обработка баз данных средствами языка Visual Basic 60

Министерство образования Республики Таджикистан

Таджикский Технический Университет

им. ак. М.С. Осими

кафедра АСОИиУ



















Курсовая работа

на тему:

«Создание и обработка баз данных средствами языка Visual Basic 6.0»

























Душанбе 2009


Введение



		Описание базы данных

		Макет исходных данных

		Создание базы данных

		Чтение созданной базы данных

		Обработка созданной базы данных

	Вывод Справки 1

	Алгоритм запроса по таблице VIP

	Экранная форма (интерфейс) и ее описание

	Программа Запроса по таблице VIP

	Экранная форма с выходными результатами

	Вывод Справки 2

	Алгоритм Запроса по таблице PROD

	Экранная форма (интерфейс) и ее описание

	Программа запроса по Таблице PROD

	Экранная форма с выходными результатами

	Вывод Справки 3

	Алгоритм совместного запроса по таблицам VIP и PROD

	Экранная форма (интерфейс) и ее описание

	Программа совместного запроса по таблицам VIP и PROD

	Экранная форма с выходными результатами

	Выполнение формирования Итогового документа

	Алгоритм формирования Итогового документа

	Экранная форма (интерфейс) и её описание

	Программа формирования Итогового документа

	Экранная форма с выходными результатами

		Создание пользовательского меню

		Заключение

		Список использованной литературы

	
Введение



Данный курсовой проект направлен на изучение основ системы программирования Visual Basic 6.0. Данная система остаётся одной из самых популярных в мире. Она может решать целый комплекс задач: от создания простых программ, предназначенных для решения несложных вычислительных задач, до разработки важнейших реляционных систем управления базами данных. При этом Visual Basic остаётся достаточно простым в освоении и в то же время одним из мощных современных языков программирования.

Для чего изучение данного языка программирования стоит в нашей университетской программе? Изучение данного предмета, несомненно, связано с изучением одной из точных наук. Программирование, подобно математике, помогает чётко развить общее мышление для специалистов нашего факультета, учит решать задачи разного уровня, основываясь на определённых знаниях, способствует целеустремлённости и сосредоточенности, объективности и точности, логичности и последовательности в планировании и выполнение действий, умению правильно ставить задачу и находить наиболее оптимальные пути её решения. Не менее важно уметь находить ошибки в программах, проанализировать её.

Курсовая работа в основном направлена на получение общих, элементарных знаний в области программирования. Здесь затрагиваются все основные вопросы, необходимые для наиболее полного представления о языке Visual Basic. Курсовой проект устроен таким образом, что каждая задача в нём рассматривается подробным образом: для каждой задачи рассматривается алгоритм, программа, пример выполнения. Это помогает очень быстро решить задачу, разобраться в ней и убедиться в правильности её выполнения.

Хотя миллионы программистов во всём мире используют язык Visual Basic для сложных и больших проектов, он был разработан в первую очередь для обучения учащихся практике современного программирования. И по сей день язык программирования Visual Basic считается наиболее желательным для тех. кто совершает свои первые шаги в этой области.






1. Описание базы данных



Структура таблиц:



Таблица VIP (выпуск продукции в рублях)

Шифр продукции

Номер цеха

Плановый выпуск по кварталам

Фактический выпуск по кварталам





1й кв

2й кв

3й кв

4й кв

1й кв

2й кв

3й кв

4й кв



В каждом цехе может выпускаться несколько видов продукции. Каждый вид продукции производится только в одном цехе. На предприятии имеются цеха с номером от 1 до 5.



Таблица PROD (продукция)

Шифр продукции

Название продукции

Наличие сертификата качества



Состав меню:

1. Распечатка исходных таблиц

2. Формирование и выдача справок:



Справка 1. Виды продукции, фактический выпуск которых монотонно возрастает по кварталам. Записи справки упорядочить по возрастанию номеров цехов

Шифр продукции

Наименование цеха

Фактический выпуск по кварталам





1й кв

2й кв.

3й кв.

4й кв.



Справка 2. Виды продукции, имеющие сертификат качества. Названия которых начинается с букв от «Г» до «Т».

Шифр продукции

Наименование продукции

Наличие сертификата качества




Справка 3. Виды продукции с сертификатом качества, план по которым не выполняется в 1ом и 4ом кварталах и которые производятся в цехах с номерами 3 и 5.



Шифр продукции

Наименование продукции

Сертификат качества

Номер цеха

Фактический выпуск по кварталам









1й кв

2й кв.

3й кв.

4й кв.



3. Создание документа. Сведения о наиболее ритмичном производстве сертифицированной продукции в 1, 2 и 3 цехах



Шифр продукции

Наименование продукции

Сертификат Качества

Номер цеха

Показатель ритмичности



Показатель ритмичности производства продукции определяется по формуле:



Рос=|F1P1|+|F2P2|+|F3P3|+|F4P4|



где – F1, F2, F3, F4 – фактический поквартальный выпуск продукции

P1, P2, P3, P4 – плановый поквартальный выпуск продукции.

Лучшая ритмичность достигается при минимальном Рос.






2. Макет исходных данных



PROD

Шифр

Название

Наличие сертификата

31

Антиугонная система

Да

32

Болт

Нет

33

Гайка

Да

34

Кузов

Да

35

Дверная ручка

Нет

36

Выключатель

Да

37

Прикуриватель

Да

38

Нипель

Да

39

Аккумулятор

Да

40

Поршень

Нет

41

Прокладка

Нет

42

Инжектор

Да

43

Свечи

Да

44

Руль

Нет



VIP

Шифр

Номер

цеха

план

выпуска

1й кв.

план

выпуска

2й кв.

план

выпуска

3й кв.

план

выпуска

4й кв.

Фактический выпуск

1й кв.

Фактический выпуск

2й кв.

Фактический выпуск

3й кв.

Фактический выпуск

4й кв.

31

5

600

610

620

630

580

600

610

620

32

3

4000

4500

4600

4700

4000

4000

4200

4300

33

3

300

350

400

450

250

300

350

400

34

4

1200

1300

1500

1600

1200

1100

1000

1200

35

2

1400

1500

1600

1700

1000

1200

1400

1200

36

3

1500

1500

1500

1600

1500

1500

1600

1700

37

5

1000

1200

1300

1400

1000

1200

1400

1500

38

1

500

600

700

800

900

1000

1100

1200

39

2

950

1000

1000

1000

950

1000

1200

1300

40

5

1300

560

500

340

1300

560

500

340

41

3

2400

2400

2400

2400

2400

2400

2400

2400

42

1

500

500

500

500

500

500

500

500

43

2

2400

2500

2600

2700

2400

2500

2600

2700

44

5

640

650

650

650

640

650

650

650





3. Создание базы данных



Среда Visual Basic 6.0 предоставляет пользователю возможность создавать Базы данных в формате системы Microsoft Access, которую относят к категории районных СУБД.

Для создания Базы данных используется специальная надстройка Visual Basic-Manager (Визуальный менеджер данных), которая использует ядро системы Access, поддерживающееся в VB.

Для создания Базы данных понадобится окно формирования новой таблицы данных (Table Structure). Для этого в Главном меню Главной панели проекта Visual Basic 6.0 выберем опцию Add-lns (Добавления), а в ней команду Visual Data Manager (Визуальный менеджер данных). Раскрывается панель приложения VisData.

Выбираем меню File панели приложения VisData и команду New. В раскрывшемся окне выбираем в качестве типа создаваемой базы данных Microsoft Access, а во втором подменю Version 7.0 MDB. Раскроется окно создания нового файла базы данных Microsoft Access.

В окне Имя файла укажем имя каталога, в котором будет храниться создаваемая база (иначе, имя созданной базы, в нашем случае – Студенты). В любом месте окна Database Window необходимо щёлкнуть правой клавишей мыши. В появившемся меню выберем команду New Table. Раскроется панель Table Structure – структура таблицы. Приступаем к проектированию структуры таблицы VIP.

Проектирование структуры таблицы VIP

1 В поле Table Name вводится имя проектируемой таблицы – VIP

2 Кнопкой Add Field на панели Table Structure раскрывается диалоговое окно Add Field

3. С помощью диалогового окна Add Field осуществляется поочередный ввод характеристик всех полей создаваемой таблицы – вводятся имена полей, их типы и размеры. После ввода сведений о каждом поле создаваемой таблицы щёлкается кнопка ОК. размещённая на окне Add Field.

4. по окончании ввода всей информации последнего поля создаваемой таблицы щёлкается кнопка Close диалогового окна Add Field – окно закрывается.

5. Восстанавливается панель Table Structure со списком полей создаваемой таблицы.

6. для завершения процесса проектирования текущей таблицы создаваемой база данных щёлкается кнопка Build the Table (Сформировать таблицу) на панели Table Structure, что приводит к закрытию окна и возврату к панели приложения с окном Database Window, в котором представлена создаваемая база данных, пока включающая только одну таблицу VIP.

Вторая таблица PROD создается аналогично таблице VIP

Создана база данных Продукция, включающая две таблицы VIP и PROD.



Диалоговое окно Add Filed, предназначенное для создания полей таблицы






Панель Table Structure со списком полей в окне Field List создаваемой таблицы VIP





Заполнение созданных таблиц БД исходными данными



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

Вход в среду проектирования, выбрав пиктограмму Standard EXE.

В Главном меню Главной панели проекта Visual Basic 6.0 выберем опцию Add-Ins (Добавления), а в ней команду Visual Data Manager (Визуальный менеджер данных). Раскроется панель приложения VisData.

Выполняется последовательность команд:

File – Open Data Base – Microsoft Access

Открыть базу данных клавишей Открыть, предварительно выделив мышкой имя – раскрывается панель приложения VisData со структурой базы данных, включающей в себя таблицы VIP и PROD.

Щелчком правой клавиши мыши по таблице VIP или PROD раскрывается контекстное меню выбора опций модификаций структур таблиц базы данных. Вначале заполним таблицу VIP.

Выбрав опцию Open, раскроем окно модификаций таблиц базы данных.







Выбрав опцию Add модем осуществлять ввод записей – конкретных значений полей таблицы.

Ввод записей в создаваемую Базу Данных завершается нажатием кнопки Close.

Аналогичные действия выполняются для заполнения таблицы Spec.

Создана база данных, содержащая 2 таблицы, заполненных конкретными записями.






4. Чтение созданной Базы Данных



4.1 Экранная форма и ее описание



Для компоновки экранной формы были использованы следующие элементы управления окна Toolbox:

– Элементы управления Data с именами Data1 и Data2, обеспечивающий доступ к Базе Данных;

– Не входящий в базовый набор элемент управления MsFlexGrid (гибкая сетка) с именами Grid1, Grid2, Grid3, служащая для непосредственного отображения записей таблиц VIP, PROD и справок.

– Командная кнопка Command Button с именами Command1, Command2, Command3, Command4, Command5

Свойства элемента Data1:

Caption = Таблица VIP

Name = Data1

Connect = Access

RecordSource = VIP

RecordSetType=0 (из таблицы)

DataBaseName=C:\base.mdb

Caption = Таблица PROD

Name = Data2

Connect = Access

RecordSource = PROD

RecordSetType=0 (из таблицы)

DataBaseName=C:\base.mdb

Свойства элемента MSFlexGrid:

Name = Grid1

Data Source = Data1

Fixed Cols = 0

Fixed Rows = 1

Name = Grid2

Data Source = Data2

Fixed Cols = 0

Fixed Rows = 1

Name = Grid3

Data Source =

Fixed Cols = 0

Fixed Rows = 1



4.2 Экранная форма в исходном состоянии










5. Обработка Созданной Базы Данных



5.1 Выполнение запроса по таблице VIP



Справка 1: Виды продукции, фактический выпуск которых монотонно возрастает по кварталам. Записи справки упорядочить по возрастанию номеров цехов.



Макет справки 1.

Шифр продукции

Наименование цеха

Фактический выпуск по кварталам





1й кв

2й кв.

3й кв.

4й кв.















5.1.1 Алгоритм Запроса 1 (справки 1) по таблице VIP





1

Начало

Описание данных

Grid3.Visiable = True

Data1.Visible = False

Data2.Visiable = False

Data1.Recordset.MoveFirst

Grid3.Rows = 1: grid3.Cols = 6



grid3.TextMatrix(0, I) = Data1.Recordset.Fields(I).Name

Data1.Recordset.MoveFirst

Next I

For I = 6 to 9

grid3.TextMatrix(0, I-4) = Data1.Recordset.Fields(I).Name

Data1.Recordset.MoveFirst

Next I




1

For I = 1 to Data1.Recordset.RecordCount

Data1.Recordset.Fields(6).Value < 
Data1.Recordset.Fields(7).Value And
Data1.Recordset.Fields(7).Value < Data1.Recordset.Fields(8).Value and
Data1.Recordset.Fields(8).Value < Data1.Recordset.Fields(9).Value

Grid3.Rows = Grid3.Rows+1: Kz = grid3.rows - 1

For L = 0 to 1

grid3.TextMatrix(Kz, L) = Data1.Recordset.Fields(L).Value

Next L

For L = 6 to 9

grid3.TextMatrix(Kz, L-4) = Data1.Recordset.Fields(L).Value

Next L

End If

Data1.Recordset.MoveNext

Next I

Grid3.Col = 1

Grid3.Sort = 1

End Sub



5.1.2 Экранная форма (интерфейс) и её описание

Для компоновки Экранной формы были использованы следующие элементы управления окна Toolbox:

Элемент управления Data с именем Data1, обеспечивающий доступ к базе данных

Элемент управления Data с именем Data2, обеспечивающий доступ к базе данных

Не входящий в базовый набор элемент управления MSFlexGrid с именем Grid1 и Grid2, служащие для непросредственного отображения записей таблицы VIP и PROD;

Командные кнопки Command Button с именами Command1, Command2, Command 3, Command 4, Command5 предназначенные для вывода справок и выхода из программы.

Свойства элемента Data1:

Caption = Таблица VIP

Name = Data1

Connect Access

RecordSource =0

DataBaseName = C:\base.mdb

Свойства элемента Data2:

Caption = Таблица PROD

Name = Data2

Connect = Access

RecordSource = Spec

RecordSetType = 0

DataBaseName = C:\base.mdb

Свойства элементов MSFlexGrid:

Name = Grid1

Fixed Cols = 0

Fixed Rows = 1

DataSource = Data1

Name = Grid2

Fixed Cols = 0

Fixed Rows = 1

DataSource = Data2

Name = Grid3

Fixed Cols = 0

Fixed Rows = 1

Visible = False



Программа запроса по таблице VIP

Private Sub Command1_Click()

Dim I%, K%, Kz%, T%, H%, J%, Zeh%

Dim P As String

Dim Cn As String

grid3. Visible = True

Data1. Visible = False

Data2. Visible = False

Data1. Recordset. MoveFirst

grid3. Rows = 1: grid3. Cols = 6

For I = 0 To 1 'Дадим названия полей из таблицы БД полям в гибкой сетке

grid3. TextMatrix (0, I) = Data1. Recordset. Fields(I).Name

Data1. Recordset. MoveFirst

Next I

For I = 6 To 9

grid3. TextMatrix (0, I – 4) = Data1. Recordset. Fields(I).Name

Data1. Recordset. MoveFirst

Next I

For I = 1 To Data1. Recordset. RecordCount 'Отбор продуктов, факт. выпуск которых равномерно возрастал

If Data1. Recordset. Fields(6).Value < Data1. Recordset. Fields(7).Value And Data1. Recordset. Fields(7).Value < Data1. Recordset. Fields(8).Value And Data1. Recordset. Fields(8).Value < Data1. Recordset. Fields(9).Value Then

grid3. Rows = grid3. Rows + 1: Kz = grid3. Rows – 1

For L = 0 To 1

grid3. TextMatrix (Kz, L) = Data1. Recordset. Fields(L).Value

Next L

For L = 6 To 9

grid3. TextMatrix (Kz, L – 4) = Data1. Recordset. Fields(L).Value

Next L

End If

Data1. Recordset. MoveNext

Next I

grid3. Col = 1 'Выберем колонку для сортировки

grid3. Sort = 1 'Сортируем строчки по нисходящей

End Sub



Экранная форма в исходном состоянии






Экранная форма с выходными результатами







5.2 Выполнение Запроса 2 (справки 2) по таблице PROD



Справка 2. Виды продукции, имеющие сертификат качества. Названия которых начинается с букв от «Г» до «Т».



Шифр продукции

Наименование продукции

Наличие сертификата качества










Алгоритм Запроса 2 (справки2) по таблице PROD





4

Начало

Описание данных

P = "ГДЕЖЗИКЛМНОПРСТ"

grid3.Visible = True

Data1.Visible = False

Data2.Visible = False

Data2.Recordset.MoveFirst

grid3.Rows = 1: grid3.Cols = 3

grid3.TextMatrix(0, 0) = Data2.Recordset.Fields(0).Name

grid3.TextMatrix(0, 1) = Data2.Recordset.Fields(1).Name

grid3.TextMatrix(0, 2) = Data2.Recordset.Fields(2).Name

Data2.Recordset.MoveFirst

For I = 1 to Data2.Recordset.RecordCount

If Data2.Recordset.Fields(2).Value = "Да" And (InStr(P, Mid(Data2.Recordset.Fields(1).Value, 1, 1))) <> 0 Then

grid3.Rows = grid3.Rows + 1: Kz = grid3.Rows - 1

For L = 0 to 2

grid3.TextMatrix(Kz, L) = Data2.Recordset.Fields(L).Value

Next L

1

2

3





1

4

3

2

End If

Data2.RecordSet.MoveNext

Next I

End Sub


5.2.2 Экранная форма и ее описание



Для компоновки экранной формы были использованы следующие элементы управления окна Toolbox:

– Элементы управления Data с именами Data1 и Data2, обеспечивающий доступ к Базе Данных;

– Не входящий в базовый набор элемент управления MsFlexGrid (гибкая сетка) с именами Grid1, Grid2, Grid3, служащая для непосредственного отображения записей таблиц VIP, PROD и справок.

– Командная кнопка Command Button с именами Command1, Command2, Command3, Command4, Command5

Свойства элемента Data1:

Caption = Таблица VIP

Name = Data1

Connect = Access

RecordSource = VIP

RecordSetType=0 (из таблицы)

DataBaseName=C:\base.mdb

Caption = Таблица PROD

Name = Data2

Connect = Access

RecordSource = PROD

RecordSetType=0 (из таблицы)

DataBaseName=C:\base.mdb

Свойства элемента MSFlexGrid:

Name = Grid1

Data Source = Data1

Fixed Cols = 0

Fixed Rows = 1

Name = Grid2

Data Source = Data2

Fixed Cols = 0

Fixed Rows = 1

Name = Grid3

Data Source =

Fixed Cols = 0

Fixed Rows = 1



Экранная форма в исходном состоянии





Программа Запроса (справки 2) по таблице PROD



Private Sub Command2_Click()

Dim I%, K%, Kz%, L%

Dim P As String

P = «ГДЕЖЗИКЛМНОПРСТ»

grid3. Visible = True

Data1. Visible = False

Data2. Visible = False

Data2. Recordset. MoveFirst

grid3. Rows = 1: grid3. Cols = 3

grid3. TextMatrix (0, 0) = Data2. Recordset. Fields(0).Name

grid3. TextMatrix (0, 1) = Data2. Recordset. Fields(1).Name

grid3. TextMatrix (0, 2) = Data2. Recordset. Fields(2).Name

Data2. Recordset. MoveFirst

For I = 1 To Data2. Recordset. RecordCount

If Data2. Recordset. Fields(2).Value = «Да» And (InStr _
(P, Mid (Data2. Recordset. Fields(1).Value, 1, 1))) <> 0 Then

grid3. Rows = grid3. Rows + 1: Kz = grid3. Rows – 1

For L = 0 To 2

grid3. TextMatrix (Kz, L) = Data2. Recordset. Fields(L).Value

Next L

End If

Data2. Recordset. MoveNext

Next I

End Sub




5.2.4 Экранная форма с выходными результатами







Выполнение запроса по таблицам VIP и PROD



Справка 3. Виды продукции с сертификатом качества, план по которым не выполняется в 1ом и 4ом кварталах и которые производятся в цехах с номерами 3 и 5.

Шифр продукции

Наименование продукции

Сертификат качества

Номер цеха

Фактический выпуск по кварталам









1й кв

2й кв.

3й кв.

4й кв.




















Алгоритм выполнения запроса по таблицам VIP и PROD





1

Начало

Описание данных

Grid3.Visiable = True

Data1.Visible = False

Data2.Visiable = False

Data1.Recordset.MoveFirst

Data2.Recordset.MoveFirst



grid3.TextMatrix(0, I) = Data2.Recordset.Fields(I).Name

Next I

For I = 6 to 9

grid3.TextMatrix(0, I-2) = Data1.Recordset.Fields(I).Name

Data1.Recordset.MoveFirst

Next I

grid3.Rows = 1: grid3.Cols = 8

For I = 0 to 2

Grid3.Textmatrix(0,3) = Data1.Recordset.Fields(1).Name






1

For I = 1 to Data1.Recordset.RecordCount

Data2.Recordset.Fields(2).Value = "Да" And
 Data1.Recordset.Fields(6) < Data1.Recordset.Fields(2) And Data1.Recordset.Fields(9) < Data1.Recordset.Fields(5)

Grid3.Rows = Grid3.Rows+1: Kz = grid3.rows - 1

For L = 0 to 1

grid3.TextMatrix(Kz, L) = Data2.Recordset.Fields(L).Value

Next L

End If

Data1.Recordset.Fields(1) = "3" Or Data1.Recordset.Fields(1) = "5"

grid3.TextMatrix(Kz, 3) = Data2.Recordset.Fields(1).Value

For L = 6 to 9

grid3.TextMatrix(Kz, L-2) = Data2.Recordset.Fields(L).Value

Next L

End If

Data1.Recordset.MoveNext

Data1.Recordset.MoveNext

Next I

End Sub






Программа совместного запроса по таблицам VIP и PROD



Private Sub Command4_Click()

Dim I%, K%, Kz%, T%, H%, J%, Zeh%

grid3. Visible = True

Data1. Visible = False

Data2. Visible = False

Data1. Recordset. MoveFirst

Data2. Recordset. MoveFirst

grid3. Rows = 1: grid3. Cols = 8

For I = 0 To 2 'Дадим названия полей из таблицы БД полям в гибкой сетке

grid3. TextMatrix (0, I) = Data2. Recordset. Fields(I).Name

Next I

grid3. TextMatrix (0, 3) = Data1. Recordset. Fields(1).Name

For I = 6 To 9

grid3. TextMatrix (0, I – 2) = Data1. Recordset. Fields(I).Name

Data1. Recordset. MoveFirst

Next I

For I = 1 To Data1. Recordset. RecordCount 'Отбор сертиф. продуктов, план по которым не выполняется

'в 1 и 4 кварталах и производят которые в цехах 3 и 5.

If Data2. Recordset. Fields(2).Value = «Да» And Data1. Recordset. Fields(6) < Data1. Recordset. Fields(2) And Data1. Recordset. Fields(9) < Data1. Recordset. Fields(5) Then

If Data1. Recordset. Fields(1) = «3» Or Data1. Recordset. Fields(1) = «5» Then

grid3. Rows = grid3. Rows + 1: Kz = grid3. Rows – 1

For L = 0 To 2

grid3. TextMatrix (Kz, L) = Data2. Recordset. Fields(L).Value

Next L

grid3. TextMatrix (Kz, 3) = Data2. Recordset. Fields(1).Value

For L = 6 To 9

grid3. TextMatrix (Kz, L – 2) = Data1. Recordset. Fields(L).Value

Next L

End If

End If

Data1. Recordset. MoveNext

Data2. Recordset. MoveNext

Next I

End Sub



5.3.4 Экранная форма с выходными результатами








5.4 Выполнение формирования Итогового документа



Создание Документа:



Сведения j наиболее ритмичном производстве сертифицированной продукции в 1, 2 и 3 цехах

Шифр продукции

Наименование продукции

Сертификат Качества

Номер цеха

Показатель ритмичности













Показатель ритмичности производства продукции определяется по формуле:



Рос=|F1P1|+|F2P2|+|F3P3|+|F4P4|



где – F1, F2, F3, F4 – фактический поквартальный выпуск продукции

P1, P2, P3, P4 – плановый поквартальный выпуск продукции.

Лучшая ритмичность достигается при минимальном Рос.




Алгоритм формирования Итогового Документа





3

Начало

Описание данных

Grid3.Visiable = True

Data1.Visible = False

Data2.Visible = False

Data1.Recordset.MoveFirst

     Data2.Recordset.MoveFirst



grid3.TextMatrix(0, I) = Data2.Recordset.Fields(I).Name

Next I

For I = Data2.Recordset.RecordCount

grid3.Rows = 1: grid3.Cols = 5

For I = 0 to 2

Grid3.Textmatrix(0,3) = Data1.Recordset.Fields(1).Name

Grid3.Textmatrix(0,3) = “ROS”

Data2.Recordset.Fields(2).Value = "Да"

Data1.Recordset.Fields(1) = 1 Or 
Data1.Recordset.Fields(1) = 2 Or 
Data1.Recordset.Fields(1) = 3

For I = Data2.Recordset.RecordCount

For L = 0 To 2

grid3.TextMatrix(Kz, L) = Data2.Recordset.Fields(L).Value

Next L

2

1

3






3

2

1

grid3.TextMatrix(Kz, 3) = Data1.Recordset.Fields(1).Value

grid3.TextMatrix(Kz, 4) = Abs(Data1.Recordset.Fields(6) - Data1.Recordset.Fields(2)) + Abs(Data1.Recordset.Fields(7) - Data1.Recordset.Fields(3)) + Abs(Data1.Recordset.Fields(8) - Data1.Recordset.Fields(4)) + Abs(Data1.Recordset.Fields(9) - Data1.Recordset.Fields(5))

End If

End If

  Data1.Recordset.MoveNext

  Data2.Recordset.MoveNext

Next I

grid3.Col = 4

grid3.Sort = 1

End Sub



5.4.2 Экранная форма и ее описание

Для компоновки экранной формы были использованы следующие элементы управления окна Toolbox:

– Элементы управления Data с именами Data1 и Data2, обеспечивающий доступ к Базе Данных;

– Не входящий в базовый набор элемент управления MsFlexGrid (гибкая сетка) с именами Grid1, Grid2, Grid3, служащая для непосредственного отображения записей таблиц VIP, PROD и справок.

– Командная кнопка Command Button с именами Command1, Command2, Command3, Command4, Command5

Свойства элемента Data1:

Caption = Таблица VIP

Name = Data1

Connect = Access

RecordSource = VIP

RecordSetType=0 (из таблицы)

DataBaseName=C:\base.mdb

Caption = Таблица PROD

Name = Data2

Connect = Access

RecordSource = PROD

RecordSetType=0 (из таблицы)

DataBaseName=C:\base.mdb

Свойства элемента MSFlexGrid:

Name = Grid1

Data Source = Data1

Fixed Cols = 0

Fixed Rows = 1

Name = Grid2

Data Source = Data2

Fixed Cols = 0

Fixed Rows = 1

Name = Grid3

Data Source =

Fixed Cols = 0

Fixed Rows = 1



5.4.3 Программа формирования Итогового документа



Private Sub Command5_Click()

Dim I%, K%, Kz%, T%, H%, J%

grid3. Visible = True

Data1. Visible = False

Data2. Visible = False

Data1. Recordset. MoveFirst

Data2. Recordset. MoveFirst

grid3. Rows = 1: grid3. Cols = 5

For I = 0 To 2 'Дадим названия полей из таблицы БД полям в гибкой сетке

grid3. TextMatrix (0, I) = Data2. Recordset. Fields(I).Name

Next I

grid3. TextMatrix (0, 3) = Data1. Recordset. Fields(1).Name

grid3. TextMatrix (0, 4) = «ROS»

For I = 1 To Data2. Recordset. RecordCount

If Data2. Recordset. Fields(2).Value = «Да» Then

If Data1. Recordset. Fields(1) = 1 Or Data1. Recordset. Fields(1) = 2 Or Data1. Recordset. Fields(1) = 3 Then

grid3. Rows = grid3. Rows + 1: Kz = grid3. Rows – 1

For L = 0 To 2

grid3. TextMatrix (Kz, L) = Data2. Recordset. Fields(L).Value

Next L

grid3. TextMatrix (Kz, 3) = Data1. Recordset. Fields(1).Value

grid3. TextMatrix (Kz, 4) = Abs (Data1. Recordset. Fields(6) – Data1. Recordset. Fields(2)) + Abs (Data1. Recordset. Fields(7) – Data1. Recordset. Fields(3)) + Abs (Data1. Recordset. Fields(8) – Data1. Recordset. Fields(4)) + Abs (Data1. Recordset. Fields(9) – Data1. Recordset. Fields(5))

End If

End If

Data1. Recordset. MoveNext

Data2. Recordset. MoveNext

Next I

grid3. Col = 4 'Выберем колонку для сортировки

grid3. Sort = 1 'Сортируем строчки по нисходящей

End Sub


5.4.4 Экранная форма с выходными результатами










6. Создание пользовательского меню



Меню – один из способов диалога пользователя с информационной системой. Оно представляет собой список Пунктов, из которого следует выбрать необходимый.

В системе проектирование Visual Basic 6.0 создание Меню осуществляется с помощью Редактора меню Menu Editor.

Разработка Пользовательского меню

Создана БД из двух таблиц VIP и PROD.

Создается двухуровневое меню. Верхний уровень – это строка меню, которую называются Головным Меню. Каждый пункт головного меню может включать подменю из одного или нескольких пунктов.

Меню Проекта будет иметь следующих вид:





Выход

Справка

Документ

Справка 1

Справка 2

Справка 3

Итог. документ



Конструирование Пользовательского меню осуществляется в окне Редактора меню Menu Editor.

При создании меню была выполнена следующая последовательность действий:

Формирование меню Справка

В окно Название (Свойство Caption) ввести Справка

В окно имя (свойство name) ввести mnuSpravka

Нажатие Дальше – переход к следующей команде меню

Создание отступа (следующий пункт меню – пункт меню другого уровня)

Свойству Caption присваивается значение Справка 1, а свойству Name – mnuSpravka1

Нажатие Next

Свойству Caption присваивается значение Справка 2, а свойству Name – mnuSpravka2

Далее меню формируется аналогично.

При завершении создания меню было произведено нажатие ОК и созданное меню появилось на экранной форме. Отображается верхний уровень меню – головное меню. У меню есть единственное событие Click. Для раскрытия любого пункта меню или запуска любого пункта при выполнении программы достаточно один раз щелкнуть мышкой по выбранном пункту.

Для создания реальных процедур в пунктах меню в режиме design осуществим двойной щелчок по соотвествующей кнопке. Двойной щелчок по кнопке меню Распечатка VIP вызовет на форме заготовку процедуры

Private Sub mnuSpravka1_Click()

….

End Sub

В заготовку включаем заранее разработанную и отлаженную процедуру. Такую операцию осуществляем для каждого пункта меню. Теперь оно готов для использования его в режиме выполнения всего проекта.






Созданное в окне редактора меню





Экранная форма с созданным пользовательским меню




Список использованной литературы



Michael Halvorson. Microsoft Visual Basic 6.0 Step by Step – Redmond, Washington, USA, 1998

С.В. Глушаков, А.С. Сурядный, «Программирование на Visual Basic 6.0». изд «Фолио». М. 2005.





2