РефератыИнформатика, программированиеУчУчет основного оборудования на предприятии

Учет основного оборудования на предприятии

Министерство образования и науки Российской Федерации


Государственное образовательное учреждение высшего профессионального образования


Камская инженерно-экономическая академия


Кафедра А и ИТ


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


по дисциплине «Базы данных»


на тему: «Учет основного оборудования на предприятии»


Выполнил: ст. гр. 1509


Сагындыков Л.Т.


Проверил доцент:


Бахвалова В.С.


Проверил ассистент:


Нуриева Н.П


Набережные челны 2010


Содержание


Введение


Глава 1. Задание


Глава 2. Системный анализ предметной области


Глава 3. Проектирование базы данных


3.1 Проектирование базы данных декомпозиционным методом


3.2 Проектирование базы данных с использованием ER- метода


3.3 Проверка отношений на завершающей фазе проектирования


3.4 Модель базы данных


Глава 4. Выбор субд


Глава 5. Разработка приложения


5.1 Общая схема приложения


5.2 Запросы и макросы, использованные в приложении


5.3 Описание приложения


5.3.1 Функциональные возможности приложения


5.3.2 Инструкция пользователя


Заключение


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


Приложение


ВВЕДЕНИЕ

Современный мир информационных технологий трудно представить себе без использования баз данных (БД). Практически все системы в той или иной степени связаны с функциями долговременного хранения и обработки информации. Фактически информация становится фактором, определяющим эффективность любой сферы деятельности. Увеличились информационные потоки и повысились требования к скорости обработки данных. В результате большинство операций не может быть выполнено вручную, они требуют применения наиболее перспективных компьютерных технологий. Любые административные решения требуют четкой и точной оценки ситуации и возможных перспектив ее изменения.


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


ГЛАВА 1. ЗАДАНИЕ

Необходимо спроектировать и реализовать реляционную БД учета основного оборудования на предприятии.


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


Отчет по работе должен содержать:


1. Системный анализ предметной области;


2. Последовательность проектирования БД двумя методами (декомпозиционным и ER-методом);


3. Обоснование выбора СУБД;


4. Разработанное приложение для работы с БД, а также общую блок-схему и блок-схему алгоритмов;


5. Инструкцию пользователя для разработанного приложения.


ГЛАВА 2. СИСТЕМНЫЙ АНАЛИЗ ПРЕДМЕТНОЙ ОБЛАСТИ

Данная БД разработана для учета имеющегося основного оборудования на одном предприятии. При разработке необходимо учесть следующие требования:


1. Для каждого оборудования необходимо иметь возможность получить основную техническую информацию.


2. Обрабатывающие оборудования, которые имеют схожие технические характеристики необходимо объединить в кластеры.


3. Каждому обрабатывающему оборудованию необходимо привязать набор инструментов и приспособлений


4. Необходимо иметь возможность получения отчета по всем имеющимся оборудованиям.


5. Необходимо иметь возможность получения списка оборудования, способных заменить вышедшее из строя.


Для корректной работы БД необходимо разделить основное оборудование на транспортное и обрабатывающее.


Таким образом, в БД необходимо хранить:


Данные об обрабатывающем оборудовании:


1. Код оборудования (КодОбр)– каждому обрабатывающему оборудованию присваивается уникальный код


2. Марка (МаркаОбр) – определяет технические характеристики обрабатывающего оборудования


3. Габаритные размеры (ГабарОбр) – общий для оборудования одной марки.


4. Наибольшая длина обрабатываемых деталей (ДлДетОбр) - параметр общий для оборудования одной марки. Величина указывается в мм.


5. Наибольший диаметр обрабатываемых деталей (ДиамДетОбр) –параметр общий для оборудования одной марки. Если деталь типа призма, то вместо диаметра указывается наибольший из ширины и высоты. Величина указывается в мм.


6. Пределы частот вращений главного шпинделя (ЧастотОбр) – общий параметр для оборудования одной марки. Величина указывается в мин-1


7. Мощность привода главного движения (МощОбр) – общий параметр для оборудования одной марки. Величина указывается кВт.


8. Стоимость (СтоимОбр) – определяет стоимость приобретения оборудования. Величина указывается в тыс. руб.


9. Дата изготовления (ДатаОбр)- определяет год выпуска обрабатывающего оборудования


Данные об транспортном оборудовании:


1. Код оборудования (КодТр)– каждому транспортному оборудованию присваивается уникальный код


2. Марка (МаркаТр) – определяет технические характеристики транспортного оборудования


3. Скорость перемещения (СкорТр) – общий параметр для одной марки. Величина указывается в м/мин.


4. Габаритные размеры (ГабарТр) – общий параметр для одной марки.


5. Грузоподъемность (ГрузТр)–общий параметр для оборудования одной марки. Величина указывается в кг.


6. Масса транспортного оборудования (МассаТр) – общий параметр для оборудования одной марки. Величина указывается в т.


7. Стоимость (СтоимТр) – определяет стоимость приобретения транспортного оборудования. Величина указывается в тыс. руб.


Данные об инструменте/приспособлении:


1. Код инструмента/приспособления (КодИП) – уникальный номер инструмента/приспособления на предприятии


2. Марка инструмента/приспособления (МаркИП) - определяет технические характеристики инструмента/приспособления


3. Назаначение инструмента/приспособления (НазнИП) – определяет техническое назначение инструмента/приспособления: резец проходной, резец копировальный и т.д.


4. «Инструмент» (ИнсПрисп) – параметр для разделения инструментов и приспособлений, хранимое значение логическое.


Данные об автоматической транспортно накопительно-складской системе (далее просто АТНСС):


1. Код АТНСС (КодАТНСС) – уникальный код автоматической транспотрно-накопительно-складской системы.


2. Пропускная способность (ПропАТНСС)–число перевозимых ед.изделия в час


3. Площадь охватываемая данной АТНСС (ПлощАТНСС) – указывается в м2


Данные о гибком автоматизированном участке (далее просто ГАУ):


1. Код ГАУ (КодГАУ) – каждому ГАУ присваивается уникальный код.


2. Назначение ГАУ (НазнГАУ) – разные участки могут изготавливать одни и те же детали.


3. Площадь, занимаемая ГАУ (ПлощГАУ) – указывается в м2


Данные о гибкой производственной системе (далее просто ГПС):


1. Код ГПС (КодГПС) – каждому ГПС присваивается уникальный код.


2. Назначение ГПС (НазнГПС) –техническая информация о выполняемой работе на ГПС.


3. Наименовние цеха (НаимЦех) – несколько ГПС могут быть привязанык одному цеху.


Данные о кластерах (объединение транспортного оборудования по определенным характеристикам в некотором диапазоне):


1. Код кластера (КодКласт)- уникальный код кластера


2. Частота вращения главного шпинделя (ЧастКласт) - устанавливается для каждого кластера


3. Длина обрабатываемых деталей (ДлинКласт)- устанавливается для каждого кластера


4. Диаметр обрабатываемых деталей (ДиамКласт) - устанавливается для каждого кластера. Если деталь типа призма, то вместо диаметра указывается наибольший из ширины и высоты.


5. Процент отклонения (ОтклКласт) – определяет диапазон отклонения параметров в пределах одного кластера


Количественные характеристики


При построении модели базы данных за основу выбран набор нормализованных отношений, полученный в результате проектирования ER-методом. Модель представлена на рисунке ниже. Предполагается, что количество обрабатывающего и транспортного оборудования на предприятии не более 1000 ед. и 500 ед. соответсвенно. В базе данных будет хранится информация о 5000 обрабатывающих и 2000 транспортных оборудованиях. Число ГАУ будет равно 200, ГПС - 30, а АТНСС – 70. Число используемых инструментов/приспособлений – 10000. Предполагается, что число кластеров будет не более 10000.


ГЛАВА 3. ПРОЕКТИРОВАНИЕ БАЗЫ ДАННЫХ
3.1 Проектирование базы данных декомпозиционным методом

Составим универсальное отношение, содержащее атрибуты, указанные ниже, и внесём в него ряд записей.


Атрибуты, хранимые в БД:


Код транспортного оборудования (КодТр),


код инструмента/приспособления (КодИП),


код обрабатывающего оборудования (КодОбр),


марка обрабатывающего оборудования (МаркаОбр),


габаритные размеры обрабатывающего оборудования (ГабарОбр),


наибольшая длина обрабатываемых деталей на обрабатывающем оборудовании (ДлДетОбр),


наибольший диаметр обрабатываемых деталей на обрабатывающем оборудовании (ДиамДетОбр),


пределы частот вращений главного шпинделя на обрабатывающем оборудовании (ЧастотОбр),


мощность привода главного движения обрабатывающего оборудования (МощОбр),


стоимость обрабатывающего оборудования (СтоимОбр),


дата изготовления обрабатывающего оборудования (ДатаОбр),


марка транспортного оборудования (МаркаТр),


скорость перемещения транспортного оборудования (СкорТр),


габаритные размеры транспортного оборудования (ГабарТр),


грузоподъемность транспортного оборудования (ГрузТр),


масса транспортного оборудования (МассаТр),


стоимость транспортного оборудования (СтоимТр),


марка инструмента/приспособления (МаркИП),


назначение инструмента/приспособления (НазнИП),


инструмент или приспосбление (ИнсПрисп),


код ГАУ (КодГАУ), назначение ГАУ (НазнГАУ),


площадь, занимаемая ГАУ (ПлощГАУ),


код АТНСС (КодТНС),


пропускная способность АТНСС (ПропТНС),


площадь охватываемая данной АТНСС (ПлощТНС),


код ГПС (КодГПС),


назначение ГПС (НазнГПС),


наименовние цеха (НаимЦех),


код кластера (КодКласт),


частота вращения главного шпинделя в кластере (ЧастКласт),


длина обрабатываемых деталей в кластере (ДлинКласт),


диаметр обрабатываемых деталей в кластере (ДиамКласт),


процент отклонения в кластере (ОтклКласт)



























































































































КодТр КодИП КодОбр МаркаОбр ГабарОбр ДлДетОбр ДиамДетОбр

Частот


Обр


Мощ


Обр


Стоим


Обр


1 1 1 16К20 2505х1190 2000 400 1600 10 120
1 2 1 16К20 2505х1190 2000 400 1600 10 120
2 3 1 16К20 2505х1190 2000 400 1600 10 120
2 4 2 1А64 5780х2000 2800 800 750 22 150
3 5 2 1А64 5780х2000 2800 800 750 22 150
4 6 2 1А64 5780х2000 2800 800 750 22 150
5 7 3 ИРТ180 2751х2170 165 200 4000 25 1200
5 8 3 ИРТ180 2751х2170 165 200 4000 25 1200
6 9 4 2Н150 1240х810 650 50 1800 4 80
6 10 5 2М55 2445х1000 550 50 2000 4 110





































































































































ДатаОбр

Марка


Тр


СкорТр ГабарТр ГрузТр МассаТр СтоимТр МаркИП НазнИП

Инс


Присп


Код


ГАУ


11.05.1991 С4057 90 2234х1074 500 2500 800 20872-20 резец копир. да 1
11.05.1991 С4057 90 2234х1074 500 2500 800 UNC315-1 патрон нет 1
11.05.1991 0М9913 80 1900х990 250 800 350 35-В92-82 резец проход. да 1
13.08.1993 0М9913 80 1900х990 250 800 350 35-558-77 резец для канавок да 2
13.08.1993 С4234 100 2530х1074 500 3000 1000 UNC400-2 патрон нет 2
13.08.1993 С4057 90 2234х1074 500 2500 700 20872-20 резец копир. да 2
11.05.1998 0М9913 80 1900х990 250 800 300 UNC315-2 патрон нет 1
11.05.1998 0М9913 80 1900х990 250 800 300 35-558-77 резец для канавок да 1
07.01.1988 С4057 90 2234х1074 500 2500 580 UNC250-3 патрон нет 3
20.11.1984 С4057 90 2234х1074 500 2500 580 UNC250-2 патрон нет 3















































































































НазнГАУ

Площ


ГАУ


Код


ТНС


Проп


ТНС


Площ


ТНС


Код


ГПС


Назн


ГПС


Наим


Цех


Код


Класт


Обточка


дет. Колесо


80 1 700 150 1 «Колесо» Дизельный 1

Обточка


дет. Колесо


80 1 700 150 1 «Колесо» Дизельный 1

Обточка


дет. Колесо


80 2 1000 300 1 «Колесо» Дизельный 1
Обточка дет. втулку 60 2 1000 300 2 «Втулка» Дизельный 2
Обточка дет. втулку 60 2 1000 300 2 «Втулка» Дизельный 2
Обточка дет. втулку 60 2 1000 300 2 «Втулка» Дизельный 2

Обточка


дет. Колесо


80 3 800 200 1 «Колесо» Дизельный 3

Обточка


дет. Колесо


80 3 800 200 1 «Колесо» Дизельный 3
Сверление отверстий 40 3 800 200 2 «Втулка» Дизельный 4

Сверление


отверстий


40 3 800 200 2 «Втулка» Дизельный 4
























































ЧастКласт ДлинКласт ДиамКласт ОтклКласт
1600 2000 400 17
1600 2000 400 17
1600 2000 400 17
750 2800 800 17
750 2800 800 17
750 2800 800 17
4000 200 165 17
4000 200 165 17
1800 650 50 17
1800 650 50 17

Проанализируем ФЗ данного отношения:


1. Код обрабатывающего оборудования – уникален и однозначно определяет марку оборудования, стоимость оборудования, дата изготовления оборудования. В тоже время каждое обрабатывающее оборудования однозначно привязано к одному кластеру и одному ГАУ.


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


Таким образом, имеем:


КодОбр ® МаркаОбр;


КодОбр ® СтоимОбр;


КодОбр ® ДатаОбр;


КодОбр ® КодКласт;


КодОбр ® КодГАУ;


МаркаОбр ® ГабарОбр;


МаркаОбр ® ДлДетОбр;


МаркаОбр ® ДиамДетОбр;


МаркаОбр ® ЧастотОбр;


МаркаОбр ® МощОбр;


2. Если известен код транспортного оборудования, то по нему можно определить марку транспортного оборудования, стоимость транспортного оборудования. В тоже время каждое транспортное оборудование привязано к одному АТНСС.


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


Таким образом, имеем:


КодТр ® МаркаТр;


КодТр ® СтоимТр;


КодТр ® КодТНС;


МаркаТр ® СкорТр;


МаркаТр ® ГабарТр;


МаркаТр ® ГрузТр;


МаркаТр ® МассаТр;


3. Код инструмента/приспособления однозначно определяет марку инструмента/приспособления, назначение инструмента/приспособления и определяет инструмент это или приспособление. В тоже время код интрумента/приспособления однозначно определяет оборудование, к которому привязано.


Таким образом, имеем:


КодИП ® МаркИП;


КодИП ® НазнИП;


КодИП ® ИнсПрисп;


КодИП ® КодОбр;


4. Код АТНСС однозначно определяет пропускную способность и площадь, охватываемая данной АТНСС.


Таким образом, имеем:


КодТНС ® ПропТНС;


КодТНС ® ПлощТНС;


5. Код ГАУ однозначно определяет назначение и площадь, занимаемую ГАУ. В тоже время код ГАУ совместно с кодом АТНСС однозначно привязано к одному ГПС. Таким образом, несколько ГАУ и АТНСС могут быть привязано к одному ГПС.


Таким образом, имеем:


КодГАУ ® НазнГАУ;


КодГАУ ® ПлощГАУ;


КодГАУ, КодТНС ® КодГПС;


6. Код ГПС однозначно определяет назначение ГПС и наименование цеха к которому оно привязано.


Таким образом, имеем:


КодГПС ® НазнГПС;


КодГПС ® НаимЦех;


7. Код кластера однозначно процент отклонения параметров, определяет частоту вращения главного шпинделя, длину обрабатываемых деталей, диаметр обрабатываемых деталей на оборудовании принадлежащем данному кластеру.


Таким образом, имеем:


КодКласт ® ЧастКласт;


КодКласт ® ДлинКласт;


КодКласт ® ДиамКласт;


КодКласт ® ОтклКласт;


С учётом вышесказанного диаграмма ФЗ имеет вид (см. рис.).


R




В данной курсовой работе нет избыточных ФЗ, следовательно, универсальное отношение имеет минимальное покрытие.


Определяем возможные ключи и детерминанты отношения R





Возможный ключ


< КодИП, КодТр >


Детерминант


КодКласт


КодОбр


КодИП


КодТр


МаркаОбр


МаркаТр


КодГАУ


КодТНС


КодГАУ,КодТНС


КодГПС



Учитывая, что не каждый первичный ключ является детерминантом, рассматриваемое универсальное отношение не находится в нормальной форме Бойса – Кодда (НФБК) и требуется декомпозиция универсального отношения.


Для проведения декомпозиции по правилу «цепочек» используем крайнюю правую ФЗ: КодГПС ® НазнГПС, НаимЦех. В результате получим два отношения R
1
и R
2
.


R
1
ГПС
(КодГПС, НазнГПС, НаимЦех)









Возможный ключ Детерминант
<КодГПС> <КодГПС>

Т.е. отношение находится в НФБК и дальнейшая его декомпозиция не требуется (возможный ключ и детерминант совпадают):


R
2
(КодТр, КодИП, КодОбр, МаркаОбр, ГабарОбр, ДлДетОбр, ДиамДетОбр, ЧастотОбр, МощОбр, СтоимОбр, ДатаОбр, МаркаТр, СкорТр, ГабарТр, ГрузТр, МассаТр, СтоимТр, МаркИП, НазнИП, ИнсПрисп, КодГАУ, НазнГАУ, ПлощГАУ, КодТНС, ПропТНС, ПлощТНС, КодГПС, КодКласт, ЧастКласт, ДлинКласт, ДиамКласт,ОтклКласт)






Возможный ключ


< КодИП, КодТр >


Детерминант


МаркаОбр


КодОбр


КодИП


КодТр


МаркаТр


КодГАУ


КодТНС


КодГАУ,КодТНС


КодКласт



Т.к. возможный ключ не является детерминантом, необходима дальнейшая декомпозиция. Для проведения декомпозиции по правилу «цепочек» используем крайнюю правую ФЗ: КодКласт® ЧастКласт, ДлинКласт, ДиамКласт,ОтклКласт. В результате получим два отношения R
3
и R
4
:


R
3
Кластер
(КодКласт, ЧастКласт, ДлинКласт, ДиамКласт,ОтклКласт)









Возможный ключ Детерминант
<КодКласт> <КодКласт>

Т.е. отношение находится в НФБК и дальнейшая его декомпозиция не требуется (возможный ключ и детерминант совпадают).


R
4
(КодТр, КодИП, КодОбр, МаркаОбр, ГабарОбр, ДлДетОбр, ДиамДетОбр, ЧастотОбр, МощОбр, СтоимОбр, ДатаОбр, МаркаТр, СкорТр, ГабарТр, ГрузТр, МассаТр, СтоимТр, МаркИП, НазнИП, ИнсПрисп, КодГАУ, НазнГАУ, ПлощГАУ, КодТНС, ПропТНС, ПлощТНС, КодГПС, КодКласт)






Возможный ключ


< КодИП, КодТр >


Детерминант


МаркаОбр


КодОбр


КодИП


КодТр


МаркаТр


КодГАУ


КодТНС


КодГАУ,КодТНС



Т.к. возможный ключ не является детерминантом, необходима дальнейшая декомпозиция. Для проведения декомпозиции по правилу «цепочек» используем крайнюю правую ФЗ: МаркаОбр ® ГабарОбр, ДлДетОбр, ДиамДетОбр, ЧастотОбр, МощОбр. В результате получим два отношения R
5
и R
6
:


R
5
МаркаОбраб
(МаркаОбр, ГабарОбр, ДлДетОбр,ДиамДетОбр, ЧастотОбр, МощОбр)









Возможный ключ Детерминант
<МаркаОбр> <МаркаОбр>

Т.е. отношение находится в НФБК и дальнейшая его декомпозиция не требуется (возможный ключ и детерминант совпадают).


R
6
(КодТр, КодИП, КодОбр, МаркаОбр, СтоимОбр, ДатаОбр, МаркаТр, СкорТр, ГабарТр, ГрузТр, МассаТр, СтоимТр, МаркИП, НазнИП, ИнсПрисп, КодГАУ, НазнГАУ, ПлощГАУ, КодТНС, ПропТНС, ПлощТНС, КодГПС, КодКласт)






Возможный ключ


< КодИП, КодТр >


Детерминант


МаркаТр


КодОбр


КодИП


КодТр


КодГАУ


КодТНС


КодГАУ,КодТНС



Т.к. возможный ключ не является детерминантом, необходима дальнейшая декомпозиция. Для проведения декомпозиции по правилу «цепочек» используем крайнюю правую ФЗ: КодГАУ ® НазнГАУ, ПлощГАУ. В результате получим два отношения R
7
и R
8
:


R
7
ГАУ
(КодГАУ, НазнГАУ, ПлощГАУ)









Возможный ключ Детерминант
<КодГАУ> <КодГАУ>

Т.е. отношение находится в НФБК и дальнейшая его декомпозиция не требуется (возможный ключ и детерминант совпадают).


R
8
(КодТр, КодИП, КодОбр, МаркаОбр, СтоимОбр, ДатаОбр, МаркаТр, СкорТр, ГабарТр, ГрузТр, МассаТр, СтоимТр, МаркИП, НазнИП, ИнсПрисп, КодГАУ, КодТНС, ПропТНС, ПлощТНС, КодГПС, КодКласт)






Возможный ключ


< КодИП, КодТр >


Детерминант


МаркаТр


КодОбр


КодИП


КодТр


КодТНС


КодГАУ,КодТНС



Т.к. возможный ключ не является детерминантом, необходима дальнейшая декомпозиция. Для проведения декомпозиции по правилу «цепочек» используем крайнюю правую ФЗ: КодТНС ® ПропТНС, ПлощТНС. В результате получим два отношения R
9
и R
10
:


R
9
ТНС
(КодТНС, ПропТНС, ПлощТНС)









Возможный ключ Детерминант
<КодТНС> <КодТНС>

Т.е. отношение находится в НФБК и дальнейшая его декомпозиция не требуется (возможный ключ и детерминант совпадают).


R
10
(КодТр, КодИП, КодОбр, МаркаОбр, СтоимОбр, ДатаОбр, МаркаТр, СкорТр, ГабарТр, ГрузТр, МассаТр, СтоимТр, МаркИП, НазнИП, ИнсПрисп, КодГАУ, КодТНС, КодГПС, КодКласт)






Возможный ключ


< КодИП, КодТр >


Детерминант


МаркаТр


КодОбр


КодИП


КодТр


КодГАУ,КодТНС



Т.к. возможный ключ не является детерминантом, необходима дальнейшая декомпозиция. Для проведения декомпозиции по правилу «цепочек» используем крайнюю правую ФЗ: КодГАУ, КодТНС ® КодГПС. В результате получим три отношения R
11,
R
12 и
R
13
:


R
11 ГАУ-ТНС
(КодГАУ, КодТНС, КодГПС)






Возможный ключ


< КодГАУ, КодТНС >


Детерминант


<КодГАУ,КодТНС>



Т.е. отношение находится в НФБК и дальнейшая его декомпозиция не требуется (возможный ключ и детерминант совпадают).


R
12
(КодТр, МаркаТр, СкорТр, ГабарТр, ГрузТр, МассаТр, СтоимТр, КодТНС)






Возможный ключ


< КодТр >


Детерминант


МаркаТр


КодТр



Т.к. возможный ключ не является детерминантом, необходима дальнейшая декомпозиция. Для проведения декомпозиции по правилу «цепочек» используем крайнюю правую ФЗ: МаркаТр ® СкроТр, ГабарТр, ГрузТр, МассаТр. В результате получим три отношения R
14 и
R
15
:


R
14
МаркаТрансп
(МаркаТр, СкорТр, ГабарТр, ГрузТр, МассаТр)









Возможный ключ Детерминант
<МаркаТр> <МаркаТр>

Т.е. отношение находится в НФБК и дальнейшая его декомпозиция не требуется (возможный ключ и детерминант совпадают).


R
15
Транспортное оборудование
(КодТр, КодТНС, МаркаТр, СтоимТр)









Возможный ключ Детерминант
<КодТр> <КодТр>

Т.е. отношение находится в НФБК и дальнейшая его декомпозиция не требуется (возможный ключ и детерминант совпадают).


R
13
(КодИП, КодОбр, МаркаОбр, СтоимОбр, ДатаОбр, МаркИП, НазнИП, ИнсПрисп, КодГАУ, КодКласт)






Возможный ключ


< КодИП>


Детерминант


КодОбр


КодИП



Т.к. возможный ключ не является детерминантом, необходима дальнейшая декомпозиция. Для проведения декомпозиции по правилу «цепочек» используем крайнюю правую ФЗ: КодОбр ® КодКласт, МаркаОбр, КодГАУ, ДатаОбр, СтоимОбр. В результате получим три отношения R
16 и
R
17
:


R
16
Обрабатывающее оборудование
(КодОбр, МаркаОбр, КодКласт, КодГАУ, ДатаОбр, СтоимОбр)









Возможный ключ Детерминант
<КодОбр> <КодОбр>

Т.е. отношение находится в НФБК и дальнейшая его декомпозиция не требуется (возможный ключ и детерминант совпадают).


R
17
Инструмент/приспособление
(КодИП, КодОбр, МаркИП, НазнИП, ИнсПрисп)









Возможный ключ Детерминант
<КодИП> <КодИП>

Т.е. отношение находится в НФБК и дальнейшая его декомпозиция не требуется (возможный ключ и детерминант совпадают).


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


R
1
ГПС
(КодГПС, НазнГПС, НаимЦех)


R
3
Кластер
(КодКласт, ЧастКласт, ДлинКласт, ДиамКласт,ОтклКласт)


R
5
МаркаОбраб
(МаркаОбр, ГабарОбр, ДлДетОбр,ДиамДетОбр, ЧастотОбр, МощОбр)


R
7
ГАУ
(КодГАУ, НазнГАУ, ПлощГАУ)


R
9
ТНС
(КодТНС, ПропТНС, ПлощТНС)


R
11 ГАУ-ТНС
(КодГАУ, КодТНС, КодГПС)


R
14
МаркаТрансп
(МаркаТр, СкорТр, ГабарТр, ГрузТр, МассаТр)


R
15
Транспортное оборудование
(КодТр, КодТНС, МаркаТр, СтоимТр)


R
16
Обрабатывающее оборудование
(КодОбр, МаркаОбр, КодКласт, КодГАУ, ДатаОбр, СтоимОбр)


R
17
Инструмент/приспособление
(КодИП, КодОбр, МаркИП, НазнИП, ИнсПрисп)


Заполним данными эти отношения:


R
1
ГПС
(КодГПС, НазнГПС, НаимЦех)














КодГПС НазнГПС НаимЦех
1 «Колесо» Дизельный
2 «Втулка» Дизельный

R
3
Кластер
(КодКласт, ЧастКласт, ДлинКласт, ДиамКласт,ОтклКласт)
































КодКласт ЧастКласт ДлинКласт ДиамКласт ОтклКласт
1 1600 2000 400 17
2 750 2800 800 17
3 4000 200 165 17
4 1800 650 50 17

R
5
МаркаОбраб
(МаркаОбр, ГабарОбр, ДлДетОбр,ДиамДетОбр, ЧастотОбр, МощОбр)












































МаркаОбр ГабарОбр ДлДетОбр ДиамДетОбр ЧастотОбр МощОбр
16К20 2505х1190 2000 400 1600 10
1А64 5780х2000 2800 800 750 22
ИРТ180 2751х2170 165 200 4000 25
2Н150 1240х810 650 50 1800 4
2М55 2445х1000 550 50 2000 4

R
7
ГАУ
(КодГАУ, НазнГАУ, ПлощГАУ)


















КодГАУ НазнГАУ ПлощГАУ
1 Обточка дет. Колесо 80
2 Обточка дет. втулку 60
3 Сверление отверстий 40

R
9
ТНС
(КодТНС, ПропТНС, ПлощТНС)


















КодТНС ПропТНС ПлощТНС
1 700 150
2 1000 300
3 800 200

R
11 ГАУ-ТНС
(КодГАУ, КодТНС, КодГПС)


























КодГАУ КодТНС КодГПС
1 1 1
2 2 2
1 2 1
1 3 1
3 3 2

R
14
МаркаТрансп
(МаркаТр, СкорТр, ГабарТр, ГрузТр, МассаТр)


























МаркаТр СкорТр ГабарТр ГрузТр МассаТр
С4057 90 2234х1074 500 2500
0М9913 80 1900х990 250 800
С4234 100 2530х1074 500 3000

R
15
Транспортное оборудование
(КодТр, МаркаТр, СтоимТр, КодТНС)





































КодТр МаркаТр СтоимТр КодТНС
1 С4057 800 1
2 0М9913 350 2
3 С4234 1000 2
4 С4057 700 2
5 0М9913 300 3
6 С4057 580 3

R
16
Обрабатывающее оборудование
(КодОбр, МаркаОбр, ДатаОбр, СтоимОбр, КодКласт, КодГАУ)












































КодОбр МаркаОбр СтоимОбр ДатаОбр КодКласт КодГАУ
1 16К20 120 11.05.1991 1 1
2 1А64 150 13.08.1993 2 2
3 ИРТ180 1200 11.05.1998 3 1
4 2Н150 80 07.01.1988 4 3
5 2М55 110 20.11.1984 4 3

R
17
Инструмент/приспособление
(КодИП, КодОбр, МаркИП, НазнИП, ИнсПрисп)




































































КодИП КодОбр МаркИП НазнИП ИнсПрисп
1 1 20872-20 резец копир. да
2 1 UNC315-1 патрон нет
3 1 35-В92-82 резец проход. да
4 2 35-558-77 резец для канавок да
5 2 UNC400-2 патрон нет
6 2 20872-20 резец копир. да
7 3 UNC315-2 патрон нет
8 3 35-558-77 резец для канавок да
9 4 UNC250-3 патрон нет
10 5 UNC250-2 патрон нет

3.2 Проектирование базы данных с использованием
ER
- метода

На первом этапе проектирования определяются сущности и связи между ними. Представляющими интерес сущностями в рассматриваемом случае являются ГАУ, АТНСС, Кластер, Обрабатывающее оборудование, Транспортное оборудование.


Сущности ГАУ (Г) и АТНСС(А) объединены связью «Соединяется». Сущности «Обрабатывающее оборудование»(О) и ГАУ(Г) объединены связью «Входит». Сущности «Транспортное оборудование»(Т) и АТНСС(А) объединены связью «Входит». Сущности «Инструменты, приспособления» (И) и «Обрабатывающее оборудование»(О) объединены связью «Привязаны». Сущности «Обрабатывающее оборудование»(О) и Кластеры(К) объединены связью «Входит». Ролевых сущностей здесь нет.


Составим диаграммы ER– экземпляров:



Каждое ГАУ может связываться с несколькими АТНСС, каждая АТНСС может соединяться с несколькими ГАУ, поэтому степень связи N:М. Класс принадлежности обеих сущностей – обязательный.



Каждое обрабатывающее оборудование может входить только в одно ГАУ, в каждое ГАУ может входить несколько оборудований, поэтому степень связи N:1. Класс принадлежности обеих сущностей – обязательный.



Каждое транспортное оборудование может входить только в одну АТНСС, в каждую АТНСС может входить несколько оборудований, поэтому степень связи N:1. Класс принадлежности обеих сущностей – обязательный.



Каждый инструмент(приспособление) может привязывается только к одному обрабатывающему оборудованию, каждому оборудованию может быть привязано несколько инструментов(приспособлений), поэтому степень связи N:1. Класс принадлежности обеих сущностей – обязательный.



Каждое обрабатывающее оборудование может входить только в один кластер ГАУ, в каждый кластер может входить несколько оборудований, поэтому степень связи N:1. Класс принадлежности обеих сущностей – обязательный.


Составим диаграмму ER– типа:



Ключи сущностей: КодКласт, КодИП, КодОбр, КодГАУ, КодТНС, КодТр.


Переходим к генерации предварительных отношений


Рассмотрим отношения ГАУ – АТНСС. Т.к. степень связи N:М, то требуется три отношения, два из которых для сущностей, в которых первичными ключами являются ключи соответствующих сущностей и одно отношение для связи, где в качестве атрибутов используются ключи обоих сущностей.


R
1
ГАУ (КодГАУ, …)


R
2
АТНСС (КодТНС, …)


R
3
Соединение (КодГАУ, КодТНС, …)


Рассмотрим отношения «Транспортное оборудование»- АТНСС, «Обрабатывающее оборудование» - ГАУ, «Обрабатывающее оборудование» - Кластер, «Инструменты, приспособления» - «Обрабатывающее оборудование». Для каждого отношения справедливо правило генерации отношений №4. Т.к. степень связи N:1 и класс принадлежности N-связной сущности является обязательным, то достаточным является использование двух отношений, по одному - на каждую сущность, в которых первичными ключами являются ключи соответствующих сущностей. Дополнительно ключ 1-связной сущности должен быть добавлен как атрибут в отношение, отводимое N-связной сущности.


R
4
Транспортное оборудование (КодТр, КодТНС …)


R
5
АТНСС2 (КодТНС, …)


R
6
Обрабатывающее оборудование1 (КодОбр, КодГАУ …)


R
7
ГАУ2 (КодГау, …)


R
8
Обрабатывающее оборудование2 (КодОбр, КодКласт …)


R
9
Кластер (КодКласт, …)


R
10
Инструменты,приспособления (КодИП, КодОбр …)


R
11
Обрабатывающее оборудование3 (КодОбр, …)


Видно, что отношения R5 и R2 дублируют друг друга, следовательно одно отношение необходимо исключить из проектного набора. Пусть им будет R2.


Видно, что отношения R7 и R1 дублируют друг друга, следовательно одно отношение необходимо исключить из проектного набора. Пусть им будет R1.


Видно, что атрибуты отношения R11 могут быть найдены в отношениях R8 и R6, следовательно отношение R11 необходимо исключить из проектного набора.


Видно, что все атрибуты отношения R8, кроме КодКласт, могут быть найдены в отношении R6, следовательно их обоих необходимо заменить отношением, полученным операцией СОЕДИНЕНИЕ над ними:


R
12
Обрабатывающее оборудование (КодОбр, КодГАУ, КодКласт …)


Распределим оставшиеся атрибуты по отношениям:


R
1
ГАУ (КодГАУ, НазнГАУ, ПлощГАУ)


R
2
АТНСС (КодТНС, ПропТНС, ПлощТНС)


R
3
Содинение (КодГАУ, КодТНС, КодГПС, НазнГПС, НаимЦех)


R
4
Транспортное оборудование (КодТр, КодТНС, МаркаТр, СтоимТр, СкорТр, ГабарТр, ГрузТр, МассаТр)


R
9
Кластер (КодКласт, ЧастКласт, ДлинКласт, ДиамКласт,ОтклКласт )


R
10
Инструменты,приспособления (КодИП, КодОбр,МаркИП, НазнИП, ИнсПрисп)


R
12
Обрабатывающее оборудование (КодОбр, КодГАУ, КодКласт, МаркаОбр, ДатаОбр, СтоимОбр, ГабарОбр, ДлДетОбр,ДиамДетОбр, ЧастотОбр, МощОбр)


Для проверки нахождения полученных отношений в НФБК построим для каждого отношения диаграммы ФЗ и определим возможные ключи и детерминанты.


R
1
ГАУ (КодГАУ, НазнГАУ, ПлощГАУ)









Возможный ключ Детерминант
<КодГАУ> <КодГАУ>

Отношение находится в НФБК, декомпозиция не требуется.


R
2
АТНСС (КодТНС, ПропТНС, ПлощТНС)









Возможный ключ Детерминант
<КодТНС> <КодТНС>

Отношение находится в НФБК, декомпозиция не требуется.


R
4
Транспортное оборудование (КодТр, КодТНС, МаркаТр, СтоимТр, СкорТр, ГабарТр, ГрузТр, МассаТр)









Возможный ключ Детерминант
<КодТр> <КодТр> <МаркаТр>

Т.к. возможный ключ не является детерминантом, необходима дальнейшая декомпозиция. Отношение R
4
разделяем на R
13
и R
14
. Для декомпозиции по правилу «цепочек» используем крайнюю правую ФЗ: МаркаТр® СкорТр, ГабарТр, ГрузТр, МассаТр.


В результате получим два отношения:


R
13
Транспортное оборудование (КодТр, КодТНС, МаркаТр, СтоимТр)









Возможный ключ Детерминант
<КодТр> <КодТр>

Отношение находится в НФБК, декомпозиция не требуется.


R
14
МаркаТрансп (МаркаТр, СкорТр, ГабарТр, ГрузТр, МассаТр)









Возможный ключ Детерминант
<МаркаТр> <МаркаТр>

Отношение находится в НФБК, декомпозиция не требуется.


R
9
Кластер (КодКласт, ЧастКласт, ДлинКласт, ДиамКласт,ОтклКласт )









Возможный ключ Детерминант
<КодКласт> <КодКласт>

Отношение находится в НФБК, декомпозиция не требуется.


R
10
Инструменты,приспособления (КодИП, КодОбр,МаркИП, НазнИП, ИнсПрисп)









Возможный ключ Детерминант
<КодИП> <КодИП>

Отношение находится в НФБК, декомпозиция не требуется.


R
12
Обрабатывающее оборудование (КодОбр, КодГАУ, КодКласт, МаркаОбр, ДатаОбр, СтоимОбр, ГабарОбр, ДлДетОбр,ДиамДетОбр, ЧастотОбр, МощОбр)









Возможный ключ Детерминант
<КодОбр>

<КодОбр>


<МаркаОбр>



Т.к. возможный ключ не является детерминантом, необходима дальнейшая декомпозиция. Отношение R
12
разделяем на R
15
и R
16
. Для декомпозиции по правилу «цепочек» используем крайнюю правую ФЗ: МаркаОбр® ГабарОбр, ДлДетОбр, ДиамДетОбр, ЧастотОбр, МощОбр.


В результате получим два отношения:


R
15
Обрабатывающее оборудование (КодОбр, МаркаОбр, КодКласт, КодГАУ, ДатаОбр, СтоимОбр)









Возможный ключ Детерминант
<КодОбр> <КодОбр>

Отношение находится в НФБК, декомпозиция не требуется.


R
16
МаркаОбраб(МаркаОбр, ГабарОбр, ДлДетОбр,ДиамДетОбр, ЧастотОбр, МощОбр)









Возможный ключ Детерминант
<МаркаОбр> <МаркаОбр>

Отношение находится в НФБК, декомпозиция не требуется.


R
3
Соединение (КодГАУ, КодТНС, КодГПС, НазнГПС, НаимЦех)









Возможный ключ Детерминант
<КодГАУ, КодТНС>

<КодГАУ, КодТНС >


<КодГПС>



Т.к. возможный ключ не является детерминантом, необходима дальнейшая декомпозиция. Отношение R
3
разделяем на R
17
и R
18
. Для декомпозиции по правилу «цепочек» используем крайнюю правую ФЗ: КодГПС® НазнГПС, НаимЦех.


В результате получим два отношения:


R
17
ГПС (КодГПС, НазнГПС, НаимЦех)









Возможный ключ Детерминант
<КодГПС> <КодГПС>

Отношение находится в НФБК, декомпозиция не требуется.


R
18
Соединение (КодГАУ, КодТНС, КодГПС)






Возможный ключ


< КодГАУ, КодТНС >


Детерминант


<КодГАУ,КодТНС>



Отношение находится в НФБК, декомпозиция не требуется.


3.3 Проверка отношений на завершающей фазе проектирования

Результирующий набор отношений:


R
1
Инструменты,приспособления (КодИП, КодОбр,МаркИП, НазнИП, ИнсПрисп)


R
2
Обрабатывающее оборудование (КодОбр, МаркаОбр, КодКласт, КодГАУ, ДатаОбр, СтоимОбр)


R
3
Транспортное оборудование (КодТр, КодТНС, МаркаТр, СтоимТр)


R
4
МаркаОбраб(МаркаОбр, ГабарОбр, ДлДетОбр,ДиамДетОбр, ЧастотОбр, МощОбр)


R
5
МаркаТрансп (МаркаТр, СкорТр, ГабарТр, ГрузТр, МассаТр)


R
6
Кластер (КодКласт, ЧастКласт, ДлинКласт, ДиамКласт,ОтклКласт )


R
7
ГАУ (КодГАУ, НазнГАУ, ПлощГАУ)


R
8
АТНСС (КодТНС, ПропТНС, ПлощТНС)


R
9
ГПС (КодГПС, НазнГПС, НаимЦех)


R
10
ГАУ-ТНС (КодГАУ, КодТНС, КодГПС)


Проведем проверку:


1. Одна и та же ФЗ не содержится более чем в одном отношении.


2. Нет отношений, все атрибуты в которых могут быть найдены в другом отношении проектного набора, либо в отношении, полученном из других отношений проектного набора с помощью серии операций СОЕДИНЕНИЕ. Т.е. отсутствуют избыточные отношения.


3. Набор ФЗ, полученный в результате проектирования декомпозиционным методом совпадает с набором, присутствующим в минимальном покрытии, полученным перед началом декомпозиции.


3.4 Модель базы данных

При построении модели базы данных за основу выбран набор нормализованных отношений, полученный в результате проектирования ER-методом. Модель представлена на рисунке ниже. Предполагается, что количество обрабатывающего и транспортного оборудования на предприятии не более 1000 ед. и 500 ед. соответственно. В базе данных будет храниться информация о 5000 обрабатывающих и 2000 транспортных оборудованиях. Число ГАУ будет равно 200, ГПС - 30, а АТНСС – 70. Число используемых инструментов/приспособлений – 10000. Предполагается,

что число кластеров будет не более 10000.
































































































































































































Инструменты, приспособления
Ключевое поле
Тип и длина
Имя поля
+ Длинное целое КодИП
Длинное целое КодОбр
Строковый (20) МаркИП
Строковый (50) НазнИП
Логический ИнсПрисп
Обрабатывающее оборудование
Ключевое поле
Тип и длина
Имя поля
+ Длинное целое КодОбр
Строковый (20) МаркаОбр
Длинное целое КодКласт
Целое КодГАУ
Дата/Время ДатаОбр
Длинное целое СтоимОбр
Транспортное оборудование
Ключевое поле
Тип и длина
Имя поля
+ Длинное целое КодТр
Строковый (20) МаркаТр
Целое КодТНС
Длинное целое СтоимТр
МаркаОбраб
Ключевое поле
Тип и длина
Имя поля
+ Строковый (20) МаркаОбр
Строковый (20) ГабарОбр
Длинное целое ДлДетОбр
Длинное целое ДиамДетОбр
Длинное целое ЧастотОбр
Длинное целое МощОбр
МаркаТрансп
Ключевое поле
Тип и длина
Имя поля
+ Строковый (20) МаркаТр
Длинное целое СкорТр
Строковый (20) ГабарТр
Длинное целое ГрузТр
Длинное целое МассаТр
Кластер
Ключевое поле
Тип и длина
Имя поля
+ Длинное целое КодКласт
Длинное целое ЧастКласт
Длинное целое ДлинКласт
Длинное целое ДиамКласт
Целое ОтклКласт
ГАУ
Ключевое поле
Тип и длина
Имя поля
+ Целое КодГАУ
Строковый (50) НазнГАУ
Длинное целое ПлощГАУ
АТНСС
Ключевое поле
Тип и длина
Имя поля
+ Целое КодТНС
Длинное целое ПропТНС
Длинное целое ПлощТНС
ГПС
Ключевое поле
Тип и длина
Имя поля
+ Целое КодГПС
Строковый (50) НазнГПС
Строковый (50) НаимЦех
ГАУ-ТНС
Ключевое поле
Тип и длина
Имя поля
+ Целое КодГАУ
+ Целое КодТНС
Целое КодГПС

Расчет необходимого дискового пространства для хранения БД:


Инструменты,приспособления:


2+2+20+50+2=76 байт


Х 10000=742,2 Кбайт


Обрабатывающее оборудование:


2+20+2+1+8+2=35 байт


Х1000 = 34,2 Кбайт


Транспортное оборудование:


2+20+1+2=15 байт


Х500 = 7,3 Кбайт


МаркаОбраб:


20+20+2+2+2+2 = 48 байт


Х5000 = 234,4 Кбайт


МаркаТрансп:


20+2+20+2+2 = 46 байт


Х2000 = 89,8 Кбайт


Кластер:


2+2+2+2+1= 9 байт


Х10000 = 87,8 Кбайт


ГАУ:


1+50+2= 53 байт


Х200 = 10,4 Кбайт


АТНСС:


1+2+2= 5 байт


Х70 = 0,3 байт


ГПС:


1+50+50 = 101 байт


Х30 = 2,9 байт


ГАУ-ТНС:


1+1+1 = 3 байт


Х70Х200 = 41,0 Кбайт


Всего:


742,2+34,2+7,3+ 234,4+89,8+87,8+10,4+0,3+2,9+41,0 = 1250 Кбайт


ГЛАВА 4. ВЫБОР СУБД

Выбор системы управления баз данных (СУБД) представляет собой сложную многопараметрическую задачу и является одним из важных этапов при разработке приложений баз данных. Выбранный программный продукт должен удовлетворять как текущим, так и будущим потребностям предприятия, при этом следует учитывать финансовые затраты на приобретение необходимого оборудования, самой системы, разработку необходимого программного обеспечения на ее основе, а также обучение персонала.


Т.к. разработчик данной БД одновременно является и заказчиком, то было принято решение использовать для реализации данного курсового проекта СУБД MSAccess2003. Хотя эта СУБД и не является самой мощной и функционально насыщенной (к примеру СУБД MSSQLSERVERпредоставляет мощные средства резервного копирования, репликации и восстановления), но тем не менее полностью удовлетворяет требованиям данного курсового проекта. Кроме того, можно использовать встроенные функции MSAccess2003 для создания форм и отчетов, не прибегая к использованию каких-либо языков программирования, что значительно сокращает время разработки интерфейса пользователя.




ГЛАВА 5. РАЗРАБОТКА ПРИЛОЖЕНИЯ
5.1 Общая схема приложения

Для работы с БД в среде MSAccessбыло разработано приложение, имеющее следующую структуру:




По схеме видно, что приложение содержит 1 главную форму и 11 подчиненных, а также 2 отчета.


Т.к. пользователями БД являются в первую очередь инженера производственных участков, то внимание при разработке приложения было уделено таким функциям, как проверка повторяющихся табельных номеров, автоматическое создание кластеров, проверка наличия связей при удалении (например если к ГАУ привязано оборудование, то удаление ГАУ некорректно!). Кроме того, были разработаны отчеты по всему оборудованию на предприятии( обрабатывающему и транспортному с группировкой по марке оборудования и с указанием общей стоимости оборудования на предприятии. Также предусмотрена возможность получения списка оборудования, которое может заменить вышедшее из строя.


5.2 Запросы и макросы, использованные в приложении

Рассмотрим описание используемых макрогрупп в БД.


1.
Макрогруппа Добавление


Содержит макросы «
Ввод оборудования», «Ввод марки оборудования», «Ввод транспорта», « Ввод марки транспорта», «Ввод инструмента», «Ввод ГПС», «Ввод ГАУ», «Ввод ТНС», обеспечивающие ввод новой записи в соответсвющую таблицу. При этом в каждом макросе обеспечивается проверка ввода значения в каждое поле записи и проверка повторяющегося табельного номера новой записи.


В макросе «
Ввод оборудования» предусмотрено автоматическое распознование кластера, к которому следует отнести новое оборудование.


Макрос «Ввод Кластера» предназначен для ввода новой записи в таблицу «Кластер», вызывается он из макроса «
Ввод оборудования» в случае если новому оборудованию не соответствует ни один из кластеров.


2.
Макрогруппа Удаление


Содержит в себе макросы « Удаление оборудования», « Удаление марки оборудования», «Удаление транспорта», « Удаление марки транспорта», «Удаление инструмента», «Удаление ГПС», «Удаление ГАУ», «Удаление ГПС», «Удаление ТНС», «Удаление Кластера» которые используются для удаления записи в соответствующей таблице по введенному табельному номеру. В каждом макросе обеспечивается проверка ввода пустого табельного номера.


3.
Макрогруппа
autoexec


Содержит в себе макрос для автоматического запуска главной формы при открытии БД.


4.
Макрогруппа Главная


Содержит в себе макрос “Выход”, который выполняет действие - закрытие БД.


5.
Макрогруппа Обновление –
макрос «ГПС» обеспечивает обновление списка транспортного оборудования в форме «Содержимое ГПС», макрос «Замена» обеспечивает обновление списка заменяющего оборудования в форме «Замена оборудования».


6.
Макрогруппа Открыть –
выполняется из главной формы и содержит следующий макросы:


- Открыть Обр . Открытие формы «Обрабатывающее оборудование»


- Открыть Тр. Открытие формы «Транспортное оборудование»


- Открыть МаркаОбр. Открытие формы «Марка обрабатывающего оборудования»


- Открыть МаркаТр. Открытие формы «Марки транспортного оборудования»


- Открыть Кластер. Открытие формы «Кластер»


- Открыть ИП. Открытие формы «Инструменты, приспособления»


- Открыть ГПС. Открытие формы «ГПС»


- Открыть ГПСдоб. Открытие формы «ГПС-добавление»


- Открыть ГАУ. Открытие формы «ГАУ»


- Открыть ТНС. Открытие формы «АТНСС»


- Открыть замену. Открытие формы «Замена оборудования»


- Открыть отчет. Открытие отчета «Обрабатывающее оборудование»


- Открыть отчетТр. Открытие отчета «Транспортное оборудование»


Листинг программного кода макросов приведен в приложении.


Кроме макросов в приложении использованы 17 запросов, созданных при помощи встроенного конструктора запросов Access.


1.
Запрос ДЛ,Диам,Част по Марке


Определяет параметры оборудования (Длина, диаметр обрабатываемых деталей, наибольшая частота вращения гл. шпинделя) по марке оборудования.


2.
Запрос №Кластера по Марке


Определяет номера кластера по параметрам : Длина, диаметр обрабатываемых деталей и наибольшей частота вращения гл. шпинделя.


3.
Запрос №Кластеров Проверка


Определяет число записей в запросе Запрос №Кластера по Марке
.


4.
ЗАПРОС Обрабатывающее оборудование


Объединяет две таблицы: Обрабатывающее оборудование и Марка обрабатывающего оборудования.


5.
ЗАПРОС Транспортного оборудование


Объединяет две таблицы: Транспортное оборудование и Марка транспортного оборудования.


6.
ЗапросМАХ№Кластера


Определяет максимальный табельный номер в таблице «Кластер»


7.
ЗапросЧислоТНС


Определяет число записей в таблице «АТНСС». Необходимо для запроса ЗапросГауПолностьюСвязанные


8.
ЗапросОбр


Определяет марку обрабатывающего оборудования вышедшего из строя для формы «Замена оборудования»


9.
ЗапросТр


Определяет марку транспортного оборудования вышедшего из строя для формы «Замена оборудования»


10.
ЗапросЗамены Обр


Используя запрос ЗапросОбр
формирует список обрабатывающего оборудования, способное заменить вышедшее из строя.


11.
ЗапросЗамены Тр


Используя запрос ЗапросТр
формирует список обрабатывающего оборудования, способное заменить вышедшее из строя.


12.
ЗапросГауСвязанные


Для кажого ГАУ определяет число связей с АТНСС. Необходимо для формы «Содержимое ГПС» , для добавления новой записи.


13.
ЗапросГауПолностьюСвязанные


Определяет список ГАУ, связанных с каждым АТНСС. Необходимо для формы «Содержимое ГПС», для добавления новой записи.


14.
Запрос ГАУ свободных


Определяет список ГАУ, которых могут образовывать связь хоть с одной АТНСС. Необходимо для формы «Содержимое ГПС», для добавления новой записи


15.
Запрос для ГПС содержимого Подчиненный


Определяет список АТНСС связанных с выбранным ГАУ в форме «Содержимое ГПС» при добавлении новой записи.


16.
Запрос для ГПС содержимого


Определяет список АТНСС не связанных с выбранным ГАУ в форме «Содержимое ГПС» при добавлении новой записи.


17. ЗАПРОС ГАУ и АТНСС


Формирует список связанных ГАУ и АТНСС. Необходимо для формы «Содержимое ГПС»


5.3 Описание приложения
5.3.1 Функциональные возможности приложения

При помощи разработанного приложения можно:


1. Добавлять/изменять записи, характеризующие обрабатывающее оборудование, марку обрабатывающего оборудования.


2. Добавлять/изменять записи, характеризующие транспортное оборудование, марку транспортного оборудования.


3. Добавлять/изменять записи, характеризующие ГАУ.


4. Добавлять/изменять записи, характеризующие АТНСС.


5. Добавлять/изменять записи, характеризующие ГПС.


6. Добавлять/изменять записи, характеризующие Инструменты, приспособления


7. Получать отчет об обрабатывающем оборудовании.


8. Получать отчет об транспортном оборудовании.


9. Получать информацию об оборудовании способном заменить вышедшее из строя.


5.3.2 Инструкция пользователя

После запуска БД (файл «БД.mdb») на экране появится Главная форма приложения, имеющая вид:



На ней расположены несколько групп кнопок.


Кнопка “Марки обрабатывающего оборудования”
вызывает форму для изменения маркировок обрабатывающего оборудования. При нажатии левой кнопки мыши открывается следующая форма:



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


Для того чтобы добавить новую марку необходимо в нижней части окна корректно ввести все атрибуты новой марки и нажать кнопку «Добавить новую марку оборудования». Добавление марки оборудования уже существующей в списке запрещено!


Для того чтобы удалить марку необходимо в правой-нижней части окна выбрать из списка удаляемую марку и нажать кнопку «Удалить марку из списка». Внимание удаление марки оборудования используемой каким-то оборудованием запрещено!


Эта форма аналогична предыдущей. Добавление, изменение и удалени выполняется аналогично.


Внимание! Изменение атрибута «Марка оборудования» запрещено!


Кнопка “Обрабатывающее оборудование”
вызывает форму для изменения списка обрабатывающего оборудования. При нажатии левой кнопки мыши открывается форма:



Эта форма аналогична предыдущей. Добавление, изменение и удаление выполняется аналогично. Добавление оборудования с уже существующим в списке табельным номером запрещено! Удаление оборудования, к которому привязано какой-то инструмент или приспособление запрещено!


Внимание
! Изменение атрибутов касающихся марки оборудования, атрибута «№ кластера» и «Табельный номер» запрещено! («Габариты», «L», «D», «Частота», «Мощность»)


Кнопка “ГАУ”
предназначена для изменения списка ГАУ. При нажатии левой кнопки мыши открывается форма:



Эта форма аналогична предыдущей. Добавление, изменение и удаление выполняется аналогично. Добавление ГАУ с уже существующим в списке табельным номером запрещено! Удаление ГАУ, к которому привязано оборудование запрещено! Изменение атрибута «Табельный номер» запрещено!


Кнопку
“ Кластеры”
предназначена для просмотра и удаления. При нажатии левой кнопки мыши открывается форма:



Добавление и изменение записей в этой форме запрещены. Удаление выполняется также как и в предыдущих формах. Удаление кластера, к которому привязано какое-то оборудование запрещено!


Кнопка “Инструменты и приспособления”
предназначена для изменения списка инструментов/приспособлений:



Добавление, изменение и удаление выполняется стандартно. Добавление Инструмента/приспособления с уже существующим в списке табельным номером запрещено! Изменение атрибута «Табельный номер» запрещено!


Кнопка “Марки транспортного оборудования”
предназначена для изменения списка маркировок транспортного оборудования:



Добавление, изменение и удаление записей аналогично. Добавление марки оборудования уже существующей в списке запрещено! Удаление марки оборудования используемой каким-то оборудованием запрещено! Изменение атрибута «Марка оборудования» запрещено!


Кнопка “Транспортное оборудование”
предназначена для изменения списка транспортного оборудования:



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


Внимание!
Изменение атрибутов касающихся марки оборудования и «Табельный номер» запрещено! («Скорость», «Габариты», «Грузоподъемность», «Вес»)


Кнопка “АТНСС”
предназначены для изменения списка АТНСС.



Добавление, изменение и удаление выполняется аналогично. Добавление АТНСС с уже существующим в списке табельным номером запрещено! Изменение атрибута «Табельный номер» запрещено!


Кнопка “ГПС”
предназначены для изменения списка ГПС



Добавление новой связи выполняется в пустом окне. Внимание!
Вначале необходимо выбрать связываемое ГАУ, а затем АТНСС.


Изменение записей выполняется аналогично предыдущих форм. Удаление производится так: вначале выделяется удалемая связь затем нажимается кнопка Del


Кнопка “Отчет по оборудования”
предназначена для вывода отчета по транспортному или обрабатывающему оборудованию в зависимости от сделанного выбора в окне-запросе:




Отчет по обрабатывающему оборудованию:




Этот отчет можно распечатать нажав правой клавишей на отчете и выбрав дейстивие «Печать…»


Кнопка “Замена оборудования”
предназначена для вывода списка оборудования, способного заменить вышедшее из строя:



Для вывода списка необходима определить какое оборудование вышло из строя: обрабатывающее или транспортное и выбрать табельный номер вышедшего из строя оборудования.


По нажатии кнопки “Выход”
происходит закрытие БД.




ЗАКЛЮЧЕНИЕ

В результате выполнения курсовой работы была изучена методика проектирования БД, изучены декомпозиционный и ER-методы проектирования БД, а также рассмотрены такие аспекты как системный анализ предметной области и критерии выбора СУБД.


В соответствии с методикой, применяя вышеназванные методы, была разработана БД учета основного оборудования на предприятии, а также приложение для работы с ней в среде MS Access 2003.


СПИСОК ИСПОЛЬЗОВАННОЙ ЛИТЕРАТУРЫ

1.А.Ю. Гончаров Самоучитель Access 2003, Москва 2004


2.И.А.Ахмадеев, А.Х.Хайруллин, С.Ю.Юрасов Базы данных, Наб.Челны 2004


3. Конспект лекций по БД, 2010 год


4. А.С. Марков, К.Ю. Лисовский Базы Данных. Введение в теорию и методологию. Москва, 2004


ПРИЛОЖЕНИЕ.

Листинг программного кода:


Форма «Главная»


Private Sub
КнВыход
_Click()


On Error GoTo Главная_Выход_Err


DoCmd.Quit acPrompt


Главная_Выход_Exit:


Exit Sub


Главная_Выход_Err:


MsgBox Error$


Resume Главная_Выход_Exit


End Sub


Private Sub
Кнопка
11_Click()


On Error GoTo Открыть_Открыть_ИП_Err


DoCmd.OpenForm "Инструменты,приспособления", acNormal, "", "", , acNormal


Открыть_Открыть_ИП_Exit:


Exit Sub


Открыть_Открыть_ИП_Err:


MsgBoxError$


Resume Открыть_Открыть_ИП_Exit


End Sub


Private Sub
Кнопка
12_Click()


IfMsgBox("Открыть отчет по обрабатывающему оборудованию?", vbYesNo, "Отчет") = vbYesThen


DoCmd.OpenReport"Обрабатывающее оборудование", acViewPreview, "", "", acNormal


Else


DoCmd.OpenReport"Транспортное оборудование", acViewPreview, "", "", acNormal


End If


End Sub


Private Sub
Кнопка
14_Click()


On Error GoTo Открыть_Открыть_МаркаОбр_Err


DoCmd.OpenForm "Марка обрабатывающего оборудования", acNormal, "", "", , acNormal


Открыть_Открыть_МаркаОбр_Exit:


Exit Sub


Открыть_Открыть_МаркаОбр_Err:


MsgBox Error$


Resume Открыть_Открыть_МаркаОбр_Exit


End Sub


Private Sub
Кнопка
15_Click()


On Error GoTo Открыть_Открыть_МаркаТр_Err


DoCmd.OpenForm "Маркатранспортногооборудования", acNormal, "", "", , acNormal


Открыть_Открыть_МаркаТр_Exit:


Exit Sub


Открыть_Открыть_МаркаТр_Err:


MsgBoxError$


ResumeОткрыть_Открыть_МаркаТр_Exit


End
Sub


Private Sub
Кнопка
16_Click()


On Error GoTo Открыть_Открыть_ГПСдоб_Err


DoCmd.OpenForm "ГПС", acNormal, "", "", , acNormal


Открыть_Открыть_ГПСдоб_Exit:


Exit Sub


Открыть_Открыть_ГПСдоб_Err:


MsgBox Error$


ResumeОткрыть_Открыть_ГПСдоб_Exit


End Sub


Private Sub
Кнопка
17_Click()


On Error GoTo Открыть_Открыть_Кластер_Err


DoCmd.OpenForm "Кластер", acNormal, "", "", , acNormal


Открыть_Открыть_Кластер_Exit:


Exit Sub


Открыть_Открыть_Кластер_Err:


MsgBox Error$


Resume Открыть_Открыть_Кластер_Exit


End Sub


Private Sub
Кнопка
27_Click()


On Error GoTo Открыть_Открыть_замену_Err


DoCmd.OpenForm "Замена оборудования", acNormal, "", "", , acNormal


Открыть_Открыть_замену_Exit:


Exit Sub


Открыть_Открыть_замену_Err:


MsgBox Error$


Resume Открыть_Открыть_замену_Exit


End Sub


Private Sub
Кнопка
3_Click()


On Error GoTo Открыть_Открыть_Обр_Err


DoCmd.OpenForm "Обрабатывающееоборудование", acNormal, "", "", , acNormal


Открыть_Открыть_Обр_Exit:


Exit Sub


Открыть_Открыть_Обр_Err:


MsgBoxError$


Resume Открыть_Открыть_Обр_Exit


End Sub


Private Sub
Кнопка
7_Click()


On Error GoTo Открыть_Открыть_ГАУ_Err


DoCmd.OpenForm "ГАУ", acNormal, "", "", , acNormal


Открыть_Открыть_ГАУ_Exit:


Exit Sub


Открыть_Открыть_ГАУ_Err:


MsgBox Error$


Resume Открыть_Открыть_ГАУ_Exit


End Sub


Private Sub
Кнопка
8_Click()


On Error GoTo Открыть_Открыть_ТНС_Err


DoCmd.OpenForm "АТНСС", acNormal, "", "", , acNormal


Открыть_Открыть_ТНС_Exit:


Exit Sub


Открыть_Открыть_ТНС_Err:


MsgBox Error$


Resume Открыть_Открыть_ТНС_Exit


End Sub


Private Sub
Кнопка
4_Click()


On Error GoTo Открыть_Открыть_Тр_Err


DoCmd.OpenForm "Транспортноеоборудование", acNormal, "", "", , acNormal


Открыть_Открыть_Тр_Exit:


Exit Sub


Открыть_Открыть_Тр_Err:


MsgBox Error$


Resume Открыть_Открыть_Тр_Exit


End Sub


Private Sub
Кнопка
9_Click()


On Error GoTo Открыть_Открыть_ГПС_Err


DoCmd.OpenForm "ГПС-добавление", acNormal, "", "", , acNormal


Открыть_Открыть_ГПС_Exit:


Exit Sub


Открыть_Открыть_ГПС_Err:


MsgBox Error$


Resume Открыть_Открыть_ГПС_Exit


End Sub


Форма «АТНСС»


Private Sub
Кнопка
34_Click()


On Error GoTo Добавление_Ввод_ТНС_Err


With CodeContextObject


If (Eval("(Forms!Атнсс![ТНС] Is Null) Or (Forms!Атнсс![Пропуск] Is Null) Or (Forms!Атнсс![Площ] Is Null)")) Then


MsgBox "Введены не все данные!", vbExclamation, "Добавление нового АТНСС."


Exit Sub


End If


DoCmd.GoToControl "КодТНС"


DoCmd.FindRecord Val(Forms!Атнсс!ТНС), acEntire, False, , True, acCurrent, True


If (Val(Forms!Атнсс!ТНС) = Forms!Атнсс!КодТНС) Then


Beep


MsgBox "Такой номер уже существует!", vbExclamation, "Ошибка"


Exit Sub


End If


DoCmd.OpenForm "ДобавлениеАТНСС", acNormal, "", "", , acHidden


DoCmd.GoToRecord acForm, "ДобавлениеАТНСС", acNewRec


Forms!ДобавлениеАТНСС!КодТНС= Forms!Атнсс!ТНС


Forms!ДобавлениеАТНСС!ПропТНС = Forms!Атнсс!Пропуск


Forms!ДобавлениеАТНСС!ПлощТНС = Forms!Атнсс!Площ


DoCmd.Close acForm, "ДобавлениеАТНСС"


DoCmd.Requery ""


DoCmd.Requery "ТНСУдаления"


End With


Добавление_Ввод_ТНС_Exit:


Exit Sub


Добавление_Ввод_ТНС_Err:


DoCmd.Close acForm, "ДобавлениеАТНСС"


'MsgBox Error$


Resume Добавление_Ввод_ТНС_Exit


End Sub


Private Sub
Кнопка
41_Click()


On Error GoTo Удаление_Удаление_ТНС_Err


If (Eval("Forms!Атнсс!ТНСУдаленияIs Null")) Then


MsgBox "Введены не все данные!", vbExclamation, "Удаление АТНСС."


Exit Sub


End If


DoCmd.OpenForm "ДобавлениеАТНСС", acNormal, "", "", , acHidden


DoCmd.SelectObject acForm, "ДобавлениеАТНСС", False


'DoCmd.GoToControl "[КодТНС]"


DoCmd.FindRecord Forms!Атнсс!ТНСУдаления, acEntire, False, , True, acCurrent, False


DoCmd.RunCommand acCmdDeleteRecord


DoCmd.Close acForm, "ДобавлениеАТНСС"


DoCmd.Requery ""


DoCmd.Requery "ТНСУдаления"


Forms!Атнсс!ТНСУдаления = ""


Удаление_Удаление_ТНС_Exit:


Exit Sub


Удаление_Удаление_ТНС_Err:


DoCmd.Close acForm, "ДобавлениеАТНСС"


m = MsgBox("Удаление невозможно так как имеется транспортное оборудование, привязанные к данному ГАУ!", vbExclamation, "Удаление ГАУ")


'MsgBox Error$


Resume Удаление_Удаление_ТНС_Exit


End Sub


Форма
«
ГАУ
»


Private Sub
Кнопка
34_Click()


On Error GoTo Добавление_Ввод_ГАУ_Err


With CodeContextObject


If (Eval("(Forms!Гау![ГАУ] Is Null) Or (Forms!Гау![Назн] Is Null) Or (Forms!Гау![Площ] Is Null)")) Then


MsgBox "Введены не все данные!", vbExclamation, "Добавление нового ГАУ."


Exit Sub


End If


DoCmd.GoToControl "КодГАУ"


DoCmd.FindRecord Val(Forms!Гау![Гау]), acStart, False, , True, acCurrent, True


If (Val(Forms!Гау![Гау]) = (Forms!Гау![КодГАУ])) Then


Beep


MsgBox "Такой номер уже существует!", vbExclamation, "Ошибка"


Exit Sub


End If


DoCmd.OpenForm "ДобавлениеГАУ", acNormal, "", "", , acHidden


DoCmd.GoToRecord acForm, "ДобавлениеГАУ", acNewRec


Forms!ДобавлениеГАУ!КодГАУ= Forms!Гау!Гау


Forms!ДобавлениеГАУ!НазнГАУ = Forms!Гау!Назн


Forms!ДобавлениеГАУ!ПлощадьГАУ = Forms!Гау!Площ


DoCmd.CloseacForm, "ДобавлениеГАУ"


DoCmd.Requery""


DoCmd.Requery"ГАУУдаления"


EndWith


Добавление_Ввод_ГАУ_Exit:


Exit Sub


Добавление_Ввод_ГАУ_Err:


DoCmd.Close acForm, "ДобавлениеГАУ"


'MsgBox Error$


Resume Добавление_Ввод_ГАУ_Exit


End Sub


Private Sub
Кнопка
41_Click()


On Error GoTo Удаление_Удаление_ГАУ_Err


If (Eval("Forms!Гау!ГАУУдаленияIs Null")) Then


MsgBox "Введены не все данные!", vbExclamation, "Удаление ГАУ."


Exit Sub


End If


DoCmd.OpenForm "ДобавлениеГАУ", acNormal, "", "", , acHidden


DoCmd.SelectObject acForm, "ДобавлениеГАУ", False


DoCmd.GoToControl "[КодГАУ]"


DoCmd.FindRecord Forms!Гау!ГАУУдаления, acEntire, False, , True, acCurrent, False


DoCmd.RunCommand acCmdDeleteRecord


DoCmd.Close acForm, "ДобавлениеГАУ"


DoCmd.Requery ""


DoCmd.Requery "ГАУУдаления"


Forms!Гау!ГАУУдаления = ""


Удаление_Удаление_ГАУ_Exit:


Exit Sub


Удаление_Удаление_ГАУ_Err:


DoCmd.Close acForm, "ДобавлениеГАУ"


m = MsgBox("Удаление невозможно так как имеется обрабатывающее оборудование, привязанные к данному ГАУ!", vbExclamation, "Удаление ГАУ")


MsgBox Error$


Resume Удаление_Удаление_ГАУ_Exit


End Sub


Форма «Содержание ГПС»


Private Sub
КодГАУ
_Dirty(Cancel As Integer)


On Error GoTo Обновление_Err


КодТНС.Locked = False


DoCmd.Requery "КодТНС"


Обновление_Exit:


Exit Sub


Обновление_Err:


MsgBox Error$


Resume Обновление_Exit


End Sub


Private Sub
КодТНС
_Dirty(Cancel As Integer)


DoCmd.Requery "КодГау"


End Sub


Private Sub
КодТНС
_GotFocus()


If КодГАУ.Value > 0 Then Else m = MsgBox("ВведитевначалетабельныйномерГАУ!", vbInformation, "Внимание"): КодТНС.Locked = True


End Sub


Форма
«
ГПС
»


Private Sub
Кнопка
34_Click()


On Error GoTo Добавление_Ввод_ГПС_Err


With CodeContextObject


If (Eval("(Forms![ГПС-добавление]![ГПС] Is Null) Or (Forms![ГПС-добавление]![Назн] Is Null) Or (Forms![ГПС-добавление]![Цех] Is Null)")) Then


MsgBox "Введены не все данные!", vbExclamation, "Добавление нового ГПС."


Exit Sub


End If


DoCmd.GoToControl "КодГПС"


DoCmd.FindRecord Val(Forms![ГПС-добавление]!ГПС), acEntire, False, , True, acCurrent, True


If (Val(Forms![ГПС-добавление]!ГПС) = Forms![ГПС-добавление]!КодГПС) Then


Beep


MsgBox "Такой номер уже существует!", vbExclamation, "Ошибка"


Exit Sub


End If


DoCmd.OpenForm "ДобавлениеГПС", acNormal, "", "", , acHidden


DoCmd.GoToRecord acForm, "ДобавлениеГПС", acNewRec


Forms!ДобавлениеГПС!КодГПС= Forms![ГПС-добавление]!ГПС


Forms!ДобавлениеГПС!НазнГПС = Forms![ГПС-добавление]!Назн


Forms!ДобавлениеГПС!НаимЦех = Forms![ГПС-добавление]!Цех


DoCmd.Close acForm, "ДобавлениеГПС"


DoCmd.Requery ""


DoCmd.Requery "ГПСУдаления"


End With


Добавление_Ввод_ГПС_Exit:


Exit Sub


Добавление_Ввод_ГПС_Err:


DoCmd.Close acForm, "ДобавлениеГПС"


MsgBox Error$


Resume Добавление_Ввод_ГПС_Exit


End Sub


Private Sub
Кнопка
41_Click()


On Error GoTo Удаление_Удаление_ГПС_Err


If (Eval("Forms![ГПС-добавление]!ГПСУдаленияIs Null")) Then


MsgBox "Введены не все данные!", vbExclamation, "Удаление ГПС."


Exit Sub


End If


DoCmd.OpenForm "ДобавлениеГПС", acNormal, "", "", , acHidden


DoCmd.SelectObject acForm, "ДобавлениеГПС", False


DoCmd.FindRecord Forms![ГПС-добавление]!ГПСУдаления, acEntire, False, , True, acCurrent, False


DoCmd.RunCommand acCmdDeleteRecord


DoCmd.Close acForm, "ДобавлениеГПС"


DoCmd.Requery ""


DoCmd.Requery "ГПСУдаления"


Forms![ГПС-добавление]!ГПСУдаления = ""


Удаление_Удаление_ГПС_Exit:


Exit Sub


Удаление_Удаление_ГПС_Err:


DoCmd.Close acForm, "ДобавлениеГПС"


m = MsgBox("Удаление невозможно так как имеются ГАУ или АТНСС, привязанные к данному ГПС!", vbExclamation, "Удаление ГПС")


MsgBox Error$


Resume Удаление_Удаление_ГПС_Exit


End Sub


Форма «Инструменты и приспособления»


Private Sub
КнМарка
_Click()


On Error GoTo Добавление_Ввод_инструмента_Err


With CodeContextObject


If (Eval("(Forms![Инструменты,приспособления]![Код] Is Null) Or (Forms![Инструменты,приспособления]![Обр] Is Null) Or (Forms![Инструменты,приспособления]![Марка] Is Null) Or (Forms![Инструменты,приспособления]![Назн] Is Null)")) Then


MsgBox "Введены не все данные!", vbExclamation, "Добавление нового инструмента/приспособления."


Exit Sub


End If


DoCmd.GoToControl "КодИП"


DoCmd.FindRecord Val(Forms![Инструменты,приспособления]!Код), acEntire, False, , True, acCurrent, True


If (Val(Forms![Инструменты,приспособления]!Код) = Forms![Инструменты,приспособления]!КодИП) Then


Beep


MsgBox "Такой номер уже существует!", vbExclamation, "Ошибка"


Exit Sub


End If


DoCmd.OpenForm "ДобавлениеИП", acNormal, "", "", , acHidden


DoCmd.GoToRecord acForm, "ДобавлениеИП", acNewRec


Forms!ДобавлениеИП!КодИП= Forms![Инструменты,приспособления]!Код


Forms!ДобавлениеИП!КодОбр = Forms![Инструменты,приспособления]!Обр


Forms!ДобавлениеИП!МаркИП = Forms![Инструменты,приспособления]!Марка


Forms!ДобавлениеИП!НазнИП = Forms![Инструменты,приспособления]!Назн


Forms!ДобавлениеИП!ИнсПрисп = Forms![Инструменты,приспособления]!ИП


DoCmd.Close acForm, "ДобавлениеИП"


DoCmd.Requery ""


DoCmd.Requery "КодУдаления"


End With


Добавление_Ввод_инструмента_Exit:


Exit Sub


Добавление_Ввод_инструмента_Err:


DoCmd.Close acForm, "ДобавлениеИП"


'MsgBox Error$


Resume Добавление_Ввод_инструмента_Exit


End Sub


Private Sub
Кнопка
58_Click()


On Error GoTo Удаление_Удаление_инструмента_Err


If (Eval("Forms![Инструменты,приспособления]!КодУдаления Is Null")) Then


MsgBox "Введены не все данные!", vbExclamation, "Удаление инструмента/приспособления."


Exit Sub


End If


DoCmd.OpenForm "ДобавлениеИП", acNormal, "", "", , acHidden


DoCmd.SelectObject acForm, "ДобавлениеИП", False


DoCmd.FindRecord Forms![Инструменты,приспособления]!КодУдаления, acEntire, False, , True, acCurrent, False


DoCmd.RunCommand acCmdDeleteRecord


DoCmd.Close acForm, "ДобавлениеИП"


DoCmd.Requery ""


DoCmd.Requery "КодУдаления"


Forms![Инструменты,приспособления]!КодУдаления = ""


Удаление_Удаление_инструмента_Exit:


Exit Sub


Удаление_Удаление_инструмента_Err:


DoCmd.Close acForm, "ДобавлениеИП"


m = MsgBox("Неизвестная ошибка. Удаление невозможно", vbExclamation, "Удаление инструмента или приспособления")


MsgBox Error$


Resume Удаление_Удаление_инструмента_Exit


End Sub


Форма
«
Кластер
»


Private Sub
Кнопка
33_Click()


On Error GoTo Удаление_Удаление_кластера_Err


If (Eval("Forms!Кластер!КодIs Null")) Then


MsgBox "Введены не все данные!", vbExclamation, "Удаление кластера"


Exit Sub


End If


DoCmd.OpenForm "ДобавлениеКластер", acNormal, "", "", , acHidden


DoCmd.SelectObject acForm, "ДобавлениеКластер", False


DoCmd.GoToControl "[КодКласт]"


DoCmd.FindRecord Forms!Кластер!Код, acEntire, False, , True, acCurrent, False


DoCmd.RunCommand acCmdDeleteRecord


DoCmd.Close acForm, "ДобавлениеКластер"


DoCmd.Requery ""


DoCmd.Requery "Код"


Forms!Кластер!Код = ""


Удаление_Удаление_кластера_Exit:


Exit Sub


Удаление_Удаление_кластера_Err:


DoCmd.Close acForm, "ДобавлениеКластер"


m = MsgBox("Удаление кластера невозможно так как имеется оборудование, привязанное к данному кластеру!", vbExclamation, "Удаление кластера")


'MsgBox Error$


Resume Удаление_Удаление_кластера_Exit


End Sub


Форма «Марка обрабатывающего оборудования»


Private Sub КнМарка_Click()


On Error GoTo Добавление_Ввод_марки_оборудования_Err


With CodeContextObject


If (Eval("(Forms![Марка обрабатывающего оборудования]![Марка] Is Null) Or (Forms![Марка обрабатывающего оборудования]![Габарит] Is Null) Or (Forms![Марка обрабатывающего оборудования]![Длина] Is Null) Or (Forms![Марка обрабатывающего оборудования]![Диаметр] Is Null) Or (Forms![Марка обрабатывающего оборудования]![Частота] Is Null) Or (Forms![Марка обрабатывающего оборудования]![Мощность] Is Null)")) Then


MsgBox "Введены не все данные!", vbExclamation, "Добавление новой марки оборудования"


Exit Sub


End If


DoCmd.GoToControl "МаркаОбр"


DoCmd.FindRecord Val(Forms![Маркаобрабатывающегооборудования]!Марка), acEntire, False, , True, acCurrent, True


If (Forms![Марка обрабатывающего оборудования]!Марка = Forms![Марка обрабатывающего оборудования]!МаркаОбр) Then


Beep


MsgBox "Такой номер уже существует!", vbExclamation, "Ошибка"


Exit Sub


End If


DoCmd.OpenForm "ДобавлениеМаркиОбр", acNormal, "", "", , acIcon


DoCmd.GoToRecord acForm, "ДобавлениеМаркиОбр", acNewRec


Forms!ДобавлениеМаркиОбр!МаркаОбр= Forms![Маркаобрабатывающегооборудования]!Марка


Forms!ДобавлениеМаркиОбр!ГабарОбр = Forms![Марка обрабатывающего оборудования]!Габарит


Forms!ДобавлениеМаркиОбр!ДлДетОбр = Forms![Марка обрабатывающего оборудования]!Длина


Forms!ДобавлениеМаркиОбр!ДиамДетОбр = Forms![Марка обрабатывающего оборудования]!Диаметр


Forms!ДобавлениеМаркиОбр!ЧастотОбр = Forms![Марка обрабатывающего оборудования]!Частота


Forms!ДобавлениеМаркиОбр!МощОбр = Forms![Марка обрабатывающего оборудования]!Мощность


DoCmd.Close acForm, "ДобавлениеМаркиОбр"


DoCmd.Requery ""


DoCmd.Requery "МаркаУдаление"


End With


Добавление_Ввод_марки_оборудования_Exit:


Exit Sub


Добавление_Ввод_марки_оборудования_Err:


DoCmd.Close acForm, "ДобавлениеМаркиОбр"


MsgBox Error$


Resume Добавление_Ввод_марки_оборудования_Exit


End Sub


Private Sub
Кнопка
58_Click()


On Error GoTo Удаление_Удаление_марки_оборудования_Err


If (Eval("Forms![Марка обрабатывающего оборудования]!МаркаУдаление Is Null")) Then


MsgBox "Введены не все данные!", vbExclamation, "Удаление марки оборудования"


Exit Sub


End If


DoCmd.OpenForm "ДобавлениеМаркиОбр", acNormal, "", "", , acHidden


DoCmd.SelectObject acForm, "ДобавлениеМаркиОбр", False


DoCmd.GoToControl "[МаркаОбр]"


DoCmd.FindRecord Forms![Маркаобрабатывающегооборудования]!МаркаУдаление, acEntire, False, , True, acCurrent, False


DoCmd.RunCommand acCmdDeleteRecord


DoCmd.Close acForm, "ДобавлениеМаркиОбр"


DoCmd.Requery ""


DoCmd.Requery "МаркаУдаление"


Forms![Марка обрабатывающего оборудования]!МаркаУдаление = ""


End


Удаление_Удаление_марки_оборудования_Exit:


Exit Sub


Удаление_Удаление_марки_оборудования_Err:


DoCmd.Close acForm, "ДобавлениеМаркиОбр"


m = MsgBox("Удаление невозможно так как имеется оборудование использующее эту марку!", vbExclamation, "Удаление марки оборудования")


'MsgBox Error$


Resume Удаление_Удаление_марки_оборудования_Exit


End Sub


Форма «Марка транспортного оборудования»


Private Sub КнДобавить_Click()


On Error GoTo Добавление_Ввод_марки_транспорта_Err


With CodeContextObject


If (Eval("(Forms![Марка транспортного оборудования]![Марка] Is Null) Or (Forms![Марка транспортного оборудования]![Скорость] Is Null) Or (Forms![Марка транспортного оборудования]![Габарит] Is Null) Or (Forms![Марка транспортного оборудования]![Груз] Is Null) Or (Forms![Марка транспортного оборудования]![Вес] Is Null)")) Then


MsgBox "Введены не все данные!", vbExclamation, "Добавление новой марки оборудования"


Exit Sub


End If


DoCmd.GoToControl "МаркаТр"


DoCmd.FindRecord Val(Forms![Маркатранспортногооборудования]!Марка), acEntire, False, , True, acCurrent, True


If (Forms![Марка транспортного оборудования]!Марка = Forms![Марка транспортного оборудования]!МаркаТр) Then


Beep


MsgBox "Такой номер уже существует!", vbExclamation, "Ошибка"


Exit Sub


End If


DoCmd.OpenForm "ДобавлениеМаркиТр", acNormal, "", "", , acHidden


DoCmd.GoToRecord acForm, "ДобавлениеМаркиТр", acNewRec


Forms!ДобавлениеМаркиТр!МаркаТр= Forms![Маркатранспортногооборудования]!Марка


Forms!ДобавлениеМаркиТр!СкорТр = Forms![Марка транспортного оборудования]!Скорость


Forms!ДобавлениеМаркиТр!ГабарТр = Forms![Марка транспортного оборудования]!Габарит


Forms!ДобавлениеМаркиТр!ГрузТр = Forms![Марка транспортного оборудования]!Груз


Forms!ДобавлениеМаркиТр!МассаТр = Forms![Марка транспортного оборудования]!Вес


DoCmd.Close acForm, "ДобавлениеМаркиТр"


DoCmd.Requery ""


DoCmd.Requery "МаркаУдаление"


End With


Добавление_Ввод_марки_транспорта_Exit:


Exit Sub


Добавление_Ввод_марки_транспорта_Err:


DoCmd.Close acForm, "ДобавлениеМаркиТр"


MsgBox Error$


Resume Добавление_Ввод_марки_транспорта_Exit


End Sub


Private Sub
Кнопка
33_Click()


On Error GoTo Удаление_Удаление_марки_транспорта_Err


If (Eval("Forms![Марка транспортного оборудования]!МаркаУдаление Is Null")) Then


MsgBox "Введены не все данные!", vbExclamation, "Удаление марки оборудования"


Exit Sub


End If


DoCmd.OpenForm "ДобавлениеМаркиТр", acNormal, "", "", , acHidden


DoCmd.SelectObject acForm, "ДобавлениеМаркиТр", False


'DoCmd.GoToControl "[МаркаТр]"


DoCmd.FindRecord Forms![Маркатранспортногооборудования]!МаркаУдаление, acEntire, False, , True, acCurrent, False


DoCmd.RunCommand acCmdDeleteRecord


DoCmd.Close acForm, "ДобавлениеМаркиТр"


DoCmd.Requery ""


DoCmd.Requery "МаркаУдаление"


Forms![Марка транспортного оборудования]!МаркаУдаление = ""


Удаление_Удаление_марки_транспорта_Exit:


Exit Sub


Удаление_Удаление_марки_транспорта_Err:


DoCmd.Close acForm, "ДобавлениеМаркиТр"


m = MsgBox("Удаление невозможно так как имеется оборудование использующее эту марку!", vbExclamation, "Удаление марки оборудования")


MsgBox Error$


Resume Удаление_Удаление_марки_транспорта_Exit


End Sub


Форма «Обрабатывающее оборудование»


Private Sub КнДобавить_Click()


On Error GoTo Добавление_Ввод_оборудования_Err


With CodeContextObject


If (Eval("(Forms![Обрабатывающее оборудование]![Марка] Is Null) Or (Forms![Обрабатывающее оборудование]![Гау] Is Null) Or (Forms![Обрабатывающее оборудование]![Дата] Is Null) Or (Forms![Обрабатывающее оборудование]![Стоим] Is Null) Or (Forms![Обрабатывающее оборудование]![Код] Is Null)")) Then


MsgBox "Введены не все данные!", vbExclamation, "Добавление нового оборудования"


Exit Sub


End If


DoCmd.GoToControl "КодОбр"


DoCmd.FindRecord Val(Forms![Обрабатывающееоборудование]!Код), acEntire, False, , True, acCurrent, True


If (Val(Forms![Обрабатывающее оборудование]!Код) = Forms![Обрабатывающее оборудование]!КодОбр) Then


Beep


MsgBox "Такой номер уже существует!", vbExclamation, "Ошибка"


Exit Sub


End If


DoCmd.OpenForm "ДобавлениеОбр", acNormal, "", "", , acHidden


DoCmd.OpenForm "Запрос№КластеровПроверка", acNormal, "", "", , acHidden


DoCmd.OpenForm "Запрос№КластерапоМарке", acNormal, "", "", , acHidden


DoCmd.GoToRecord acForm, "ДобавлениеОбр", acNewRec


If (Forms![Запрос№КластеровПроверка]!CountКодКласт= 0) Then


DoCmd.OpenForm "ДобавлениеКластер", acNormal, "", "", , acHidden


DoCmd.GoToRecord acForm, "ДобавлениеКластер", acNewRec


DoCmd.OpenForm "ФормаЗапросМАХ№Кластера", acNormal, "", "", , acHidden


Forms!ДобавлениеКластер!КодКласт = Forms!ФормаЗапросМАХ№Кластера!MaxКодКласт + 1


Forms!ДобавлениеОбр!КодКласт = Forms!ФормаЗапросМАХ№Кластера!MaxКодКласт + 1


DoCmd.Close acForm, "ФормаЗапросМАХ№Кластера"


DoCmd.OpenForm "ФормаЗапросДЛ,Диам,ЧастМарке", acNormal, "", "",, acHidden


Forms!ДобавлениеКластер!ЧастКласт = Forms![ФормаЗапросДЛ,Диам,ЧастМарке]!ЧастотОбр


Forms!ДобавлениеКластер!ДлинКласт = Forms![ФормаЗапросДЛ,Диам,ЧастМарке]!ДлДетОбр


Forms!ДобавлениеКластер!ДиамКласт = Forms![ФормаЗапросДЛ,Диам,ЧастМарке]!ДиамДетОбр


Forms!ДобавлениеКластер!ОтклКласт = 17


DoCmd.Close acForm, "ФормаЗапросДЛ,Диам,ЧастМарке"


DoCmd.Close acForm, "ДобавлениеКластер"


End If


If (Forms![Запрос №Кластеров Проверка]!CountКодКласт = 1) Then


Forms!ДобавлениеОбр!КодКласт = Forms![Запрос №Кластера по Марке]!КодКласт


End If


DoCmd.Close acForm, "Запрос №Кластеров Проверка"


DoCmd.Close acForm, "Запрос №Кластера по Марке"


Forms!ДобавлениеОбр!КодОбр = Forms![Обрабатывающее оборудование]!Код


Forms!ДобавлениеОбр!МаркаОбр = Forms![Обрабатывающее оборудование]!Марка


Forms!ДобавлениеОбр!ДатаОбр = Forms![Обрабатывающее оборудование]!Дата


Forms!ДобавлениеОбр!СтоимОбр = Forms![Обрабатывающее оборудование]!Стоим


Forms!ДобавлениеОбр!КодГАУ = Forms![Обрабатывающее оборудование]!Гау


DoCmd.Close acForm, "ДобавлениеОбр"


DoCmd.Requery ""


DoCmd.Requery "КодУдаления"


End With


Добавление_Ввод_оборудования_Exit:


Exit Sub


Добавление_Ввод_оборудования_Err:


DoCmd.Close acForm, "ФормаЗапросМАХ№Кластера"


DoCmd.Close acForm, "ФормаЗапросДЛ,Диам,ЧастМарке"


DoCmd.Close acForm, "ДобавлениеКластер"


DoCmd.Close acForm, "Запрос №Кластеров Проверка"


DoCmd.Close acForm, "Запрос №Кластера по Марке"


DoCmd.Close acForm, "ДобавлениеОбр"


MsgBox Error$


Resume Добавление_Ввод_оборудования_Exit


End Sub


Private Sub Кнопка33_Click()


On Error GoTo Удаление_Удаление_оборудования_Err


If (Eval("Forms![Обрабатывающее оборудование]!КодУдаления Is Null")) Then


MsgBox "Введены не все данные!", vbExclamation, "Удаление оборудования"


Exit Sub


End If


DoCmd.OpenForm "ДобавлениеОбр", acNormal, "", "", , acHidden


DoCmd.SelectObject acForm, "ДобавлениеОбр", False


DoCmd.GoToControl "[КодОбр]"


DoCmd.FindRecord Forms![Обрабатывающееоборудование]!КодУдаления, acEntire, False, , True, acCurrent, False


DoCmd.RunCommand acCmdDeleteRecord


DoCmd.Close acForm, "ДобавлениеОбр"


DoCmd.Requery ""


DoCmd.Requery "КодУдаления"


Forms![Обрабатывающее оборудование]!КодУдаления = ""


Удаление_Удаление_оборудования_Exit:


Exit Sub


Удаление_Удаление_оборудования_Err:


DoCmd.Close acForm, "ДобавлениеОбр"


m = MsgBox("Удаление невозможно так как имеются инструменты или приспособления, привязанные к данному оборудованию!", vbExclamation, "Удаление оборудования")


Resume Удаление_Удаление_оборудования_Exit


End Sub


Форма «Транспортного оборудования»


Private Sub КнДобавить_Click()


On Error GoTo Добавление_Ввод_транспорта_Err


With CodeContextObject


If (Eval("(Forms![Транспортное оборудование]![Марка] Is Null) Or (Forms![Транспортное оборудование]![Атнсс] Is Null) Or (Forms![Транспортное оборудование]![Код] Is Null) Or (Forms![Транспортное оборудование]![Стоим] Is Null)")) Then


MsgBox "Введены не все данные!", vbExclamation, "Добавление нового оборудования"


Exit Sub


End If


DoCmd.GoToControl "КодТр"


DoCmd.FindRecord Val(Forms![Транспортноеоборудование]!Код), acEntire, False, , True, acCurrent, True


If (Val(Forms![Транспортное оборудование]!Код) = Forms![Транспортное оборудование]!КодТр) Then


Beep


MsgBox "Такой номер уже существует!", vbExclamation, "Ошибка"


Exit Sub


End If


DoCmd.OpenForm "ДобавлениеТр", acNormal, "", "", , acHidden


DoCmd.GoToRecord acForm, "ДобавлениеТр", acNewRec


Forms!ДобавлениеТр!КодТр= Forms![Транспортноеоборудование]!Код


Forms!ДобавлениеТр!МаркаТр = Forms![Транспортное оборудование]!Марка


Forms!ДобавлениеТр!КодТНС = Forms![Транспортное оборудование]!Атнсс


Forms!ДобавлениеТр!СтоимТр = Forms![Транспортное оборудование]!Стоим


DoCmd.Close acForm, "ДобавлениеТр"


DoCmd.Requery ""


DoCmd.Requery "КодУдаления"


End With


Добавление_Ввод_транспорта_Exit:


Exit Sub


Добавление_Ввод_транспорта_Err:


DoCmd.Close acForm, "ДобавлениеТр"


'MsgBox Error$


Resume Добавление_Ввод_транспорта_Exit


End Sub


Private Sub Кнопка33_Click()


On Error GoTo Удаление_Удаление_транспорта_Err


If (Eval("Forms![Транспортное оборудование]!КодУдаления Is Null")) Then


MsgBox "Введены не все данные!", vbExclamation, "Удаление оборудования"


Exit Sub


End If


DoCmd.OpenForm "ДобавлениеТр", acNormal, "", "", , acHidden


DoCmd.SelectObject acForm, "ДобавлениеТр", False


DoCmd.GoToControl "[КодТр]"


DoCmd.FindRecord Forms![Транспортноеоборудование]!КодУдаления, acEntire, False, True, acCurrent, False


DoCmd.RunCommand acCmdDeleteRecord


DoCmd.Close acForm, "ДобавлениеТр"


DoCmd.Requery ""


DoCmd.Requery "КодУдаления"


Forms![Транспортное оборудование]!КодУдаления = ""


Удаление_Удаление_транспорта_Exit:


Exit Sub


Удаление_Удаление_транспорта_Err:


DoCmd.Close acForm, "ДобавлениеТр"


m = MsgBox("Неизвестная ошибка. Удаление невозможно!", vbExclamation, "Удаление оборудования")


''MsgBox Error$


Resume Удаление_Удаление_транспорта_Exit


End Sub


Форма «Замена оборудования»


Private Sub Кнопка6_Click()


If [Forms]![Отчет]![Flag].Value = Null Then m = MsgBox("Введите табельный номер", vbExclamation, "Ошибка"): Exit Sub


If [Forms]![Отчет]![Flag].Value = 1 Then


ЗапросОбр


Else


ЗапросТр


End If


End Sub


Private Sub
Список
0_Click()


DoCmd.Requery "Table"


End Sub


Private Sub
Флажок
4_Click()


If Флажок4.Value Then


[Список0].RowSource = "Обрабатывающее оборудование"


Table.SourceObject = "Запрос.ЗапросЗамены Обр"


Else


[Список0].RowSource = "Транспортное оборудование"


Table.SourceObject = "Запрос.ЗапросЗамены Тр"


End If


[Список0].Value = Null


End Sub

Сохранить в соц. сетях:
Обсуждение:
comments powered by Disqus

Название реферата: Учет основного оборудования на предприятии

Слов:9425
Символов:122412
Размер:239.09 Кб.