ПРОГРАММНЫЕ_СРЕДСТВА_ACCESS
.pdf
размере 13% от суммы оклада и надбавки. Для создания запроса Начисление зарплаты выполним следующие действия:
oсоздадим с помощью мастера макет запроса на выборку в режиме
простой запрос с полями: ТабНомер, Фамилия, КодПодразделения,
КодДолжности (из таб. Сотрудники), ДатаПриема, Движение (из таб.
Движение кадров), Оклад (из таб. Сотрудники);
o зададим имя запроса Начисление зарплаты, перейдем в режим конструктора;
o в поле Фамилия в строке Сортировка установим порядок – По возрастанию;
o справа от поля Оклад добавим пустой столбец: выделим столбец, соответствующий полю Оклад, вкладка Конструктор/ область
Настройка запроса/кнопка Вставить столбцы;
oв строке Поле пустого столбца откроем Построитель выражений, сформируем формулу для расчета стажа работы:
(Date() - [ДатаПриема]) / 365
Формулу можно ввести с клавиатуры, а можно воспользоваться
средствами построителя выражений - щелкнем на кнопке
, в списке папок откроем папку Функции – Встроенные функции, в категории функций Дата/Время выберем функцию Date, <Вставить>,щелкнем на
кнопке
, в списке папок откроем папку Запросы – Начисление зарплаты, из списка полей запроса выберем поле ДатаПриема,
<Вставить>, щелкнем на кнопке
, затем на кнопке
, введем с клавиатуры значение 365. В результате в окне построителя выражений должна быть записана формула:
Выражение1:(Date() - [ДатаПриема]) / 365
o вернемся в окно конструктора запросов кнопкой <ОК>, запустим запрос на выполнение, проверим, как рассчитывается стаж работы;
oпереименуем новое поле – вместо имени Выражение1 введем имя поля
Стаж
o сохраним измененный макет запроса;
oснова перейдем в режим конструктора, в свободных столбцах справа от поля Оклад аналогично сформируем еще два вычисляемых поля для расчета надбавки к окладу и налога, для расчета используем следующие выражения:
IIf ([Стаж] < 5; [Оклад]*0,1; [Оклад]*0,2) |
- надбавка |
([Надбавка] + [Оклад]) * 0,13 |
- налог; |
o в режиме конструктора заменим имена вычисляемых полей
Выражение1, Выражение2, на имена Надбавка, Налог соответственно. o для поля Стаж установим числовой формат – выделим поле, в контекстном меню выберем команду Свойства, на вкладке Общие в строке параметра Формат поля выберем Фиксированный, Число
десятичных знаков – 2;
oв поле Движение в строке Условие отбора запишем выражение is Null, для начисления зарплаты только тем сотрудникам, для которых нет
сведений о переводе или увольнении;
o сохраним макет запроса и запустим его на выполнение. Результаты – в Приложении 4.
13.Для создания запроса по движению кадров выполним следующие действия:
oсоздадим макет запроса с помощью мастера, в который выберем поля:
ТабНомер, Фамилия, Имя, Отчество (из таб. Сотрудники),
ДатаПриема, Движение, ДатаПеревода, ДатаУвольнения (из таб.
Движение кадров);
o задим имя запроса Запрос по движению, перейдем в режим конструктора;
oв конструкторе запроса в поле Движение в строке Условие отбора введем значение уволен, в строке Или введем значение переведен
(такая запись условия аналогична выражению «уволен» Or
«переведен»;
oсохраним запрос, закроем вкладку конструктора и запустим запрос из области переходов. Результаты приведены в Приложении 3.
oАналогично п.7 разработаем параметрический запрос на получение данных об уволенных или переведенных сотрудниках на основе запроса по движению.
Результаты приведены в Приложении 4.
14.Разработаем запрос Увольнение на удаление из БД записей об уволенных сотрудниках:
o с помощью мастера создаем макет запроса, структура которого содержит только одно поле Движение (из таб. Движение кадров), откроем запрос в режиме конструктора;
o |
на вкладке Конструктор щелкнем на кнопке |
для изменения типа |
|
запроса. Среди параметров запроса появится строка Удаление, |
|
|
заполненная значением Условие; |
|
o |
в строку Условие отбора введем значение «уволен»; |
|
oсохраним запрос и закроем окно конструктора, пока не запуская его на выполнение.
Обратим внимание на значок у имени запроса в области переходов
. В результате выполнения запроса из таблицы
Движение кадров будут удалены записи об уволенных сотрудниках. По условиям обеспечения целостности данных будут удалены и соответствующие записи из связанной таблицы Сотрудники. Удаленные записи автоматическому восстановлению уже не подлежат,
поэтому при запуске подобных запросов программа выводит на экран предупреждение с просьбой подтвердить операцию удаления.
15.В запросе Доплата юбилярам рассчитаем и начислим доплату сотрудникам – «юбилярам», чей возраст кратен 5;
o с помощью мастера создаем макет запроса на выборку в режиме простой запрос, структура которого содержит следующие поля:
ТабНомер, Фамилия, ДатаРождения (из таб. Сотрудники), Движение
(из таб. Движение кадров), зададим ему имя, откроем запрос в режиме крнструктора (Изменить макет запроса);
o справа от поля ДатаРождения вставим два пустых столбца для формирования вычисляемых полей Возраст и Доплата с помощью
инструмента
;
o в первом пустом столбце в строке Поле откроем построитель выражений и, используя список доступных папок и кнопки операторов, сформируем выражение для расчета возраста сотрудника (функция Fix используется для получения целой части числового значения):
Fix((Date()-[ДатаРождения])/365)
o изменим имя поля Выражение1 на имя Возраст, сохраним запрос;
o во втором пустом столбце с помощью построителя выражений аналогично запишем выражение для начисления доплаты, используя логическую функцию IIf (категория Управление)
IIf ([Возраст] Mod 5 = 0; 5000; 0)
где Mod – операция получения остатка от деления, используется для определения кратности числа;
o изменим имя поля Выражение1 на имя Доплата;
o установим для поля Доплата денежный формат – выделим поле, откроем через контекстное меню диалог Свойства, в строке формата установим Денежный;
o в поле Движение в строке Условие отбора введем выражение is Null, для начисления доплаты только сотрудникам, не имеющим отметок об увольнении и переводе, отключим вывод на экран данного поля;
o сохраним и выполним запрос, результаты – в Приложении 4;
16.Для изменения значений оклада сотрудникам в должности экономист (увеличим оклад на 1500р.) создадим запрос на обновление Обновление оклада:
o с помощью мастера создаем макет запроса, структура которого содержит два поля Оклад (из таб. Сотрудники), Должность (из таб. Должности), откроем запрос в режиме конструктора;
oна вкладке Конструктор щелкнем на кнопке
для изменения типа запроса, среди параметров запроса появится строка Обновление;
o в строку Обновление в поле Оклад введем выражение [Оклад]+1500; o в строку Условие отбора в поле Должность введем условие
«экономист»;
oсохраним запрос и закроем окно конструктора, пока не запуская его на выполнение. Обратим внимание на значок у имени запроса в области переходов
. В результате выполнения запроса в таблице Сотрудники будут изменены значения оклада в записях, соответствующих должности экономист. Внесенные в таблицу изменения, не подлежат автоматической отмене, поэтому при запуске подобных запросов программа выводит на экран предупреждение с просьбой подтвердить операцию обновления.
oдля просмотра результатов выполнения запроса необходимо открыть таблицу Сотрудники (поле Оклад).
17.Для разработки подчиненной формы, отображающей информацию о сотрудниках по наименованиям подразделений можно использовать два способа создания сложных форм.
1 способ:
o создадим главную форму для таблицы Подразделения в режиме
мастера форм - вкладка Создание/ область Формы /
/
мастер форм;
o включим в форму все поля таблицы Подразделения, выберем тип формы в один столбец, произвольный стиль оформления, зададим ей имя Списки по подразделениям;
o создадим с помощью мастера форму (ленточный вариант) со следующим составом полей: Фамилия, Имя, Отчество,
КодДолжности, Оклад (из таб. Сотрудники), зададим ей имя Список; o откроем главную форму Списки по подразделениям в режиме конструктора;
oв Области переходов выберем подчиненную форму Список (при этом она должна быть закрыта) и мышью «перетащим» ее в главную форму;
oв режиме конструктора настроим размеры подчиненной формы так, чтобы все ее поля отображались на экране;
oперейдем в режим формы
, проверим, как работает подчиненная форма: при изменении значения подразделения (строка Запись внизу главной формы) изменяется список сотрудников в подчиненной форме
(форма демонстрирует связь один ко многим между таблицами
Подразделения и Сотрудники);
oсохраним изменения, внесенные в макет формы. Результаты приведены в Приложении 3.
2 способ:
oсоздадим с помощью мастера форму со следующим составом полей:
КодПодразделения, Подразделение, Телефон (из таб. Подразделения), Фамилия, Имя, Отчество, КодДолжности, Оклад (из таб.
Сотрудники), <Далее>;
o определите вид представления данных - Подразделения, автоматически включается режим Подчиненные формы, <Далее>;
o выберем тип формы – табличный или ленточный, <Далее>; o определим стиль оформления формы, <Далее>;
o зададим имя главной формы
Списки по подразделениям, имя подчиненной формы можно оставить без изменения, откроем форму в просмотр кнопкой <Готово>;
o при необходимости настроим размер подчиненной формы в режиме конструктора.
18. В сложную форму Списки по подразделениям добавим диаграмму
окладов сотрудников:
o откроем форму Списки по подразделениям в режиме конструктора; o активизируем на ленте вкладку Конструктор;
oувеличим с помощью мыши размер окна формы и размер области данных по ширине и высоте для освобождения места под диаграмму;
oпод встроенной формой Список с помощью кнопки
в области Элементы управления вставим текстовый элемент с названием
диаграммы Диаграмма «Оклады сотрудников»;
o активизируем мастер диаграмм «Microsoft Graph» с помощью
соответствующей кнопки
;
o на свободном месте формы под названием диаграммы с помощью мыши «растянем» прямоугольник под диаграмму от левого верхнего угла к правому нижнему, на экране откроется диалоговое окно, предлагающее выбрать источник данных для диаграммы;
o выберем таблицу Сотрудники, <Далее>;
oв следующем окне Создание диаграммы выберем поля Фамилия и Оклад для отображения данных на диаграмме, <Далее>;
o в следующем окне мастера диаграмм выберем тип диаграммы –
Объемная Линейчатая, <Далее>;
oв окне, где представлен образец диаграммы, щелкнем двойным щелчком по надписи Сумма_Оклад, в открывшемся списке функций выберем значение Отсутствует, <Ок>, <Далее>;
o в следующем диалоге вновь щелкнем на кнопке <Далее>, так как в строке Поля форма и в строке Поля диаграммы по умолчанию уже установлено поле КодПодразделения (что и требуется);
o в окне названия диаграммы удалим название Сотрудники
(так как мы уже задали надпись для диаграммы ранее), <Готово>;
o перейдем в режим просмотра формы,
|
оценим |
результат; |
|
o для |
настройки |
элементов |
диаграммы: |
вновь перейдем в режим конструктора, двойным щелчком мыши активизируем диаграмму, настроим все элементы диаграммы (оси, легенду, ряды, стенки диаграммы, надписи), используя меню
Диаграмма/Параметры диаграммы, Панели инструментов и
контекстное меню каждого элемента (команда Формат элемента…).
o Сложная форма с диаграммой приведена в Приложении 3.
o используя режим Макет
можно с помощью вкладок окна свойств изменить настройки внешнего вида отдельных элементов формы (фон, границы, шрифты и т.д.)
19.Разработаем отчет Картотека на основе запроса Картотека с группировкой данных по полю Подразделение и расчетом суммарного, минимального, максимального и среднего значений Оклада. Для этого воспользуемся мастером отчетов:
o на вкладке Создание в области Отчеты щелкнем
, откывается первое окно Создание отчетов, из запроса Картотека
выберем все поля, <Далее>;
o выберем вид представления данных – Подразделения, <Далее>;
o при необходимости можно задать дополнительный уровень группировки записей внутри каждого подразделения, <Далее>;
o в диалоге сортировки в первом поле сортировки установим поле Фамилия, по возрастанию;
o используя кнопку
откроем диалог для настройки расчета итоговых значений;
