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

ФЕДЕРАЛЬНОЕ АГЕНТСТВО ПО ОБРАЗОВАНИЮ

Государственное образовательное учреждение высшего профессионального образования «ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ УПРАВЛЕНИЯ»

Кафедра КОМПЬЮТЕРНЫХ ТЕХНОЛОГИЙ



Курсовой проект по дисциплине

«Компьютерная подготовка»

На тему:

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



Специальность

«Государственное и муниципальное управление»

Курс I

Группа ГиМУ 1-4

Студент Дегтярев Д.Н.

Студенческий билет № 009-09

Вариант № 8

«15» мая 2010 г.

Руководитель проекта

______________________

(учебное звание, степень)

Оценка работы

_____________

«___»_________________201_г.


Москва 2010 г.

Содержание


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

Исходные данные

Создание таблицы

Алгоритм чтения таблицы PR

Алгоритм чтения таблицы GL

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

Решение

Меню

Вид формы и свойства элементов управления

Вид формы с таблицей PR

Вид формы с таблицей GL

Справка 1

Справка 2

Справка 3

Документ

Заключение


Вариант 4


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


Таблица PR(предприятия)

Код предприятия

Наименование предприятия

Численность персонала

Объём выпускаемой продукции в руб.






Таблица GL(обеспеченность жильем)

Код предприятия

Отсутствие жилья

Нуждающиеся в улучшении

Живущие далеко от предприятия






В таблице GL данные приведены в % к общему количеству персонала.


Состав меню:

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

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

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


Наименование предприятия

Объём выпускаемой продукции в руб.




Справка 2. Коды предприятий, в которых процент сотрудников, не имеющих жилья, превышает 15%. Записи упорядочить по убыванию процента сотрудников, не имеющих жилья.

Справка 3. Сведения о предприятиях с количеством персонала, большим 5000 чел., в которых процент сотрудников, не имеющих жилья и нуждающихся в улучшении жилищных условий, превышает 20%.


Наименование предприятия

Численность персонала

Объём выпускаемой продукции в руб.

Отсутствие жилья

Нуждающиеся в улучшении







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

Сведения об объеме выпускаемой продукции на одного работающего на предприятиях, свыше 70% сотрудников которых имеют нормальные жилищные условия.


Наименование предприятия

% сотрудников обеспеченных жильем

Продукция на одного работающего (в руб.)





Исходные данные


Таблица PR


Таблица GL



Создание Таблиц


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

При выполнении этой команды раскрывается Панель Приложения VisData- Панель Диспетчера баз данных Visual Basic 6.0.



Рисунок 1. Панель VisData



Рисунок 2. Заголовок Панели VisData


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


File - New - Microsoft Access - Version 7.0 MDB


В результате раскроется Окно создания Нового файла базы данных Microsoft Access - Окно Select Microsoft Access Database To Create. Для открытия уже существующего файла базы данных необходимо вместо команды New воспользоваться командой Open Database.



Рисунок 3. Окно создания Нового файла Базы данных - Окно Select Microsoft Access Database To Create


В окне Имя файла указать имя каталога, в котором будет храниться создаваемая база. При этом на Панели Приложения VisData появится Окно базы данных (Окно Database Window) и Окно операторов SQL Statements (рис. 4).



Рисунок 4 .Панель Приложения VisData после появления на ней Окна Базы данных (Database Window) и Окна SQL Statements


В любом месте Окна Database Window необходимо щелкнуть правой клавишей мыши. В появившемся меню следует выбрать команду New Table (создать таблицу). Раскроется Панель Table Structure - Структура таблицы (рис. 5). Можно приступать к проектированию структуры таблицы.


Рисунок 5. Панель Table Structure


Проектирование структуры таблицы базы данных включает следующие шаги:

1. В поле Table Name (имя таблицы) ввести имя проектируемой таблицы - SM.



Рисунок 6. Панель Table Structure после внесения в окно Table Name

имени проектируемой таблицы SM


2. Раскрыть Диалоговое Окно Add Field (Добавить поле) на Панели Table Structure кнопкой Add Field - раскроется Диалоговое окно Add Field (Добавить поле).



Рисунок 7. Раскрытое диалоговое окно Add Field (Добавить поле)

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



Рисунок 8. Диалоговое окно Add Field для ввода сведений о полях проектируемой таблицы создаваемой базы данных


В поле Туре Окна Add Field по умолчанию указан тип вводимого данного - Text. При разработке приложения создания базы данных нам может понадобиться использование данных другого типа, что и осуществляется выбором стандартных типов с использованием клавиши окна Туре. В Visual Basic вы можете применять следующие типы данных:

  • числовой (integer, Long, Single, Double, Currency);

  • строковый (String);

  • типа дата (Date);

  • байтовый(Byte);

  • логический (Boolean);

  • произвольный (variant);

  • объектный (object).

Для хранения чисел в Visual Basic используется пять разных типов данных. Для хранения целочисленных данных будем использовать тип Integer, а для храпения десятичных чисел типы данных Single.

4. По окончании ввода всей информации поля создаваемой таблицы базы данных щелкнуть кнопку ОК диалогового окна Add Field Панели Table Structure. Поле добавляется в таблицу.

5. Добавим все необходимые поля тем же способом и нажмем кнопку Close, вернувшись в окно Table Structure.

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

Включим в нашу Базу Данных еще одну таблицу - таблицу GL. Для этого также воспользуемся окном Database Window и, выполнив те же шаги, создадим в Базе данных БД структуру второй таблицы GL.



Рисунок 9. Окно Database Window (Окно баш данных) Панели Приложения VisData со структурами таблиц PR и GL создаваемой базы данных.

Теперь таблицы нужно заполнить конкретными записями. Но если мы хотим, чтобы в дальнейшем записи таблиц БД автоматически упорядочивались по заданному полю, необходимо создать, так называемый, индекс таблицы. Для этого с помощью панели Add Index, ввести в поле окна Name имя поля, которое хотим сделать индексным, щелкнуть по нему, чтобы включить ею в список Indexed Fields.

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

Щелчком правой кнопкой мыши по таблице PR или GL раскроем
контекстное меню выбора опций, являющееся узловым (начальным) инструментом разработки баз данных.

Выбрав опцию Open, раскроем окно Модификаций таблиц базы данных. Оно является исходным инструментом выбора видов работ (видов модификаций) с таблицами баз данных и содержит набор 8-и опций.



Рисунок 10. Окно Модификаций таблиц базы данных


Данные отображаются в табличном формате, удобном для ввода новых записей и редактирования текущей и ранее введенных записей (линейка опций окна Модификаций таблиц базы данных содержит опцию редактирования Edit - рис. 10).

Начинаем процесс заполнения указанных полей конкретными значениями первой записи. Нажимаем Add. Для перехода к следующему полю записи можно пользоваться клавишей Enter. По окончании заполнения всех полей первой записи щелкнуть на кнопке Update (Обновить) - в результате набранная запись будет физически записана в файл создаваемой базы данных, в таблицу PR и восстановится окно модификаций. Для перехода к новой записи - щелчок левой клавишей по кнопке Add. Нажатие кнопки Close после ввода последней записи завершает ввод записей в таблицу создаваемой Базы данных.

Аналогично создадим таблицу GL.


Алгоритм чтения таблицы PR

Начало



Flp.TextMatrix(I - 1, J - 1) = Text1(J-1)



Объявление переменных

Data1.Recordset.MoveFirst

K = Data1.Recordset.RecordCount

Flp.Rows = K + 1

Flp.Cols = 4

For I = 1 To K

For J = 1 To 4

For J = 1 To 4

For J = 1 To 4

Нет



I=1


Next J

Flp.TextMatrix(I - 1, J - 1) = Data1.Recordset.Fields(J - 1).Name

K = Data1.Recordset.MoveNext

Next I

End Sub

Да

Алгоритм чтения таблицы GL

Начало



Flg.TextMatrix(I - 1, J - 1) = Text1(J-1)



Объявление переменных

Data1.Recordset.MoveFirst

K = Data1.Recordset.RecordCount

Flg.Rows = K + 1

Flg.Cols = 4

For I = 1 To K

For J = 1 To 4

For J = 1 To 4

For J = 1 To 4

Нет



I=1


Next J

Flg.TextMatrix(I - 1, J - 1) = Data1.Recordset.Fields(J - 1).Name

K = Data1.Recordset.MoveNext

Next I

End Sub

Да

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


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

Использование большого количества командных кнопок связано с неудобствами. Возникает неясность в последовательности их активизации. Разумная альтернатива – создание собственного меню проекта. В системе проектирования VB 6.0 создание Меню осуществляется с помощью Редактора меню Menu Editor. Окно редактора открывается на активной форме тремя способами:

  • Главное Меню - Инструменты - Редактор меню (меню Editor);

  • Нажатием на линейке инструментов Главной панели системы VB 6.0 кнопки;

  • Нажатием клавиш CTRL + E



Рисунок 11. Окно редактора меню

Обычно меню состоит из нескольких уровней. Верхний - это строка меню, которую называют Головным меню. Каждый пункт Головного меню может включать подменю из одного или нескольких пунктов. Каждый следующий пункт, в свою очередь, может включать свое подменю и т.д.

Открываем окно редактора меню на Form1. Form1 используется как
основная. В окне редактора и осуществим конструирование Пользовательского меню.

После вызова редактора требуется заполнить его необходимыми данными. Сначала в окно Caption (заголовок) вводится имя пункта меню, под
которым оно будет выводиться в строке меню на форме. Для быстрого открытия меню в поле Заголовок можно указать т.н. горячую клавишу. Это делается записью амперсанда (&) перед соответствующей буквой.

Затем нажимаемся TAB и вводится в окно Имя уникальное имя пункта
Меню в программе. Оно должно состоять из следующих частей:

  • Префикса mnu, указывающего, что имя относится к меню;

  • Собственного имени.

Кроме свойств Заголовок, Имя элементы меню имеют еще три свойства, могущие принимать значение True/False:

Отмечено (Checked) —позволяет отметить выбранный элемент символом ,

Включено (Enabled) - позволяет включить или выключить команды
меню во время выполнения программы символом .

Видимо (Visible) -позволяет отобразить или скрыть отдельные элементы меню (вместо блокировки) символом

Элементы конструирования структуры Меню позволяют:

устанавливать уровни Меню стрелками:

смещает элемент на уровень ниже,

смещает элемент на уровень выше,

перемещают элементы в списке элементов одного уровня

перемещать указатель к следующему Меню («Дальше» (Next), добавлять пункт Меню («Вставить» (Insert), удалять пункт Меню («Удалить» (Delete)).



Рисунок 12. Созданное Меню в Окне Редактора


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


Решение


При решении данной курсовой работы я решил выполнить её на одной форме, то есть все пункты меню кроме Vihod(Выход) служат для распечатки таблиц, формирования и выдачи справок, создания документа на 1 форме.


Меню



Рисунок 13. Пользовательское Меню


Private Sub mnuVihod_Click()

End

End Sub


Вид формы



Рисунок 14 .Экранная форма Glav_Form, обеспечивающая просмотр таблиц, выдачи справок и выходного документа(с использованием Пользовательского меню)

Свойства Glav_Form:


Name= Glav_Form

Caption= Курсовой проект Дегтярев Денис ГиМУ 1-4 №8.

Height=6780

Left=105

LinkTopic=Form1

ScaleHeight=5940

ScaleWidth=13350

Top=105

Width=13590


Пояснение

Так как почти все элементы будут использоваться в более чем одной процедуре, то их свойства будут указаны сразу для избегания лишней путаницы.

Свойства Элемента Data1 (таблица PR,справка № 1,3 и документ):


Name =Data1

Caption = Data1_Таблица_PR

Connect =Access

DatabaseName = D:\кп\Курсовая 2\file 1.mdb

Height = 495

Left = 240

RecordsetType =0 - Table

RecordSource =PR

Top = 1320

Width = 6375


Свойства элементов связанных с Data1(таблица PR,справка № 1,3 и документ):


Text1(0)

DataField = “Cod pr”

DataSourse = Data1

Height = 495

Index =0

Left = 240

TabIndex = 9

Top = 600

Width = 1215

Text1(1)

DataField = “Name pr”

DataSourse = Data1

Height = 495

Index =1

Left = 1680

TabIndex =8

Top =600

Width = 2175

Text1(2)

DataField = “Zis”

DataSourse = Data1

Height = 495

Index =2

Left = 4080

TabIndex =7

Top =600

Width = 1215

Text1(3)

DataField = “V vip”

DataSourse = Data1

Height = 495

Index =3

Left = 5520

TabIndex =6

Top =600

Width = 1335


Свойства элементов Label (метка) для PR.


Label1(0)

Caption = «Код предприятия»

Height = 255

Index =0

Left = 120

TabIndex =21

Top =240

Width = 1335

Label1(1)

Caption = «Наименование предприятия»

Height = 255

Index =1

Left = 1680

TabIndex =20

Top =240

Width = 2175

Label1(2)

Caption = «Численность персонала»

Height = 255

Index =2

Left = 4200

TabIndex =19

Top =240

Width = 1095

Label1(3)

Caption = «Объем выпуска продукции (в руб)»

Height = 495

Index =3

Left = 5520

TabIndex =18

Top =240

Width = 1335


Свойства элемента MSFlexGrid и Label3 (таблица PR и справка № 2)


MSFlexGrid

Name =Flp

Cools =2

FixedCools =0

FixedRows =1

Height =1695

Left =1080

Rows =2

TabIndex =5

Top =2400

Width =4335

Label3

Caption = « »Height = 255

Left = 1080

TabIndex =13

Top =2040

Width = 4335


Свойства Элемента Data2 (таблица GL,справка № 2,3 и документ):


Name =Data2

Caption = Data2_Таблица_GL

Connect =Access

DatabaseName = D:\кп\Курсовая 2\file 1.mdb

Height = 495

Left = 7080

RecordsetType =0 - Table

RecordSource =GL

Top = 1320

Width = 5895


Свойства элементов связанных с Data2(таблица GL,справка № 2,3 и документ):


Text2(0)

DataField = “Cod pr”

DataSourse = Data2

Height = 495

Index =0

Left = 7320

TabIndex = 4

Top = 600

Width = 1315

Text2(1)

DataField = “Zis”

DataSourse = Data2

Height = 495

Index =1

Left = 8880

TabIndex =3

Top =600

Width = 1455

Text2(2)

DataField = “Ul”

DataSourse = Data2

Height = 495

Index =2

Left = 10560

TabIndex =2

Top =600

Width = 1215

Text2(3)

DataField = “Dal”

DataSourse = Data2

Height = 495

Index =3

Left = 11880

TabIndex =1

Top =600

Width = 1335


Свойства элементов Label (метка) для GL.


Label2(0)

Caption = «Код предприятия»

Height = 255

Index =0

Left = 7320

TabIndex =17

Top =240

Width = 1335

Label2(1)

Caption = «Отсутствие жилья»

Height = 255

Index =1

Left = 8880

TabIndex =16

Top =240

Width = 1455

Label2(2)

Caption = «Нуждающиеся в улучшении»

Height = 435

Index =2

Left = 10560

TabIndex =15

Top =120

Width = 1155

Label2(3)

Caption = «Живущие далеко от предприятия»

Height = 495

Index =3

Left = 11880

TabIndex =14

Top =120

Width = 1335


Свойства элемента MSFlexGrid и Label4 (таблица GL и справка № 1)


MSFlexGrid

Name =Flg

Cools =2

FixedCools =0

FixedRows =1

Height =1695

Left =1080

Rows =2

TabIndex =10

Top =2400

Width =4215

Label4

Caption = “ ”

Height = 255

Left = 8160

TabIndex =12

Top =2040

Width = 3975


Свойства элемента MSFlexGrid и Label5(справка №3 и документ)


MSFlexGrid

Name =Fls

Cools =2

FixedCools =0

FixedRows =1

Height =1575

Left =4080

Rows =2

TabIndex =10

Top =4320

Width =5175

Label5

Caption = “ ”

Height = 495

Left = 1200

TabIndex =11

Top =4680

Width = 2775


Вид формы с таблицей PR



Рисунок 15. Форма с таблицей PR.


Private Sub mnuRs_PR_Click()

Dim K As Integer

Dim I As Integer, J As Integer

Data1.Recordset.MoveFirst

K = Data1.Recordset.RecordCount

Label3.Caption = "Таблица Предприятия"

Flp.Rows = K + 1

Flp.Cols = 4

For I = 1 To K

For J = 1 To 4

Flp.TextMatrix(I, J - 1) = Text1(J - 1)

If I = 1 Then Flp.TextMatrix(I - 1, J - 1) = Data1.Recordset.Fields(J - 1).Name

Next J

Data1.Recordset.MoveNext

Next I

End Sub


Форма с таблицей GL



Рисунок 16. Вид формы с таблицей GL

Private Sub mnuRs_Gl_Click()

Dim K As Integer

Dim I As Integer, J As Integer

K = Data1.Recordset.RecordCount

Label4.Caption = "Таблица Обеспеченность жильём"

Data2.Recordset.MoveFirst

Flg.Rows = K + 1

Flg.Cols = 4

For I = 1 To K

For J = 1 To 4

Flg.TextMatrix(I, J - 1) = Text2(J - 1)

If I = 1 Then Flg.TextMatrix(I - 1, J - 1) = Data2.Recordset.Fields(J - 1).Name

Next J

Data2.Recordset.MoveNext

Next I

End Sub


Справка №1

Таблица PR

Да

Начало

Объявление переменных

Flg.Cols =3:KZ=0

Flg.Rows=1 =3

Label4.Caption = "Справка №1(по таблице PR)"

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

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

Data1.Recordset.MoveFirst

For I = 1 To Data1.Recordset.RecordCount

If Data1.Recordset.Fields(3).Value > 20000000 Then

Flg.Rows = Flg.Rows + 1

Kz = Flg.Rows - 1

Flg.TextMatrix(Kz, 0) = Data1.Recordset.Fields(1).Value

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

Flg.TextMatrix(Kz, 2) = Data1.Recordset.Fields(2).Value

End If

Data1.Recordset.MoveNext

Next I

Нет

Задание столбцов гибкой сетки

Цикл по записям таблицы PR

Задание наименований столбцов в таблице Flg

Поиск записей, соответствующих требованию справки

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

Условие на тот случай если не будет найдено записей удовлетворя -ющих условие

If Kz > 1 Then

For I = 1 To Kz - 1

T=I

For L = I + 1 To Kz

If Val(Flg.TextMatrix(T, 2)) > Val(Flg.TextMatrix(L, 2)) Then T = L

Next L

If T < > I Then

For J = 0 To 2

Q = Flg.TextMatrix(I, J): Flg.TextMatrix(I, J) = Flg.TextMatrix(T, J)

Flg.TextMatrix(T, J) = Q

Next J

End If

Next I

End If

Flg.Cols = 2

If Kz = 0 Then Flg.TextMatrix(Kz, 0) = "Нет таких записей в таблице PR"

End Sub

Цикл упорядочивающий записи по возрастанию численности персонала


Private Sub mnuSpravka1_Click()

Dim I As Integer, T As Integer, L As Integer, J As Integer

Dim Kz As Integer

Dim Q As Variant

Flg.Cols = 3: Flg.Rows = 1: Kz = 0

Label4.Caption = "Справка №1(по таблице PR)"

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

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

Data1.Recordset.MoveFirst

For I = 1 To Data1.Recordset.RecordCount

If Data1.Recordset.Fields(3).Value > 20000000 Then

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

Flg.TextMatrix(Kz, 0) = Data1.Recordset.Fields(1).Value

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

Flg.TextMatrix(Kz, 2) = Data1.Recordset.Fields(2).Value

End If

Data1.Recordset.MoveNext

Next I

If Kz > 1 Then

For I = 1 To Kz - 1

T = I

For L = I + 1 To Kz

If Val(Flg.TextMatrix(T, 2)) > Val(Flg.TextMatrix(L, 2)) Then T = L

Next L

If T <> I Then

For J = 0 To 2

Q = Flg.TextMatrix(I, J): Flg.TextMatrix(I, J) = Flg.TextMatrix(T, J)

Flg.TextMatrix(T, J) = Q

Next J

End If

Next I

End If

Flg.Cols = 2

If Kz = 0 Then Flg.TextMatrix(Kz, 0) = "Нет таких записей в таблице PR"

End Sub



Рисунок 17. Вид справки №1


Справка №2

Таблица GL

Задание столбцов гибкой сетки

Цикл по записям таблицы PR

Задание наименований столбцов в таблице Flp

Поиск записей, соответствующих требованию справки

Да

Начало

Объявление переменных

Flp.Cols =2:KZ=0

Flp.Rows=1 =3

Label3.Caption = "Справка №2(по таблице GL)"

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

Data2.Recordset.MoveFirst

For I = 1 To Data2.Recordset.RecordCount

If Data2.Recordset.Fields(3).Value > 15 Then

Flp.Rows = Flp.Rows + 1

Kz = Flp.Rows - 1

Flp.TextMatrix(Kz, 0) = Data2.Recordset.Fields(0).Value

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

End If

Data2.Recordset.MoveNext

Next I

Нет

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


Условие на тот случай если не будет найдено записей удовлетворя -ющих условие

Цикл упорядочивающий записи по возрастанию численности персонала

If Kz > 1 Then

For I = 1 To Kz - 1

T=I

If Val(Flp.TextMatrix(T, 1)) < Val(Flp.TextMatrix(L, 1)) Then T = L

For L = I + 1 To Kz

Next L

If T < > I Then

For J = 0 To 1

Q = Flp.TextMatrix(I, J): Flg.TextMatrix(I, J) = Flp.TextMatrix(T, J)

Flp.TextMatrix(T, J) = Q

Next J

End If

Next I

End If

Flp.Cols = 1

If Kz = 0 Then Flp.TextMatrix(Kz, 0) = "Нет таких записей в таблице GL"

End Sub


Private Sub mnuSpravka2_Click()

Dim I As Integer

Dim Kz As Integer

Label3.Caption = "Справка №2(по таблице GL)"

Flp.Cols = 2: Flp.Rows = 1: Kz = 0

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

Data2.Recordset.MoveFirst

For I = 1 To Data2.Recordset.RecordCount

If Data2.Recordset.Fields(3).Value > 15 Then

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

Flp.TextMatrix(Kz, 0) = Data2.Recordset.Fields(0).Value

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

End If

Data2.Recordset.MoveNext

Next I

If Kz > 1 Then

For I = 1 To Kz - 1

T = I

For L = I + 1 To Kz

If Val(Flp.TextMatrix(T, 1)) < Val(Flp.TextMatrix(L, 1)) Then T = L

Next L

If T <> I Then

For J = 0 To 1

Flp.TextMatrix(T, J) = Q

Next J

End If

Next I

End If

Flp.Cols = 1

If Kz = 0 Then Flp.TextMatrix(Kz, 0) = "Нет таких записей в таблице GL"

End Sub



Рисунок 18. Вид справки №2


Справка №3

Таблица PR и GL

Цикл по записям таблицы PR и GL

Задание наименований столбцов в таблице Fls

Да

Начало

Объявление переменных

Flp.Cols =5:Kz=0

Flp.Rows=1 =3

Label5.Caption = "Справка №3(по таблицам GL и PR)"

For I = 1 To Data1.Recordset.RecordCount

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

Fls.TextMatrix(0, 1) = Data1.Recordset.Fields(2).Name

Fls.TextMatrix(0, 2) = Data1.Recordset.Fields(3).Name

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

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

Data1.Recordset.MoveFirst

Data2.Recordset.MoveFirst

For J = 1 To Data2.Recordset.RecordCount

If Data2.Recordset.Fields(0) = Data1.Recordset.Fields(0) Then

If Data1.Recordset.Fields(2). Value > 5000 And Data2.Recordset.Fields(1).Value > 20 And Data2.Recordset.Fields(2).Value > 20 Then

Да

Нет

Нет

Задание столбцов гибкой сетки

Поиск записей, соответствующих требованию справки


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

Fls.Rows = Fls.Rows + 1

Kz = Fls.Rows - 1

Fls.TextMatrix(Kz, 0) = Data1.Recordset.Fields(1).Value

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

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

Fls.TextMatrix(Kz, 4) = Data2.Recordset.Fields(2).Value

End If

End If

Data2.Recordset.MoveNext

Next J

Data1.Recordset.MoveNext

Next I

End Sub

If Kz = 0 Then Fls.TextMatrix(Kz, 0) = "Нет записей удолетворяющих условие"

Условие на тот случай если не будет найдено записей удовлетворя -ющих условие



Private Sub mnuSpravka3_Click()

Dim I As Integer, J as Integer

Dim Kz As Integer

Label5.Caption = "Справка №3(по таблицам GL и PR)"

Fls.Cols = 5: Fls.Rows = 1: Kz = 0

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

Fls.TextMatrix(0, 1) = Data1.Recordset.Fields(2).Name

Fls.TextMatrix(0, 2) = Data1.Recordset.Fields(3).Name

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

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

Data1.Recordset.MoveFirst

For I = 1 To Data1.Recordset.RecordCount

Data2.Recordset.MoveFirst

For J = 1 To Data2.Recordset.RecordCount

If Data2.Recordset.Fields(0) = Data1.Recordset.Fields(0) Then

If Data1.Recordset.Fields(2).Value > 5000 And Data2.Recordset.Fields(1).Value > 20 And Data2.Recordset.Fields(2).Value > 20 Then

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

Fls.TextMatrix(Kz, 0) = Data1.Recordset.Fields(1).Value

Fls.TextMatrix(Kz, 1) = Data1.Recordset.Fields(2).Value

Fls.TextMatrix(Kz, 2) = Data1.Recordset.Fields(3).Value

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

Fls.TextMatrix(Kz, 4) = Data2.Recordset.Fields(2).Value

End If

End If

Data2.Recordset.MoveNext

Next J

Data1.Recordset.MoveNext

Next I

If Kz = 0 Then Fls.TextMatrix(Kz, 0) = "Нет записей удовлетворяющих условие"

End Sub



Рисунок 18. Вид справки №3


Документ

Поиск записей, соответствующих требованию справки

Задание наименований столбцов в таблице Fls

Да

Начало

Объявление переменных

Flp.Cols =3:Kz=0

Flp.Rows=1 =3

Label5.Caption = "Документ"

For I = 1 To Data1.Recordset.RecordCount

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

Fls.TextMatrix(0, 1) = "% сотрудников обеспеченных жильем"

Fls.TextMatrix(0, 2) = "Продукция на одного рабочего(в руб.)"

Data1.Recordset.MoveFirst

Data2.Recordset.MoveFirst

For J = 1 To Data2.Recordset.RecordCount

If Data2.Recordset.Fields(0) = Data1.Recordset.Fields(0) Then

If Data2.Recordset.Fields(1).Val- ue + Data2.Recordset.Fields (2).Value + Data2.Recordset. Fields(3).Value <= 30 Then

Да

Нет

Нет

Задание столбцов гибкой сетки

Цикл по записям таблицы PR и GL


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

Fls.Rows = Fls.Rows + 1

Kz = Fls.Rows - 1

End If

End If

Data2.Recordset.MoveNext

Next J

Data1.Recordset.MoveNext

Next I

End Sub

If Kz = 0 Then Fls.TextMatrix(Kz, 0) = "Нет записей удовлетворяющих условие"

Условие на тот случай если не будет найдено записей удовлетворя -ющих условие

Fls.TextMatrix(Kz, 0) = Data1.Recordset.Fields(1).Value


Fls.TextMatrix(Kz, 1) = 100 -(Data2.Recordset.Fields(1). Value + Data2.Recordset.Fields(2).Value + Data2. Recordset.Fields(3).Value)


Fls.TextMatrix(Kz, 2) = Data1.Recordset.Fields(3).Value / Data1.Recordset.Fields(2).Value



Private Sub mnuDoc1_Click()

Dim I As Integer, J as Integer

Dim Kz As Integer

Label5.Caption = "Документ"

Fls.Cols = 3: Fls.Rows = 1: Kz = 0

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

Fls.TextMatrix(0, 1) = "% сотрудников обеспеченных жильем"

Fls.TextMatrix(0, 2) = "Продукция на одного рабочего(в руб.)"

Data1.Recordset.MoveFirst

For I = 1 To Data1.Recordset.RecordCount

Data2.Recordset.MoveFirst

For J = 1 To Data2.Recordset.RecordCount

If Data2.Recordset.Fields(0) = Data1.Recordset.Fields(0) Then

If Data2.Recordset.Fields(1).Value + Data2.Recordset.Fields(2).Value + Data2.Recordset.Fields(3).Value <= 30 Then

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

Fls.TextMatrix(Kz, 0) = Data1.Recordset.Fields(1).Value

Fls.TextMatrix(Kz, 1) = 100 - (Data2.Recordset.Fields(1).Value + Data2.Recordset.Fields(2).Value + Data2.Recordset.Fields(3).Value)

Fls.TextMatrix(Kz, 2) = Data1.Recordset.Fields(3).Value / Data1.Recordset.Fields(2).Value

End If

End If

Data2.Recordset.MoveNext

Next J

Data1.Recordset.MoveNext

Next I

If Kz = 0 Then Fls.TextMatrix(Kz, 0) = "Нет записей удовлетворяющих условие"

End Sub



Рисунок 20. Документ


Заключение


В данной курсовой работе по созданию и обработке Баз данных средствами Visual Basic 6.0, в разрабатываемом программном проекте я предпочел использовать пользовательское меню по следующим причинам:

  • Отпадает необходимость создания отдельных экранных форм для решения каждой задачи программного проекта.

  • Намного упрощается работа с проектом, так как результаты отдельных задач проекта не обращаются к другим, формам.

  • На экранной форме проекта отсутствую командные кнопки, роль которых на себя берут пункты меню.

  • Управление проектом становиться гораздо проще, легче и даже комфортнее - устраняется неясность в последовательности активизации командных кнопок при выполнении программного проекта.

  • Программный проект объединен в единое целое.

Нравится материал? Поддержи автора!

Ещё документы из категории информатика:

X Код для использования на сайте:
Ширина блока px

Скопируйте этот код и вставьте себе на сайт

X

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

После чего кнопка «СКАЧАТЬ» станет доступной!

Кнопочки находятся чуть ниже. Спасибо!

Кнопки:

Скачать документ