Рис. 2. Схема данных
Рис. 3. Главная кнопочная форма
Работа с приложением начинается с открытия главной кнопочной формы. На данной форме имеются кнопки для открытия соответственных форм, а также кнопка выхода из приложения.
Рис. 4. Основная информация о сотрудниках
Основной операцией при работе с базой данных является операция просмотра / редактирования данных о сотруднике. Эта операция выполняется с помощью разработанной формы, показанной на рис. 3.
Набор вкладок «Сотрудники - Уволенные» позволяет просматривать и при необходимости корректировать данные о работающих или уволенных. Многие поля формы имеют фиксированные списки значений, маски ввода что значительно упрощает работу. Значение поля «возраст» вычисляется в одноименном запросе.
В левой части формы находится блок кнопок, позволяющих просматривать, либо редактировать частную информацию о сотрудниках. Здесь же кнопки принятия / увольнения сотрудников.
Рис. 5. Поиск сотрудников
На рисунках 5, 6, 7, 8 изображены формы поиска. Поиск может быть осуществлен по фамилии, по должности и по окладу. Нажатие кнопки выводит информацию в виде выпадающего списка. При нажатии кнопки отмена все формы поиска закрываются. Это реализовано с помощью макроса «Закрытие поиска».
Рис. 6. Поиск по фамилии
Рис. 7. Поиск по должности
Рис.8. Поиск по окладу
Рис. 9. Печать приказов
Приказы, выводимые на печать, выполнены в виде форм. Тем самым достигается большая универсальность: там, где это необходимо, поля представлены в виде полей с выпадающим списком.
SELECT DateDiff("yyyy",Сотрудники.[Дата рождения],Now()) AS Возраст, Сотрудники.[Табельный номер]
FROM Сотрудники;
SELECT Sum(DateDiff("m",[Трудовая книжка].[Дата постановки],[Трудовая книжка].[Дата увольнения])) AS Все, Int(Все/12) AS Годы , Все-Годы*12 AS Месяцы , [Трудовая книжка].[Табельный номер]
FROM [Трудовая книжка]
GROUP BY [Трудовая книжка].[Табельный номер]
HAVING (((Last([Трудовая книжка].[Дата увольнения])) Is Not Null))
UNION
SELECT DateDiff("m",Last([Трудовая книжка].[Дата постановки]),Now()) AS Все, Int(Все/12) AS Годы , Все-Годы*12 AS Месяцы , [Трудовая книжка].[Табельный номер]
FROM [Трудовая книжка]
GROUP BY [Трудовая книжка].[Табельный номер]
HAVING (((First([Трудовая книжка].[Дата увольнения])) Is Null))
UNION SELECT Sum(DateDiff("m",[Трудовая книжка].[Дата постановки],[Трудовая книжка].[Дата увольнения]))+DateDiff("m",Last([Трудовая книжка].[Дата постановки]),Now()) AS Все, Int(Все/12) AS Годы , Все-Годы*12 AS Месяцы , [Трудовая книжка].[Табельный номер]
FROM [Трудовая книжка]
GROUP BY [Трудовая книжка].[Табельный номер]
HAVING (Last([Трудовая книжка].[Дата увольнения]) Is Null And (First([Трудовая книжка].[Дата увольнения]) Is Not Null));
SELECT Sum(DateDiff("m",[Трудовая книжка].[Дата постановки],[Трудовая книжка].[Дата увольнения])) AS Все, Int(Все/12) AS Годы , Все-Годы*12 AS Месяцы , [Трудовая книжка].[Табельный номер]
FROM [Трудовая книжка]
WHERE [Трудовая книжка].[Название учреждения]="ЗАО Строительная компания"
GROUP BY [Трудовая книжка].[Табельный номер]
HAVING (((Last([Трудовая книжка].[Дата увольнения])) Is Not Null))
UNION
SELECT DateDiff("m",Last([Трудовая книжка].[Дата постановки]),Now()) AS Все, Int(Все/12) AS Годы , Все-Годы*12 AS Месяцы , [Трудовая книжка].[Табельный номер]
FROM [Трудовая книжка]
WHERE [Трудовая книжка].[Название учреждения]="ЗАО Строительная компания"
GROUP BY [Трудовая книжка].[Табельный номер]
HAVING (((First([Трудовая книжка].[Дата увольнения])) Is Null))
UNION SELECT Sum(DateDiff("m",[Трудовая книжка].[Дата постановки],[Трудовая книжка].[Дата увольнения]))+DateDiff("m",Last([Трудовая книжка].[Дата постановки]),Now()) AS Все, Int(Все/12) AS Годы , Все-Годы*12 AS Месяцы , [Трудовая книжка].[Табельный номер]
FROM [Трудовая книжка]
WHERE [Трудовая книжка].[Название учреждения]="ЗАО Строительная компания"
GROUP BY [Трудовая книжка].[Табельный номер]
HAVING (Last([Трудовая книжка].[Дата увольнения]) Is Null And (First([Трудовая книжка].[Дата увольнения]) Is Not Null));
SELECT Сотрудники.Фамилия & " " & Сотрудники.Имя & " " & Сотрудники.Отчество AS ФИО
FROM Сотрудники INNER JOIN [Трудовая книжка] ON Сотрудники.[Табельный номер]=[Трудовая книжка].[Табельный номер]
WHERE (([Трудовая книжка]!Должность="Генеральный директор"));
В ходе выполнения курсовой работы средствами СУБД Microsoft Access была разработана информационная система «Кадры», предназначенная для автоматизации работы сотрудников отдела кадров.
Концептуальная модель данных представлена диаграммой «сущность-связь». На ее основании разработана логическая структура базы данных, в ходе реализации которой задействованы механизмы обеспечения целостности данных.
Система для автоматизации работы кадровой службы предприятия имеет дружественный интерфейс пользователя и позволяет решать все задачи, сформулированные в постановке задачи на курсовую работу. Набор учетных параметров по сотрудникам, учет приема/увольнения. Большой выбор документов для внутренней отчетности и в помощь другим службам.
Учтен реальный опыт традиционной процедуры работы кадровой службы. Также в помощь пользователю предоставлены законодательные акты, которые могут пригодиться для обоснования решений в спорных вопросах
1. Хансен Г., Хансен Дж. Базы данных: разработка и управление. — М.: БИНОМ, 1999. — 704 с.
2. Дейт К. Дж. Введение в системы баз данных. — К.; М.; СПб.: Издательский дом «Вильямс», 1999. — 848 с.
3. Карпов Б. Microsoft Access 2000: справочник. — СПб: Питер, 2000. — 416 с.
4. Праг К. Н., Ирвин М. Р. Access 2000. Библия пользователя. — М.: Вильямс, 2000. — 1040 с.
5. Евдокимов В.В. и др. Экономическая информатика: Учебник для вузов / Под ред. проф. В.В. Евдокимова. — СПб.: Питер, 1997. — 592 с.
6. Хомоненко А. Д., Цыганков В. М., Мальцев М. Г. Базы данных: Учебник для высших учебных заведений / Под ред. проф. А. Д. Хомоненко. — СПб: Корона принт, 2000. — 416 с.