Главная Учебники - Разные Лекции (разные) - часть 32
|
Дальневосточный
Государственный Технический
университет Кафедра
Информационных
Систем Управления
ПОЯСНИТЕЛЬНАЯ
ЗАПИСКА
К КУРСОВОМУ
ПРОЕКТУ
Тема: “Проектирование
и реализация
базы данных”
Выполнил
студент гр.
Э-282:
Богдановский
А. А.
Принял
преподаватель:
Сухомлинов
А. И.
________________________
Дата:
“ ” января
1996 г.
ОГЛАВЛЕНИЕ
СПИСОК
ЛИТЕРАТУРЫ
7
Приложение
I. Отчет по летней
практике по
теме \“Инфологическое
моделирование\ 8
Приложение
II. Программные
тексты, запросы
и схема данных
13
Приложение
III. Таблицы данных
с информацией
17
Приложение
IV. Примеры отчетов
19 Лаборатория
инженерной
океанологии
(ЛИО) при дальневосточном
научно-исследовательском
гидрометеорологическом
институте
(ДВНИГМИ) производит
расчеты
предельно-допустимых
сбросов (ПДС)
для предприятий
различных видов
деятельности.
Расчет производится
с помощью специальных
программ расчета
ПДС по методике
/1/. Разработать
и реализовать
базу данных
(БД) “ПДС”, обеспечивающую
хранение, накопление
и предоставление
всей информации
о предприятии-заказчике,
необходимой
для программы
расчета ПДС. Разработка
базы данных
“ПДС” проводилась
в работе по
летней практике.
В этой работе
была составлена
полная инфологическая
модель базы
данных с типами
сущностей,
типами связей,
их атрибутами
и графическим
представлением
модели.
Отчет
по вышеуказанной
летней практике
представлен
в данной пояснительной
записке в приложении
I. База
данных “ПДС”
была реализована
на СУБД Microsoft Access 2.0 в
среде Microsoft Windows 3.1 *
. При выборе
СУБД использовались
/3-5/. В качестве
руководства
по генерации
таблиц, экранных
форм, запросов,
отчетов, по
программированию
макрокоманд
и программных
модулей использовалась
/2/. База
данных вместе
с таблицами
данных, экранными
формами, запросами,
отчетными
формами в Microsoft
Access представляется
в одном файле.
База данных
“ПДС” хранится
в файле PDS.MDB. Схема
данных, тексты
макрокоманд
и программное
описание элементов
управление
приведены в
разделе . Описание
реализованного
рабочего места
(АРМ) на основе
базы “ПДС”
приводится
в разделе настоящей
записки. Так
как представление
структуры базы
данных, экранных
форм, запросов,
отчетных форм
в Microsoft Access обеспечивается
внутренней
реализацией
СУБД (в отличие
от распространенных
СУБД типа dBase,
FoxPro, и т. д., в которых
эти характеристики
описываются
программным
путем), то представление
полного программного
кода базы данных,
написанной
на Microsoft Access является
невозможным,
в связи с отсутствием
такового. Однако,
при создании
экранных форм
для присвоения
различных
функций элементам
управления
- кнопкам - использовался
внутренний
язык СУБД - Access
Basic. Некоторые
процедуры,
написанные
на этом языке,
представлены
в приложении
II. В
базе данных
“ПДС” для генерации
двух отчетов
используется
два запроса.
Хотя эти запросы
генерировались
визуальными
средствами,
но есть возможность
представить
их в виде SQL-запроса.
Эти два SQL-запроса
представлены
также в приложении
II. Для
связи таблиц
баз данных,
также как и для
запросов,
используется
визуальная
генерация.
Схема данных
в графическом
виде представлена
также в приложении
II. В
результате
работы было
создано автоматизированное
рабочее место
(АРМ) в виде набора
связанных
экранных форм
и отчетов,
позволяющее
вводить, редактировать,
просматривать
данные по
предприятиям,
по выпускам
предприятий,
загрязняющие
вещества,
концентрации
веществ по
выпускам, контрольные
створы для
выпусков, параметры
загрязняющих
веществ в контрольных
створах. Кроме
того, имеется
возможность
генерации
отчетов по
данным о выпусках
предприятия
и о концентрации
загрязненных
веществ по
конкретному
выпуску. После
загрузки главного
(и единственного)
файла базы
“ПДС” PDS.MDB из СУБД
Microsoft Access на экране
автоматически
появляется
следующий
экран:
Из главного
экрана можно
попасть в следующие
экраны: Кнопка
“Предприятия”
- экран для работы
с базой Предприятия
(добавление,
удаление,
редактирование
Предприятий
и их выпусков,
а также концентраций
загрязняющих
веществ по
каждому выпусков):
Кнопка
“Контрольные
створы” - работа
с базой контрольных
створов вместе
с базой загрязняющих
веществ по
каждому створу:
Кнопка
“Вещества”
- добавление
новых контролируемых
загрязняющих
веществ:
Таким
образом, программа
“поддержки”
базы данных
“ПДС” содержит
три главные
экранные формы,
с помощью которых
можно вести
базу данных.
Кроме этих
форм, существует
еще несколько,
которые являются
вспомогательными
и вызываются
из форм, описанных
выше. Вспомогательные
формы в данной
записке не
приводятся
из-за их малозначимости. В
результате
непродолжительной
работы с базой
данных “ПДС”
с помощью
разработанных
экранных форм
были введены
данные о нескольких
предприятиях
с информацией
о выпусках.
Таблицы, представляющие
эти данные
представлены
в приложении
III. В
приложении
IV представлены
два вида отчетов,
которые может
генерировать
БД “ПДС”.
СПИСОК
ЛИТЕРАТУРЫ
Методика расчета
предельно-допустимых
сбросов (ПДС)
веществ в водные
объекты со
сточными водами.
- Харьков, 1990, - 115 c.
Электронная
встроенная
гипертекстовая
справочная
система Microsoft Access,
файл MSACC20.HLP, 4.7 Мбайта.
Журнал “PC Magazine
Russian Edition” №7 1994, статья
У. Плейна, “Microsoft
Access”.
Журнал “PC Magazine
Russian Edition” №5 1994.
Журнал “КомпьюТерра”
№37-38 1994.
Приложение
II. Программные
тексты, запросы
и схема данных
ПРОЦЕДУРЫ
ОПИСАНИЯ ФУНКЦИЙ
ЭЛЕМЕНТОВ
УПРАВЛЕНИЯ
ЭКРАННЫХ ФОРМ
Форма “Выпуски”
Sub
ДобавлениеНовойЗапис_Click
()
On
Error GoTo Err_ДобавлениеНовойЗапис_Click
DoCmd
GoToRecord , , A_NEWREC
Exit_ДобавлениеНовойЗапис_Click:
Exit
Sub
Err_ДобавлениеНовойЗапис_Click:
MsgBox
Error$
Resume
Exit_ДобавлениеНовойЗапис_Click
End
Sub
Sub
ДублироватьЗаписьВВы_Click
()
On
Error GoTo Err_ДублироватьЗаписьВВы_Click
DoCmd
DoMenuItem A_FORMBAR, A_EDITMENU, A_SELECTRECORD_V2, , A_MENU_VER20
DoCmd
DoMenuItem A_FORMBAR, A_EDITMENU, A_COPY, , A_MENU_VER20
DoCmd
DoMenuItem A_FORMBAR, A_EDITMENU, 6, , A_MENU_VER20'Paste Append
Exit_ДублироватьЗаписьВВы_Click:
Exit
Sub
Err_ДублироватьЗаписьВВы_Click:
MsgBox
Error$
Resume
Exit_ДублироватьЗаписьВВы_Click
End
Sub
Sub
УдалениеЗаписиВВыпус_Click
()
On
Error GoTo Err_УдалениеЗаписиВВыпус_Click
DoCmd
DoMenuItem A_FORMBAR, A_EDITMENU, A_SELECTRECORD_V2, , A_MENU_VER20
DoCmd
DoMenuItem A_FORMBAR, A_EDITMENU, A_DELETE_V2, , A_MENU_VER20
Exit_УдалениеЗаписиВВыпус_Click:
Exit
Sub
Err_УдалениеЗаписиВВыпус_Click:
MsgBox
Error$
Resume
Exit_УдалениеЗаписиВВыпус_Click
End
Sub
Sub
ВызовФормы_Концентра_Click
()
On
Error GoTo Err_ВызовФормы_Концентра_Click
Dim
DocName As String
DocName
= "Концентрация
Стоков"
DoCmd
OpenForm DocName, , , "[Выпуск]
= Forms![Предприятие]![Выпуск].Form![Выпуск]"
Exit_ВызовФормы_Концентра_Click:
Exit
Sub
Err_ВызовФормы_Концентра_Click:
MsgBox
Error$
Resume
Exit_ВызовФормы_Концентра_Click
End
Sub
Sub
Кнопка47_Click ()
On
Error GoTo Err_Кнопка47_Click
Dim
DocName As String
Dim
LinkCriteria As String
DocName
= "КонтрольныйСтвор"
LinkCriteria
= "[Контрольный
Створ] =
Forms![Предприятие]![Выпуск].Form![Поле46]"
DoCmd
OpenForm DocName, , , LinkCriteria
DoCmd
GoToControl "Внедренный_объект16"
Forms![КонтрольныйСтвор]![ПереходКПервойЗаписиВПредприятиях].Доступ
= 0
Forms![КонтрольныйСтвор]![ПереходКПредыдущейЗаписиВПредприятиях].Доступ
= 0
Forms![КонтрольныйСтвор]![ПереходКСледующейЗаписиВПредприятиях].Доступ
= 0
Forms![КонтрольныйСтвор]![ПереходКПоследнейЗаписиВПредприятиях].Доступ
= 0
Forms![КонтрольныйСтвор]![Кнопка20].Доступ
= 0
Forms![КонтрольныйСтвор]![Кнопка21].Доступ
= 0
Forms![КонтрольныйСтвор]![Кнопка22].Доступ
= 0
Forms![КонтрольныйСтвор]![Название].Доступ
= 0
Exit_Кнопка47_Click:
Exit
Sub
Err_Кнопка47_Click:
MsgBox
Error$
Resume
Exit_Кнопка47_Click
End
Sub
Форма “Главная”
Sub
Кнопка2_Click ()
On
Error GoTo Err_Кнопка2_Click
Dim
DocName As String
Dim
LinkCriteria As String
DocName
= "Предприятие"
DoCmd
OpenForm DocName, , , LinkCriteria
Exit_Кнопка2_Click:
Exit
Sub
Err_Кнопка2_Click:
MsgBox
Error$
Resume
Exit_Кнопка2_Click
End
Sub
Sub
Кнопка3_Click ()
On
Error GoTo Err_Кнопка3_Click
Dim
DocName As String
Dim
LinkCriteria As String
DocName
= "КонтрольныйСтвор"
DoCmd
OpenForm DocName, , , LinkCriteria
Exit_Кнопка3_Click:
Exit
Sub
Err_Кнопка3_Click:
MsgBox
Error$
Resume
Exit_Кнопка3_Click
End
Sub
Sub
Кнопка9_Click ()
On
Error GoTo Err_Кнопка9_Click
DoCmd
Close
Exit_Кнопка9_Click:
Exit
Sub
Err_Кнопка9_Click:
MsgBox
Error$
Resume
Exit_Кнопка9_Click
End
Sub
Sub
Кнопка6_Click ()
On
Error GoTo Err_Кнопка6_Click
Dim
DocName As String
Dim
LinkCriteria As String
DocName
= "О программе"
DoCmd
OpenForm DocName, , , LinkCriteria
Exit_Кнопка6_Click:
Exit
Sub
Err_Кнопка6_Click:
MsgBox
Error$
Resume
Exit_Кнопка6_Click
End
Sub
Sub
Кнопка5_Click ()
On
Error GoTo Err_Кнопка5_Click
Dim
DocName As String
Dim
LinkCriteria As String
DocName
= "Вещество"
DoCmd
OpenForm DocName, , , LinkCriteria
Exit_Кнопка5_Click:
Exit
Sub
Err_Кнопка5_Click:
MsgBox
Error$
Resume
Exit_Кнопка5_Click
End
Sub
Форма “КонтрольныйСтвор”
Sub
Form_Close ()
Forms![КонтрольныйСтвор]![ПереходКПервойЗаписиВПредприятиях].Доступ
= 1
Forms![КонтрольныйСтвор]![ПереходКПредыдущейЗаписиВПредприятиях].Доступ
= 1
Forms![КонтрольныйСтвор]![ПереходКСледующейЗаписиВПредприятиях].Доступ
= 1
Forms![КонтрольныйСтвор]![ПереходКПоследнейЗаписиВПредприятиях].Доступ
= 1
Forms![КонтрольныйСтвор]![Кнопка20].Доступ
= 1
Forms![КонтрольныйСтвор]![Кнопка21].Доступ
= 1
Forms![КонтрольныйСтвор]![Кнопка22].Доступ
= 1
Forms![КонтрольныйСтвор]![Название].Доступ
= 1
End
Sub
Sub
ВыходИзФормыКонтроль_Click
()
On
Error GoTo Err_ВыходИзФормыКонтроль_Click
DoCmd
Close
Exit_ВыходИзФормыКонтроль_Click:
Exit
Sub
Err_ВыходИзФормыКонтроль_Click:
MsgBox
Error$
Resume
Exit_ВыходИзФормыКонтроль_Click
End
Sub
Sub
Кнопка20_Click ()
On
Error GoTo Err_Кнопка20_Click
DoCmd
DoMenuItem A_FORMBAR, A_EDITMENU, 10, , A_MENU_VER20
Exit_Кнопка20_Click:
Exit
Sub
Err_Кнопка20_Click:
MsgBox
Error$
Resume
Exit_Кнопка20_Click
End
Sub
Sub
Кнопка21_Click ()
On
Error GoTo Err_Кнопка21_Click
DoCmd
GoToRecord , , A_NEWREC
Exit_Кнопка21_Click:
Exit
Sub
Err_Кнопка21_Click:
MsgBox
Error$
Resume
Exit_Кнопка21_Click
End
Sub
Sub
Кнопка22_Click ()
On
Error GoTo Err_Кнопка22_Click
DoCmd
DoMenuItem A_FORMBAR, A_EDITMENU, A_SELECTRECORD_V2, , A_MENU_VER20
DoCmd
DoMenuItem A_FORMBAR, A_EDITMENU, A_DELETE_V2, , A_MENU_VER20
Exit_Кнопка22_Click:
Exit
Sub
Err_Кнопка22_Click:
MsgBox
Error$
Resume
Exit_Кнопка22_Click
End
Sub
Sub
ПереходКПервойЗаписи_Click
()
On
Error GoTo Err_ПереходКПервойЗаписи_Click
DoCmd
GoToRecord , , A_FIRST
Exit_ПереходКПервойЗаписи_Click:
Exit
Sub
Err_ПереходКПервойЗаписи_Click:
MsgBox
Error$
Resume
Exit_ПереходКПервойЗаписи_Click
End
Sub
Sub
ПереходКПоследнейЗап_Click
()
On
Error GoTo Err_ПереходКПоследнейЗап_Click
DoCmd
GoToRecord , , A_LAST
Exit_ПереходКПоследнейЗап_Click:
Exit
Sub
Err_ПереходКПоследнейЗап_Click:
MsgBox
Error$
Resume
Exit_ПереходКПоследнейЗап_Click
End
Sub
Sub
ПереходКПредыдущейЗа_Click
()
On
Error GoTo Err_ПереходКПредыдущейЗа_Click
DoCmd
GoToRecord , , A_PREVIOUS
Exit_ПереходКПредыдущейЗа_Click:
Exit
Sub
Err_ПереходКПредыдущейЗа_Click:
If
Err <> 2105 Then MsgBox Error$
Resume
Exit_ПереходКПредыдущейЗа_Click
End
Sub
Sub
ПереходКСледующейЗап_Click
()
On
Error GoTo Err_ПереходКСледующейЗап_Click
DoCmd
GoToRecord , , A_NEXT
Exit_ПереходКСледующейЗап_Click:
Exit
Sub
Err_ПереходКСледующейЗап_Click:
If
Err <> 2105 Then MsgBox Error$
Resume
Exit_ПереходКСледующейЗап_Click
End
Sub
Форма “Концентрация
Стоков”
Sub
ЗакрытиеФормы_Концен_Click
()
On
Error GoTo Err_ЗакрытиеФормы_Концен_Click
DoCmd
Close
Exit_ЗакрытиеФормы_Концен_Click:
Exit
Sub
Err_ЗакрытиеФормы_Концен_Click:
MsgBox
Error$
Resume
Exit_ЗакрытиеФормы_Концен_Click
End
Sub
Sub
ОтчетПоКонцентрациям_Click
()
On
Error GoTo Err_ОтчетПоКонцентрациям_Click
Dim
DocName As String
DocName
= "ОтчетПоКонцентрациям"
DoCmd
OpenReport DocName, A_PREVIEW
Exit_ОтчетПоКонцентрациям_Click:
Exit
Sub
Err_ОтчетПоКонцентрациям_Click:
MsgBox
Error$
Resume
Exit_ОтчетПоКонцентрациям_Click
End
Sub
Форма “Предприятие”
Sub
Закрыть_Форму_Предпр_Click
()
On
Error GoTo Err_Закрыть_Форму_Предпр_Click
DoCmd
Close
Exit_Закрыть_Форму_Предпр_Click:
Exit
Sub
Err_Закрыть_Форму_Предпр_Click:
MsgBox
Error$
Resume
Exit_Закрыть_Форму_Предпр_Click
End
Sub
Sub
Запустить_Форму_Выпу_Click
()
On
Error GoTo Err_Запустить_Форму_Выпу_Click
Dim
DocName As String
Dim
LinkCriteria As String
DocName
= "Выпуск"
DoCmd
OpenForm DocName, , , LinkCriteria
Exit_Запустить_Форму_Выпу_Click:
Exit
Sub
Err_Запустить_Форму_Выпу_Click:
MsgBox
Error$
Resume
Exit_Запустить_Форму_Выпу_Click
End
Sub
Sub
НоваяЗаписьВПредприя_Click
()
On
Error GoTo Err_НоваяЗаписьВПредприя_Click
DoCmd
GoToRecord , , A_NEWREC
Exit_НоваяЗаписьВПредприя_Click:
Exit
Sub
Err_НоваяЗаписьВПредприя_Click:
MsgBox
Error$
Resume
Exit_НоваяЗаписьВПредприя_Click
End
Sub
Sub
ОтчетПоВыпускам_Click
()
On
Error GoTo Err_ОтчетПоВыпускам_Click
Dim
DocName As String
DocName
= "ОтчетПоВыпускамПредприятия"
DoCmd
OpenReport DocName, A_PREVIEW
Exit_ОтчетПоВыпускам_Click:
Exit
Sub
Err_ОтчетПоВыпускам_Click:
MsgBox
Error$
Resume
Exit_ОтчетПоВыпускам_Click
End
Sub
Sub
ПереходКПервойЗаписи_Click
()
On
Error GoTo Err_ПереходКПервойЗаписи_Click
DoCmd
GoToRecord , , A_FIRST
Exit_ПереходКПервойЗаписи_Click:
Exit
Sub
Err_ПереходКПервойЗаписи_Click:
MsgBox
Error$
Resume
Exit_ПереходКПервойЗаписи_Click
End
Sub
Sub
ПереходКПоследнейЗап_Click
()
On
Error GoTo Err_ПереходКПоследнейЗап_Click
DoCmd
GoToRecord , , A_LAST
Exit_ПереходКПоследнейЗап_Click:
Exit
Sub
Err_ПереходКПоследнейЗап_Click:
MsgBox
Error$
Resume
Exit_ПереходКПоследнейЗап_Click
End
Sub
Sub
ПереходКПредыдущейЗа_Click
()
On
Error GoTo Err_ПереходКПредыдущейЗа_Click
DoCmd
GoToRecord , , A_PREVIOUS
Exit_ПереходКПредыдущейЗа_Click:
Exit
Sub
Err_ПереходКПредыдущейЗа_Click:
If
Err <> 2105 Then MsgBox Error$
Resume
Exit_ПереходКПредыдущейЗа_Click
End
Sub
Sub
ПереходКСледующейЗап_Click
()
On
Error GoTo Err_ПереходКСледующейЗап_Click
DoCmd
GoToRecord , , A_NEXT
Exit_ПереходКСледующейЗап_Click:
Exit
Sub
Err_ПереходКСледующейЗап_Click:
If
Err <> 2105 Then MsgBox Error$
Resume
Exit_ПереходКСледующейЗап_Click
End
Sub
Sub
ПоискЗаписиВПредприя_Click
()
On
Error GoTo Err_ПоискЗаписиВПредприя_Click
DoCmd
DoMenuItem A_FORMBAR, A_EDITMENU, 10, , A_MENU_VER20
Exit_ПоискЗаписиВПредприя_Click:
Exit
Sub
Err_ПоискЗаписиВПредприя_Click:
MsgBox
Error$
Resume
Exit_ПоискЗаписиВПредприя_Click
End
Sub
Sub
Редактирование_Выпус_Click
()
On
Error GoTo Err_Редактирование_Выпус_Click
Dim
DocName As String
Dim
LinkCriteria As String
DocName
= "Выпуск"
LinkCriteria
= "[Предприятие]
= [Предприятие]![Предприятие]"
DoCmd
OpenForm DocName, , , LinkCriteria
Exit_Редактирование_Выпус_Click:
Exit
Sub
Err_Редактирование_Выпус_Click:
MsgBox
Error$
Resume
Exit_Редактирование_Выпус_Click
End
Sub
Sub
СписокПредприятийДля_AfterUpdate
()
DoCmd
ApplyFilter , "НазваниеПредприятие
= Me![СписокПредприятийДляПоиска]"
End
Sub
Sub
УдалениеЗаписиВПредп_Click
()
On
Error GoTo Err_УдалениеЗаписиВПредп_Click
DoCmd
DoMenuItem A_FORMBAR, A_EDITMENU, A_SELECTRECORD_V2, , A_MENU_VER20
DoCmd
DoMenuItem A_FORMBAR, A_EDITMENU, A_DELETE_V2, , A_MENU_VER20
Exit_УдалениеЗаписиВПредп_Click:
Exit
Sub
Err_УдалениеЗаписиВПредп_Click:
MsgBox
Error$
Resume
Exit_УдалениеЗаписиВПредп_Click
End
Sub
ЗАПРОСЫ
ДЛЯ СОЗДАНИЯ
ОТЧЕТОВ (В ФОРМЕ
SQL)
Запрос
“ЗапросДляОтчетаПоВыпускам”
SELECT
DISTINCTROW Предприятие.НазваниеПредприятия,
Выпуск.НазваниеВыпуска,
Выпуск.Расход,
Выпуск.Диаметр,
Выпуск.РасстояниеДоБерега,
Выпуск.Глубина,
Выпуск.СкоростьТечения
FROM
Предприятие
INNER JOIN Выпуск ON
Предприятие.Предприятие
= Выпуск.Предприятие
WHERE
((Предприятие.НазваниеПредприятия=[Forms]![Предприятие]![НазваниеПредприятия]));
Запрос
“ЗапросДляОтчетаПоКонцентрациям”
SELECT
DISTINCTROW Выпуск.НазваниеВыпуска,
Вещество.Название,
СвязьКонцентрацияСтока.Коцентрация,
Выпуск.Выпуск
FROM
Выпуск INNER JOIN (Вещество
INNER JOIN СвязьКонцентрацияСтока
ON Вещество.Вещество
= СвязьКонцентрацияСтока.Вещество)
ON Выпуск.Выпуск
= СвязьКонцентрацияСтока.Выпуск
WHERE
((Выпуск.Выпуск=[forms]![Концентрация
Стоков]![Выпуск]));
СХЕМА ДАННЫХ
Приложение
III. Таблицы данных
с информацией Таблица
“Вещество” Вещество Название Таблица
“Выпуск” Выпуск Предприятие Контрольный
створ
Название Выпуска Расход Диаметр
Расстояние ДоБерега Глубина
Плотность Стоков
Скорость Течения
Направление Течения Таблица
“Контрольный
Створ” Контрольный
Створ Название Таблица
“Предприятие” Предприятие НазваниеПредприятия Таблица
“СвязьВеществаКонтрольногоСтвора” Вещества
Контрольного
Створа Вещество Контрольный
Створ ПДК Фон КНК | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||