Рисунок 2 – Справочник тарифов
При создании
таблицы «Табель учета отработанного
времени» необходимо выполнить
настройку свойств полей в
соответствии с требованиями
задания №3. Для этого установим
диапазон возможных значений
отработанного времени в пределах
от 1 до 8. Для вывода сообщения
об ошибке при вводе количества
отработанного времени введем
значение соответствующего свойства:
Недопустимое отработанное время! Введите
значение от 1 до 8.
При создании
таблицы «Ведомость начисления
зарплаты» необходимо выполнить
настройку свойств полей в
соответствии с требованиями
задания №4-6. Для этого необходимо
в поле «Начислено» в столбце
«Тип данных» выбрать «Вычисляемый»,
а в свойствах в строке «выражение»
прописать формулу: [Отработанное время]*[Тариф
(руб/час)].
Тогда в режиме
«Конструктор» таблица «Табель
учета отработанного времени»
и таблица «Ведомость начисления
зарплаты» имеют вид:
Рисунок 3 – Табель учета отработанного
времени
Рисунок 4 – Ведомость начисления
зарплаты
Схема данных
имеет вид (рисунок 5):
Рисунок 5 – Схема данных
- Заполнение таблиц данными.
Согласно заданию,
необходимо внести сведения о
15-ти работниках из трех цехов
в таблицу 1 и данные по пяти
разрядам в таблицу 2.
Учитывая установленные
связи между таблицами можно
при помощи раскрытия «+» увидеть
конкретных работников и из
каких они цехов, работающих по
указанному разряду (рисунок 6).
Таблица 1 – Справочник работников
Таблица 2 – Справочник тарифов
Рисунок 6 – Связь между работниками
и разрядом
- Создание формы «Табель».
Наводим курсор
на таблицу «Табель отработанного
времени», выбираем вкладку «Создание»,
пункт «Форма».
Учитывая, что по
заданию необходимо использовать
поле со списком, содержащим табельные
номера и фамилии, соответствующие таблице
1, то в свойствах поля «Табельный номер»
выбираем элемент «Поле со списком», затем
в строке «источник строк» указываем путь
выбора данных: SELECT [Справочник работников].[Табельный
номер], [Справочник работников].[Фамилия
Имя Отчество] FROM [Справочник работников].
В полях
«Отработанное время в часах»
и «Номер месяца» никаких дополнительных
условий не задаем, поскольку
эти данные будут вноситься
вручную. В режиме «конструктор» форма
«Табель учета отработанного времени»
имеет вид (рисунок 7).
Рисунок 7 - Форма «Табель учета
отработанного времени» в «конструкторе»
Рисунок 8 – Форма «Табель учета
отработанного времени»
Как видно
на рисунке 8 условие для ввода
данных с использованием поля со
списком, содержащим табельные номера
и фамилии, соответствующие таблице 1 выполняется,
данные о 15-ти работниках за пятый месяц
внесены.
По заданию
необходимо также было предусмотреть
контроль вводимого отработанного
времени и выдачу сообщений
об ошибке. Как видно на рисунке 9, это
условие также выполняется: при попытке
ввести отработанное время=10, возникает
ошибка (данное условие выполнено в первом
задании).
Рисунок 9 – Сообщение об ошибке
при вводе отработанного времени
Данные, занесенные
в форму «Табель учета отработанного времени»,
отражаются в таблице 3 «Табель учета отработанного
времени».
Таблица 3 - Табель учета
отработанного времени
- Запрос на добавление расчетных данных.
Для создания
запроса на добавление расчетных
данных в четвертую таблицу
«Ведомость начисления зарплаты»
за один месяц, номер которого
должен вводиться по запросу
необходимо сделать следующее.
Заходим на
вкладку «Создание», выбираем пункт
«Конструктор запросов». Затем выбираем
режим «Добавление» и в открывшемся
окне указываем таблицу «Ведомость
начисления зарплаты», поскольку
именно туда необходимо добавить
данные. Далее с помощью правой
клавиши мыши вызываем контекстное
меню, из которого выбираем пункт
«Добавить таблицу» и добавляем
1, 2 и 3 таблицы, поскольку именно из
внесенных в эти таблицы данных будут
браться данные для заполнения 4 таблицы.
Для того, чтобы
номер месяца вводился по запросу
необходимо в условие отбора
по полю «Номер месяца» добавить само условие: [Введите
номер месяца]. В случае, если мы введем
номер месяца, не введенный в таблицу 3,
в таблице 4 не отразятся никакие данные,
поскольку их нет. Таким образом, запрос
имеет вид (рисунок 10, 11).
Рисунок 10 – Создание запроса
на добавление расчетных данных
Рисунок 11 – Запрос номера месяца
Так, при запросе
о выводе расчетных данных
за пятый месяц, в таблице 4 отразились
все необходимые данные.
Таблица 4 – Ведомость начисления
зарплаты
Учитывая, что
для 5-7 задания необходимы данные
как минимум за два месяца,
то в форме «Табель учета
отработанного времени», добавим
также данные за шестой месяц.
- Форма для просмотра сведений об одном работнике.
Создадим таблицу
«Для формы», из которой впоследствии
будут браться данные для формы
для просмотра сведений об
одном работнике. В таблицу внесем
все поля, необходимые для главной
и подчиненной форм: Табельный
номер, Цех, Фамилия Имя Отчество,
Разряд, Тариф, отработанное время,
номер месяца, начисленную сумму (рисунок
12).
Рисунок 12 – Таблица «для формы»
в режиме «конструктор»
Наводим курсор
на таблицу «Для формы», нажимаем
вкладку «Создание», затем пункт
«форма». Учитывая, что по заданию
главная форма должна содержать
только Табельный номер, Цех, Фамилия
Имя Отчество, Разряд, Тариф, удаляем
из формы поля отработанное
время, номер месяца и начислен-
ную сумму. Для выбора работника
делаем «поле со списком», данные которого
будут браться из таблицы «справочник
работников» (рисунок 13).
Необходимо
создать следующие запросы:
- Запрос на очистку таблицы для
формы. Это необходимо для того, чтобы
результаты предыдущих запросов не сохранялись.
В противном случае информация будет
выдаваться по первой строке таблицы «Для
формы». Для этого выполняем следующие
действия: вкладка «Создание»→ конструктор
запросов→тип запроса «удаление»→добавляем
таблицу «Для формы»→в строке «поле»
выбираем «Для формы*», что означает удаление
всех полей, входящих в структуру таблицы
(рисунок 14).
- Запрос на добавление информации
о работнике по Фамилии («запрос для формы». Для этого выполняем следующие
действия: вкладка «Создание»→ конструктор
запросов→тип запроса «добавление»→добавляем
таблицы 1,2,3→
в условии отбора для поля «Фамилия
Имя Отчество» устанавливаем [Формы]![Для
формы]![Поле34] («Поле34» - это название поля
со списком на главной форме) (рисунок
15).
В режиме
«конструктор» выбираем элемент
«кнопка» и добавляем на главную
форму, добавим название кнопки
«поиск». В свойствах в вкладке
«событие» отмечаем строку «нажатие
кнопки». Далее выбираем «Внедренный
макрос» и выполняем следующее:
- «Добавить новую макрокоманду» → «Открыть запрос» → Запрос « Очистка таблицы для формы».
- «Добавить новую макрокоманду» → «Открыть запрос» → Запрос для формы.
(рисунок 16).
Рисунок 13 – Главная форма для
просмотра сведений о работнике в режиме
«конструктор»
Рисунок 14 – Запрос на очистку
таблицы для формы
Рисунок 15 – Запрос для формы
Рисунок 16 – Макрос для кнопки
«Поиск»
Создадим простую
форму с названием «Подчиненная
форма влож» с полями, необходимыми
для подчиненной формы: номер
месяца, отработанное время, начисленная
сумма (рисунок 17).
Рисунок 17 - Подчиненная форма
влож
Теперь выполняем
следующие действия: Создание→Конструктор
форм→Подчиненная форма→в Мастере
подчиненных форм выбираем добавление
«Подчиненная форма влож» (рисунок
18, 19)
Рисунок 18 – Создание подчиненной
формы
Рисунок 19 - добавление «Подчиненная
форма влож»
Возвращаемся
к главной форме. Добавляем кнопку
«Подчиненная форма». В свойствах в
вкладке «событие» отмечаем строку «нажатие
кнопки». Далее выбираем «Внедренный
макрос» и выполняем следующее: «Добавить
новую макрокоманду» → «Открыть форму»
→ «Подчиненная форма» (рисунок 20).
Рисунок 20 – Добавление кнопки
«Подчиненная форма»
Таким образом,
в форме «Для формы» можно
увидеть сведения об одном
работнике:
- Выбираем Фамилию искомого
сотрудника из списка
- Нажимаем кнопку «Поиск», высвечиваются
данные Табельный номер, Цех, Фамилия Имя
Отчество, Разряд, Тариф
- При нажатии на кнопку «Подчиненная
форма» высветится информация об отработанном
времени и начисленной сумме искомого
сотрудника по месяцам.
Рисунок 21 – Форма для просмотра
сведений об одном работнике
- Отчет «Платежная ведомость
по цеху № за месяц №»
Создадим
таблицу «Отчет», из которой впоследствии
будут браться данные для отчета
«Платежная ведомость по цеху № за месяц
№». В таблицу внесем все необходимые
поля, согласно заданию: Табельный номер,
Цех, Фамилия Имя Отчество, номер месяца,
начисленную сумму. Поля – Тариф и отработанное
время также необходимо внести, поскольку
они нужны для расчета «начисленной суммы»
(рисунок 22).
Рисунок 22 – Таблица «Отчет»
в режиме «конструктор»
Создадим форму
«Отчет». Добавим с помощью элемента
«поле» два поля «Цех» и
«Номер месяца» (элементам были
присвоены имена соответственно
«Поле42» и «Поле58») (рисунок 23).
Рисунок 23 – Форма «Отчет»
Согласно заданию,
цех и номер месяца должны
вводиться по запросу. Для этого
выполняем следующее: Создание→конструктор
запросов→режим «добавление»→добавляем
1, 2, 3 таблицу→в условиях отбора для полей
«Цех» и «Номер месяца» ставим соответственно
[Формы]![Отчет]![Поле42] и [Формы]![Отчет]![Поле58]
(рисунок 24).
Рисунок 24 - Запрос – отчет
(месяц и цех)
Необходимо
также создать запрос на очистку
таблицы «отчет». Для этого выполняем
следующие действия: вкладка «Создание»→
конструктор запросов→тип запроса
«удаление»→добавляем таблицу «Отчет»→в
строке «поле» выбираем «Отчет*»
(рисунок 25).
Рисунок 25 - Запрос на очистку
таблицы «отчет».
Наводим курсор
на таблицу «Отчет» и создаем
«Отчет», выбрав его на вкладке
«Создание». Оставляем поля: Табельный
номер, Фамилия Имя Отчество, Начислено,
а также добавляем поля, согласно заданию
«Номер по порядку» и «Подпись». Для поля
«Номер по порядку» в свойствах во вкладке
«Данные» устанавливаем условие «=1», что
предполагает нарастание итога на единицу,
тем самым показывая верный порядковый
номер. Для поля «Подпись» поле «данные»
в области данных оставляем свободным,
поскольку это поле заполняется непосредственно
самим работником вручную.
Также добавим
надписи «Платежная ведомость по цеху
№» и «за месяц». В свойствах по полю «Платежная
ведомость по цеху №» в строке «Данные»
выбираем «Цех», а в свойствах по полю
«за месяц» в строке «Данные» выбираем
«Месяц» (рисунок 26).
Рисунок 26 - Отчет
Возвращаемся
к форме «Отчет». В режиме «конструктор»
выбираем элемент «кнопка» и
добавляем с названием «Создать
платежную ведомость» на форму.
В свойствах в вкладке «событие» отмечаем
строку «нажатие кнопки». Далее выбираем
«Внедренный макрос» и выполняем следующее:
1.«Добавить новую макрокоманду»
→ «Открыть запрос» → Запрос « Очистка
таблицы отчет».
2.«Добавить новую макрокоманду»
→ «Открыть запрос» → Запрос-отчет (месяц
и цех).
- «Добавить новую макрокоманду»
→ «Открыть отчет»→ «Отчет»
(рисунок 27).
Рисунок 27 –Макрос для кнопки
«Создать платежную ведомость»
Таким образом,
в форме «Отчет» выбираем необходимый
нам Цех и нужный номер месяца,
нажимаем на кнопку «Создать
платежную ведомость» и получаем
отчет (рисунок 28).
Рисунок 28 – Отчет «Платежная
ведомость по цеху № за месяц №»
- Отчет «Итоговые данные за два
месяца».
Создадим таблицу
«Итоговые данные», из которой впоследствии
будут браться данные для отчета «Итоговые
данные за два месяца». В таблицу внесем
все необходимые поля, согласно заданию:
Цех, Разряд, номер месяца, начисленную
сумму. Поля – Тариф и отработанное время
также необходимо внести, поскольку они
нужны для расчета «начисленной суммы»
(рисунок 29).