Разработка системы управления работой компании

Автор работы: Пользователь скрыл имя, 07 Мая 2011 в 11:32, курсовая работа

Описание

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

Содержание

Введение 3
Постановка задачи 4
Перечень решаемых задач 5
Проектирование баз данных 6
Общие сведения о таблицах 8
Запросы и их применение 14
Общие сведения о формах 21
Общие сведения об отчетах 28
Разработка программных расширений для БД: макросы и модули 30
Разработка системы защиты данных, прав и ограничений по доступу 34
Заключение 35
Список использованной литературы 36

Работа состоит из  1 файл

КУРСАЧ.doc

— 801.00 Кб (Скачать документ)

  19) Сотрудники_анализ

SELECT Сотрудники.Ф,  Заказы!Кол*Заказы!Цена AS Сумма, Format([Дата],"mmmm\/yyyy") AS Месяц, Заказы.Цена, [Сумма]*Сотрудники!ПроцЗп/100 AS ЗП, Сотрудники.ПроцЗп, Заказы.Кол, Отделы.Наименование

FROM (Отделы INNER JOIN Сотрудники ON Отделы.КдОтд = Сотрудники.КдОтд) INNER JOIN Заказы ON Сотрудники.КдСтр = Заказы.КдСтр; 

20) уволенные  сотрудники

SELECT Сотрудники.КдСтр,  Сотрудники.Ф, Сотрудники.И, Сотрудники.О, Приказы.Дата

FROM Сотрудники INNER JOIN (Приказы INNER JOIN СП ON Приказы.КдДок  = СП.КдДок) ON Сотрудники.КдСтр = СП.КодСтр

WHERE (((Приказы.Наименование) Like "Об увол*"));

21) Товарная_накладная

SELECT Товар.Наименование, Заказы.Кол, Заказы.Цена, Заказы.Скидка, Заказы!Цена*(1-Заказы!Скидка/100) AS Цена_со_скидкой, Заказы.Дата, Накладные.Номер, Договор.НмДоговора, Накладные.Дата, Заказчик.Заказчик, Заказчик.УНН, Заказчик.Рас_счет, Заказчик.ОКЮЛП, Заказчик.Город, Заказчик.Улица, Заказчик.Дом, Банки.Наименование, Банки.Филиал, Банки.Город, Банки_1.Наименование, Банки_1.Филиал, Банки_1.Город, Фирма.Наименование, Фирма.УНН, Фирма.Рас_счет, Фирма.ОКЮЛП, Фирма.Город, Фирма.Улица, Фирма.Дом

FROM Фирма LEFT JOIN Банки AS Банки_1 ON Фирма.КдБанка  = Банки_1.КдБанка, Товар INNER JOIN (Приход INNER JOIN (Накладные INNER JOIN ((Банки INNER JOIN Заказчик ON Банки.КдБанка = Заказчик.КдБанка) INNER JOIN (Договор INNER JOIN Заказы ON Договор.КдДоговора = Заказы.КдДоговора) ON Заказчик.КдЗак = Заказы.КдЗак) ON Накладные.КдНакл = Заказы.КдНакл) ON Приход.КдПрх = Заказы.КдПрх) ON Товар.КдТов = Приход.КдТов

WHERE (((Договор.НмДоговора)=[Введите  номер договора]))

ORDER BY Заказы.Кол  DESC;

22) Счет-фактура

SELECT Товар.Наименование, Заказы.Кол, Заказы.Цена, Заказы.Скидка,Заказы!Цена*(1-Заказы!Скидка/100) AS Цена_со_скидкой, Договор.НмСчет_фактуры, Заказы.Дата, Заказчик.Заказчик, Заказчик.УНН, Заказчик.Рас_счет, Заказчик.ОКЮЛП, Заказчик.Город, Заказчик.Улица, Заказчик.Дом, Банки.Наименование, Банки.Филиал, Банки.Город, Банки.Улица, Банки.Дом, Банки_1.Наименование, Банки_1.Филиал, Банки_1.Город, Банки_1.Улица, Банки_1.Дом, Фирма.Наименование, Фирма.УНН, Фирма.Рас_счет, Фирма.ОКЮЛП, Фирма.Город, Фирма.Улица, Фирма.Дом

FROM Фирма LEFT JOIN Банки AS Банки_1 ON Фирма.КдБанка = Банки_1.КдБанка, Товар INNER JOIN (Приход INNER JOIN ((Банки INNER JOIN Заказчик ON Банки.КдБанка = Заказчик.КдБанка) INNER JOIN (Договор INNER JOIN Заказы ON Договор.КдДоговора = Заказы.КдДоговора) ON Заказчик.КдЗак = Заказы.КдЗак) ON Приход.КдПрх = Заказы.КдПрх) ON Товар.КдТов = Приход.КдТов

WHERE (((Договор.НмСчет_фактуры)=[Введите  номер счет-фактуры]))

ORDER BY Заказы.Кол DESC;

23) Юбилеи_жизни

SELECT Month([Дата_рождения]) AS M, Day([Дата_рождения]) AS Д, Year([Дата_рождения]) AS Г, Year(Now())-Year([Дата_рождения]) AS Лет, Сотрудники.Ф, Сотрудники.И, Сотрудники.О, Сотрудники.Должность

FROM Сотрудники LEFT JOIN уволенные_сотрудники ON Сотрудники.КдСтр  = уволенные_сотрудники.КдСтр

WHERE (((Year(Now())-Year([Дата_рождения]))=20) AND ((уволенные_сотрудники.Дата) Is Null)) OR (((Year(Now())-Year([Дата_рождения]))=25) AND ((уволенные_сотрудники.Дата) Is Null)) OR (((Year(Now())-Year([Дата_рождения]))=30) AND ((уволенные_сотрудники.Дата) Is Null)) OR (((Year(Now())-Year([Дата_рождения]))=35) AND ((уволенные_сотрудники.Дата) Is Null)) OR (((Year(Now())-Year([Дата_рождения]))=40) AND ((уволенные_сотрудники.Дата) Is Null)) OR (((Year(Now())-Year([Дата_рождения]))=45) AND ((уволенные_сотрудники.Дата) Is Null)) OR (((Year(Now())-Year([Дата_рождения]))=50) AND ((уволенные_сотрудники.Дата) Is Null)) OR (((Year(Now())-Year([Дата_рождения]))=55) AND ((уволенные_сотрудники.Дата) Is Null)) OR (((Year(Now())-Year([Дата_рождения]))=60) AND ((уволенные_сотрудники.Дата) Is Null))

ORDER BY Month([Дата_рождения]), Day([Дата_рождения]), Year([Дата_рождения]), Сотрудники.Ф, Сотрудники.И, Сотрудники.О;

24) юбилеи_работы

SELECT Month(Подчиненный_юбилеи_работы!Дата) AS M, Day(Подчиненный_юбилеи_работы!Дата) AS Д, Year(Подчиненный_юбилеи_работы!Дата) AS Г, Year(Now())-Year(Подчиненный_юбилеи_работы!Дата) AS Лет, Сотрудники.Ф, Сотрудники.И, Сотрудники.О, Сотрудники.Должность

FROM ((Сотрудники LEFT JOIN уволенные_сотрудники ON Сотрудники.КдСтр  = уволенные_сотрудники.КдСтр) LEFT JOIN Подчиненный_юбилеи_работы ON Сотрудники.КдСтр = Подчиненный_юбилеи_работы.КдСтр) INNER JOIN (Приказы INNER JOIN СП ON Приказы.КдДок = СП.КдДок) ON Сотрудники.КдСтр = СП.КодСтр

GROUP BY Month(Подчиненный_юбилеи_работы!Дата), Day(Подчиненный_юбилеи_работы!Дата), Year(Подчиненный_юбилеи_работы!Дата), Year(Now())-Year(Подчиненный_юбилеи_работы!Дата), Сотрудники.Ф, Сотрудники.И, Сотрудники.О, Сотрудники.Должность, Year(Now())-Year(Подчиненный_юбилеи_работы!Дата), уволенные_сотрудники.Дата

HAVING (((уволенные_сотрудники.Дата) Is Null) AND ((Year(Now())-Year([Подчиненный_юбилеи_работы]![Дата]))=5)) OR (((уволенные_сотрудники.Дата) Is Null) AND ((Year(Now())-Year([Подчиненный_юбилеи_работы]![Дата]))=10)) OR (((уволенные_сотрудники.Дата) Is Null) AND ((Year(Now())-Year([Подчиненный_юбилеи_работы]![Дата]))=15)) OR (((уволенные_сотрудники.Дата) Is Null) AND ((Year(Now())-Year([Подчиненный_юбилеи_работы]![Дата]))=20)) OR (((уволенные_сотрудники.Дата) Is Null) AND ((Year(Now())-Year([Подчиненный_юбилеи_работы]![Дата]))=25)) OR (((уволенные_сотрудники.Дата) Is Null) AND ((Year(Now())-Year([Подчиненный_юбилеи_работы]![Дата]))=30)) OR (((уволенные_сотрудники.Дата) Is Null) AND ((Year(Now())-Year([Подчиненный_юбилеи_работы]![Дата]))=35))

ORDER BY Month(Подчиненный_юбилеи_работы!Дата), Day(Подчиненный_юбилеи_работы!Дата), Year(Подчиненный_юбилеи_работы!Дата), Сотрудники.Ф, Сотрудники.И, Сотрудники.О;  
Общие сведения о формах

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

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

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

   Главная форма содержит  4 владки: Приветствие, Общие сведения, Бухгалтерия и Аналитика.

     На вкладке «Приветствие» изображены  основные данные о компании  и заставка в виде автомобиля (так как компания занимается  продажей автомобилей) для более дружелюбного интерфейса 

Вкладка «Общие сведения» содержит основную информацию о  деятельности компании: сведения о сотрудниках, клиентах, с которыми работает или работала компания, заказах, товарах, поставщиках, приходах и банках. Здесь же можно просмотреть информацию о предстоящих днях рождения сотрудников и их детей, о юбилейных датах работы и жизни.

В данной форме можно также внести изменения в уже хранящуюся в приложении информацию и занести новую информацию, например, просмотреть данные о сотрудниках компании, выбрав переключатель «Сотрудники» и нажав кнопку «Показать», или добавить нового сотрудника, нажав кнопку «Изменить». В формах предоставляется возможность сортировки фамилий сотрудников по убыванию (от Я до А) и возрастанию (от А до Я), а также можно просмотреть данные только на одного сотрудника.

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

 

 

Убедившись в  наличии необходимого автомобиля, менеджер переходит к оформлению заказа, выбрав «Заказы» и нажав «Изменить». В появившемся окне он вносит новые данные о заказе, из раскрывающихся списков выбираем заказчика и сотрудника, обслуживающего данный заказ (себя), а для того, чтобы определить код прихода товара нажимает кнопку «Приход-товары» и в представившейся форме узнает, когда данный автомобиль поступил на склад (код прихода).

 

При просмотре  «Дней рождений сотрудников» появляется следующая форма

Вкладка «Бухгалтерия» служит для отображения сведений о документации компании, подготовки различного рода документов, а также изменения процента заработной платы сотрудников.

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

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

Например, стоит  задача подготовить накладную №11.

При нажатии  на кнопку «Показать» появляется диалоговое окно с просьбой ввести номер накладной (Вводим 11). Результат:

Вкладка «Аналитика» служит для анализа деятельности компании. Здесь можно вывести информацию о «Самых-сымых», т.е. лидерах продаж (товары,струдники и т.д.) и узнать, например, три самых продаваемых товара месяца (название месяца вводится в диалоговое окно). Также можно проанализировать деятельность компании за интересующий вас период времени (с.. по..), просмотрев доходы, расходы, прибыль и заработную плату сотрудников, количество и сумму реализованной продукции за интересующий вас период времени.

Прибыль за период с..

по..

 

Общие сведения об отчетах

   Отчет — это гибкое и эффективное  средство для организации данных при выводе на печать. С помощью отчета имеется возможность вывести необходимые сведения в том виде, в котором требуется

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

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

   В базе данных содержаться следующие  отчеты:

    • Товарная накладная
    • Счет-фактура

  • Ведомость выдачи ЗП

Приказы:

  • Об увольнении
  • О поощрении
  • О зачислении
  • О наказании

 

Разработка пограммных расширний для база данных: макросы и модули

Макрос –  последовательность команд встроенного  в Access  языка VBA, задающихавтоматическое выполнение некоторых операций. 

 

 

Модуль –  совокупность описаний, инструкций и  процедур на языке VBA, сохраненная под общим именем.

Выполнение сортировки и фильтрации в форме:

Private Sub az_GotFocus()

  Me.подчиненная_форма.Form.OrderBy = "Ф"

  Me.подчиненная_форма.Form.OrderByOn = True

End Sub

Private Sub za_GotFocus()

Me.подчиненная_форма.Form.OrderBy = "Ф DESC"

Me.подчиненная_форма.Form.OrderByOn = True

End Sub

Private Sub Список3_AfterUpdate()

If Not IsNull(Me.Список3) Then

Me.подчиненная_форма.Form.Filter = "КдСтр = " + Str(Me.Список3)

If Me.Флажок26 Then

Me.подчиненная_форма.Form.FilterOn = True

Else

Me.подчиненная_форма.Form.FilterOn = False

End If

End If

End Sub

Private Sub список4_AfterUpdate()

If Not IsNull(Me.Список3) Then

Информация о работе Разработка системы управления работой компании