Рис. 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));