Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

ПРОГРАММНЫЕ_СРЕДСТВА_ACCESS

.pdf
Скачиваний:
27
Добавлен:
11.02.2015
Размер:
4 Мб
Скачать
☆

размере 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 используя кнопку

откроем диалог для настройки расчета итоговых значений;