Применение различных фильтров в access
Лабораторная работа №11
Применение различных фильтров, добавление двух вычисляемых полей
в формы и отчеты
Создайте базу данных Зарплата, содержащую сведения о сотрудниках предприятия, а также данные по начисленной заработной плате, с расчетом налоговых отчислений и выплат сотрудникам.
Составьте и заполните таблицу Подразделения (без ключевого поля):
Следующая таблица, которую следует создать в режиме конструктора, а затем заполнить данными – Должности:
Теперь создайте таблицу Список сотрудников следующей структуры:
Введите в таблицу фамилии, имена и отчества, приведенные ниже (другие сведения из указанных в списке понадобятся в дальнейшем при заполнении таблицы Зарплата).
Таблицы Подразделения, Должности и Список сотрудников будут использованы в качестве столбцов подстановки.
Создайте таблицу Личные данные. В режиме конструктора в первой строке укажите имя поля Сотрудник, тип данных – Мастер подстановок. Источником данных этого столбца будет таблица Список сотрудников. Выберите для столбца подстановки все видимые поля, ширину столбца Идентификатор несколько уменьшите. Далее укажите, что столбец подстановки будет использовать значения столбца Идентификатор.
Программа изменила имя поля Сотрудник на Идентификатор (поэтому в дальнейшем сразу вводите в качестве имени этого поля «Идентификатор»). Закончите работу с конструктором, чтобы получилось следующее:
Заполните таблицу произвольными данными по каждому ранее сотруднику.
Создайте таблицу Паспортные данные, аналогичную предыдущей, с таким же столбцом подстановки для ввода сотрудника (Идентификатор), приведенной структуры:
Заполните таблицу произвольными данными.
Создайте таблицу Зарплата. Поле Идентификатор создавайте так же, как в таблицах Паспортные данные и Личные данные. Поля Подразделение и Должность также сделайте столбцами подстановки одноименных таблиц, но выбирайте видимым только одно поле – Подразделение или Должность, соответственно (не забудьте отрегулировать их ширину). Таблица в режиме конструктора должна выглядеть так:
Заполните сведения по каждому сотруднику в соответствии с данными, приведенными ниже.
Создайтесь запрос Полные сведения о сотрудниках. В режиме конструктора добавьте 4 таблицы, из которых будут выбираться данные для запроса: Список сотрудников, Зарплата, Личные данные и Паспортные данные. Access автоматически установит связи между таблицами.
Включите в запрос следующие данные (условия отбора пока не указывайте):
Поле |
Имя таблицы |
Сортировка |
Фамилия |
Список сотрудников |
По возрастанию |
Имя |
Список сотрудников |
|
Отчество |
Список сотрудников |
|
Подразделение |
Зарплата |
|
Должность |
Зарплата |
|
Дата рождения |
Личные данные |
|
Телефон |
Личные данные |
|
Образование |
Личные данные |
|
Количество детей |
Личные данные |
|
Серия паспорта |
Паспортные данные |
|
Номер паспорта |
Паспортные данные |
|
Паспорт выдан |
Паспортные данные |
|
Дата выдачи |
Паспортные данные |
|
Код выдавшего подразделения |
Паспортные данные |
Просмотрите свой запрос.
На примере этого запроса рассмотрите работу с различными фильтрами.
Для создания фильтра по выделенному фрагменту надо вывести на экран окно таблицы (в нашем случае – запроса) или окно формы, на основе которой требуется создать фильтр, и выделить значение, которое необходимо найти в любой из записей, где бы оно ни находилось. Затем выбрать в меню команду Записи – Фильтр – Фильтр по выделенному или щелкнуть по кнопке Фильтр по выделенному в стандартной панели инструментов. Можно также использовать соответствующую команду в контекстном меню выбранного поля.
Отобразим с помощью такого фильтра записи по сотрудникам Бригады №1.
Для этого в столбце Подразделение щелкните мышкой по слову Бригада №1 и нажмите кнопку Фильтр по выделенному на панели инструментов. Теперь запрос содержит только сведения о сотрудниках этого подразделения.
Для отмены фильтра нажмите на панели кнопку Удалить фильтр.
Такого же результата отбора записей можно добиться, используя поле Фильтр для. Чтобы применить его, щелкните в любой записи поля Подразделение, вызовите контекстное меню, выберите в нем пункт Фильтр для и введите с клавиатуры условие фильтрации, например, Бухгалтерия, Отменить фильтр.
Фильтр исключая выделенный фрагмент. Можно также вывести на экран все записи, кроме тех, что включают в себя выделенное значение.
Выделите значение Бригадир в поле Должность, вызовите контекстное меню (правой кнопкой мыши) и выберите в нем пункт Исключить выделенное.
Фильтр по выделенному фрагменту с несколькими условиями отбора. После применения фильтра по выделенному фрагменту или фильтра исключая выделенное можно еще больше сузить диапазон выводимых на экран записей, применяя рассмотренные выше способы несколько раз для оставшихся записей.
Щелкните в поле Подразделение по значению Бригада №1, примените команду Фильтр по выделенному. На экране должны остаться только сведения о работниках первой бригады, кроме бригадира.
Расширенный фильтр/Сортировка. Фильтр может быть создан и способами, используемыми при создании запросов. Отмените примененный ранее фильтр. Выберите в меню Записи команду Фильтр – Расширенный фильтр. Окно фильтра идентично окну запроса. Сформируйте его следующим способом:
Для сохранения фильтра нажмите кнопку Сохранить как запрос на панели инструментов (в отличие от запросов, при простом закрытии фильтра его сохранение не будет предлагаться).
Назовите его Трактористы Бригады №1, откройте, развернув соответствующий пункт в разделе Запросы базы данных.
Создайте теперь запрос Начисление зарплаты. Источником данных будут служить таблицы Список сотрудников и Зарплата. Включите в него следующие поля:
Поле |
Имя таблицы |
Сортировка |
Фамилия |
Список сотрудников |
По возрастанию |
Имя |
Список сотрудников |
|
Отчество |
Список сотрудников |
|
Подразделение |
Зарплата |
|
Должность |
Зарплата |
|
Начислено |
Зарплата |
Просмотрите и закройте запрос. Создайте по этому запросу Автоформу.
Добавим в автоформу 2 поля, одно из которых будет вычислять сумму налоговых выплат (13%) с начисленной зарплаты сотрудника, а другой – сумму, предназначенную непосредственно для выдачи сотруднику.
Откройте форму Начисление зарплаты в режиме конструктора. Растяните ее вниз, чтобы можно было добавить два новых поля. Добавьте новое поле, как это было описано ранее. Откройте окно свойств правой части поля, на вкладке Другие впишите его имя – Налог (это нужно для ссылки на вычисленное значение в дальнейших расчетах), перейдите на вкладку Данные и откройте Построитель выражений. Введите выражение, используя названия полей, кнопки и ручной ввод цифр:
=[Начислено]*13/100
На вкладке Макет выберите из списка форматов поля формат Денежный.
В качестве подписи поля (левая часть) наберите Налоги.
Ниже формы добавьте еще одно поле. В окне свойств (имя можно не исправлять) с помощью построителя выражений введите выражение:
=[Начислено] – [Налог]
Формат поля – снова Денежный. Подпись поля измените на К выдаче. В режиме формы у вас должно получиться примерно следующее:
Создайте отчет Выдача зарплаты по запросу Начисление зарплаты. Включите в отчет все имеющиеся в запросе поля. Добавьте в отчет уровни группировки: сначала по полю Подразделение, затем – Должность. Произведите сортировку по полю Фамилия, здесь же внизу щелкните по кнопке Итоги. В окне итоговых вычислений отметьте галочкой Sum. Закончите и просмотрите отчет.
Откройте отчет в режиме конструктора. Добавьте в него вычисляемое поле с подписью К выдаче. Введите выражение, которое будет объединять обе использованные ранее формулы:
=[Начислено] – [Начислено]*13/100
Просмотрите отчет, в случае необходимости отредактируйте его в режиме конструктора.