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

Informatika_Access_kursovik_2013 NEW

.pdf
Скачиваний:
8
Добавлен:
21.03.2016
Размер:
1.14 Mб
Скачать

берутся прямо в момент ее отображения. Возможен выбор данных из нескольких таблиц, в том числе и виртуальных, полученных в результате выполнения других запросов.

Кроме запросов на выборку, существуют запросы на изменение, удаление и добавление данных.

Запросы хранятся на листе БД Запросы. Их также можно открыть (выполнить), редактировать и создавать.

Задание

Создайте следующие простые запросы на выборку.

1.Табельные номера, фамилии и оклады всех работников.

2.Данные о величине всех окладов для одной из должностей.

3.Данные о величине всех окладов для вводимой оператором должности.

4.Данные о должностях женщин.

5.Данные о районах проживания высокооплачиваемых мужчин.

6.Данные об оплате директоров по убыванию этой оплаты. Разработайте следующие запросы на выборку с вычислениями.

7.Расчет премий всем сотрудникам в размере 50% оклада.

8.Расчет выплат женщинам, имеющим детей, в размере 20% от оклада на каждого ребенка.

9.Создать виртуальное поле Планирование семьи, в котором количество детей для семейных сотрудников будет увеличено на 1.

10.В виртуальном поле Стаж работы отобразить значение 1.5 для тех, кто служил в армии.

11.Рассчитать Надбавку к зарплате до величины прожиточного ми-

нимума (для тех, у кого установленный оклад меньше этой величины).

Создайте следующие запросы на выборку с группировкой:

12.Суммы зарплат по всем районам.

13.Суммы зарплат по всем подразделениям.

14.Средняя зарплата всех работников.

15.Средняя зарплата мужчин и женщин (начиная с женщин).

16.Средняя зарплата мужчин и женщин по каждой должности.

17.Суммы зарплат по каждой должности.

18.Количество работников в каждом из подразделений.

19.Перечень всех подразделений.

20.Количество работников, проживающих в районе, название которого вводится оператором.

21.Количество работников, не служивших в армии.

22.Количество работников, родившихся в заданном году.

21

23.Количество работников, не имеющих контактного телефона.

24.Средний оклад работников, проживающих в одном из районов.

25.Средний оклад работников, имеющих не менее троих детей.

26.Средний оклад работников заданного возраста, например, от 20 до 30 лет; диапазоны возраста вводятся оператором.

27.Сумму окладов мужчин, служивших в армии.

28.Общее количество детей работников, проживающих в некотором районе.

29.Общую сумму окладов всех работников фирмы, общее число работников и общий средний оклад.

30.Количество работников, имеющих адрес почты @mail.ru.

31.Количество работников, имеющих адрес почты не @mail.ru.

32.Количество студентов по районам.

33.Выведите стаж работы каждого работника в целых годах и опре-

делите количество работников по каждому количеству лет работы. Создайте следующие запросы на обновление и выполните их:

34.Увеличить всем сотрудникам зарплату в 1,45 раза.

35.Добавить всем по 3 рубля.

36.Переименовать заданное название района.

37.Изменить заданный табельный номер, добавив в конец "1".

38.Тем, кто родился до 1965 года, добавить по 1000 рублей;

39.Добавить к номеру телефона строку "+7812".

40.Записать в поле номера телефона слово «нет» для тех сотрудников, где это поле не заполнено.

Постройте следующие запросы на удаление:

41.Удалить записи о сотрудниках, родившихся до 7.11.1917 года.

42.Удалить все записи, имеющие пустое значение в поле ФИО (условие в запросе имеет вид: ="" Or Is Null).

43.Удалить сотрудников, Оклад которых меньше 10000 рублей.

44.Удалить записи, в которых отсутствуют номера документов.

45.Очистить таблицу от записей, в которых встречаются должность охранник.

46.Удалите начальные и конечные пробелы из поля ФИО.

Порядок выполнения работы

Простые запросы

Работа с запросами на выборку.

Для создания запросов на вкладке Создание в поле Запросы выберите Конструктор запросов. Откроется новый запрос по умолчанию названный «Запрос1».

22

Выберите для запроса таблицу и закройте окно выбора таблиц. Заполните «заявку на запрос». Для того, чтобы просмотреть текущие

результаты запроса, на вкладке Главная выберите кнопку Режим таблицы. Для продолжения работы в Конструкторе выбирайте там же Режим конструктора.

Задание условий выборки полностью аналогично заданию условий фильтра.

Создав запрос, закройте его. Будет предложено сохранить запрос. Задайте содержательное имя, например, Фамилии и табельные номера.

Запросы с параметром

Для выполнения запросов, включающих условия типа «…для заданного района…» следует ввести в условие некоторую новую переменную. Условие выбора приобретет вид, показанный на рис.1.7:

Рис. 1.7. Задание новой переменной

Использованием квадратных скобок Вы указываете Access, что НужныйРайон – не константа-образец для поиска, а переменная.

При выполнении этого запроса эта переменная найдена не будет, так как нигде вAccess ей не присваивается никакого значения.

В этом случае при выполнении запроса Access спросит у оператора, чему должно быть равно значение переменной НужныйРайон. Это будет сделано с помощью диалогового окна. Оно изображено на рис.1.8.

Название района, которое Вы введете в это поле, и будет образцом для поиска.

23

Рис. 1.8. Диалоговое окно ввода параметра запроса

Внимание. Если в Вашем запросе имеется ошибка и какой-то параметр по разным причинам не может быть определен, то выводится аналогичное сообщение.

Предложенный способ все же не является наилучшим, так как Вы могли забыть несколько букв образца для поиска. Запрос станет более гибким, если в ячейку Условие отбора (см. рис. 1.7.) ввести выражение

Like [НужныйРайон].

Тогдав полевводаможнобудетвводитьшаблондляпоиска, например:

Калин[ие]нский

Такая запись означает, что будут выведены записи и о «Калининском», и о «Калиненском» районах (на случай грамматической ошибки, сделанной при вводе данных). Есть и другие возможности работы с шаблонами. Например, запись

Калин[!е]*

будет означать запрос на выборку записей, где районы начинаются с Калин и имеют на шестом месте любую букву, кроме е. Звездочка заменяет любое количество любых символов, в том числе и ни одного.

Для еще большей гибкости и простоты работы можно ввести в условие отбора выражение

Like "*" & [НужныйРайон] & "*".

Эта запись означает, что сравнение будет производиться со строкой, "склеенной" из звездочки, введенного Вами набора символов и еще одной звездочки. Для указания на необходимость склейки используются символы &. Так как звездочка заменяет любое число любых символов, Вы сможете вводить любой фрагмент названия района.

На рис. 1.7 Вы видите строку Вывод на экран. Ее роль можно пояснить на примере выбора жителей определенного района. Пусть в выбранном Вами районе проживает 20 человек. Тогда в запросе 20 раз повторится название района, которое Вы ввели, хотя Вы его и так знаете. Это поле следует выбирать в запросе, так как оно должно проверяться, а вот выводить его на экран не следует. Запретите вывод поля на экран.

24

Запросы с вычислениями

2. Для выполнения вычислений в запросе на выборку, задайте в ячейке Поле одного из полей запроса выражение вида

Премия: [Оклад]*2.

Тогда в таблице запроса поле будет названо Премия (это часть выражения переддвоеточием). Для каждойзаписибудет взятозначение поля Оклад, умножено на 2 и результат записан в поле Премия запроса. Конечно, для выполнениязадания Вампридетсясоздатьсвоевыражение.

Запросы на выборку с группировкой

Для группировки (то есть обобщения данных из многих записей в одной записи запроса) следует открыть запрос в режиме Конструктора и нажать кнопку Σ на панели инструментов. Тогда в таблице Конструктора запросов появится строка Групповая операция. В этой строке следует указать Группировка для одного из полей. Например, если надо найти сумму окладов по районам, то поле района будет полем группировки. Для каждого значения этого поля будет создана одна запись в запросе. В поле Оклад в строке Групповая операция укажите ту операцию, которую надо выполнить с окладами (в данном случае – суммирование).

Таким образом, для групповой операции требуется обычно два поля: по одинаковым значениям одного из них производится группировка, а над другим выполняются определенные действия.

Наиболее часто используются следующие групповые операции:

Avg

– среднее;

Max

– максимум;

Min

– минимум;

Count

– количество;

Sum

– сумма.

Использование функций в запросах

В Access имеется довольно большой набор функций, которые можно использовать при вычислениях. Часто используются такие функции, как:

Cstr(Expr) перевод поля в текстовое значение, то есть в набор символов. Выражение Expr может быть датой или числом.

Day(Number), Month(Number), Year(Number) – соответственно день, месяц и год, определяемый по дате Number.

IIf(Expr;Truepart;Falsepart). Условные вычисления. Если логическое выражение Expr истинно, вычисляется выражение Truepart, иначе

25

Falsepart. Для объединения нескольких логических выражений используются операторы And и Or.

Instr([Start];String1;String2;) – поиск подстроки String2 в строке

String1. [Start]3 – необязательный параметр – начальная позиция поиска; если он опущен, поиск начинается с позиции 1. Результат – позиция, с которой начинается искомая подстрока в проверяемой строке.

Lcase(Text), Ucase(Text) – все символы преобразуются соответственно в нижний и верхний регистр.

Len(Text) – количество символов в текстовом выражении. Ltrim(String), Rtrim(String) – удаление пробелов соответственно до и

после текста.

Mid(String;Start;Length) – выделение из строки String подстроки,

начиная с позиции Start длиной Length.

С остальными функциями можно ознакомиться в справочных системах по Access или книгах. Онлайновая помощь от Microsoft доступна по адресу http://office.microsoft.com/ru-ru/support/.

Для использования функций удобно во время ввода выражения в ячейку запроса выбрать в контекстном меню опцию Построить… В появившемся окне имеется доступ ко всем объектам базы данных, в частности – ко встроенным функциям. Выбор функции из списка облегчит правильное построение выражения.

Работа с запросами на обновление

Рутинные работы, связанные с обновлением таблиц БД, могут занимать много времени. Чтобы ускорить их, существуют запросы на обновление и удаление.

Начало работы аналогично созданию запроса на выборку. Перед тем, как начать заполнение «бланка» запроса, на вкладке Создание в поле

Запросы выберите Конструктор запросов, затем на появившейся вкладке Работа с запросами, Конструктор в поле Тип запроса нажми-

те Обновление. Дальнейшая работа происходит в соответствии с названиями строк «бланка». В строку Поле вводится имя поля, которое будет обновлено, в строку Обновление – новое значение. Оно может быть вычисляемым выражением.

Внимание! Не торопитесь при выполнении запросов, связанных с изменениями данных. Внимательно читайте появляющиеся сообщения. Лучше всего перед работой с запросами на удаление или обновление создать копию таблицы или даже всего файла БД.

3 Квадратные скобки в данном случае обозначают лишь необязательность параметра. Ставить их в выражение не нужно.

26

В режиме таблицы можно увидеть список тех записей, которые будут обновляться. После этого следует вернуться в режим Конструктора.

Сохраните запрос и выполните его. Убедитесь, что изменения именно таковы, как указано в задании. Если это не так, восстановите исходное содержание таблицы по ее копии и повторите задание.

Работа с запросами на удаление

Производится аналогично. В режиме таблицы видны записи, которые будут удалены.

Перейдя в режим таблицы, можно увидеть список тех записей, которые будут обновляться. После этого следует вернуться в режим Конструктора.

Производится аналогично. В режиме таблицы видны записи, которые будут удалены.

Результат работы

Умение создавать запросы, аналогичные приведенным в задании4.

Дополнительное задание

Умение пользоваться различными видами запросов на выборку. Исследуйте возможность вывода в запросе заданного количества

строк. Для этого необходимо на панели инструментов найти поле ввода Набор значений и указать в нем требуемое число записей:

47.Создайте запрос для вывода пяти сотрудников с наибольшими значениями оклада.

48.Выведите три района, в которых проживает меньше всего сотрудников.

49.Выделите фамилию из поля ФИО.

50.Замените фамилию, имя, отчество на Фамилия И. О (фамилию с инициалами).

51.Выведите правильные значения в ячейках, которые начинаются с маленькой буквы в полях ФИО, должность, адрес, пол, район и т.п.

52.Выведите список сотрудников, у которых сегодня день рождения.

53.Выведите полный номер телефона; если длина телефонного номера составляет 7 букв, добавьте слева +7812.

4Необходимо сделать не менее 10 запросов, в число которых входят: запрос на выборку с расчетом, запросы с группировкой, 2-3 запроса на обновление, 1-2 запроса на удаления.

27

54.Выведите только местный номер, то есть состоящий из последних 7 цифр.

55.Выведите отдельно число месяц и год рождения каждого работника.

56.Выведите в поле семейное положение Семейные для значений Замужем, Женат.

Многошаговые запросы

Если требуется выполнять несколько действий, например, отобрать данные по условию, сгруппировать, отфильтровать и отсортировать их, лучше делать это по шагам, создавая последовательную цепочку запросов. Каждый запрос выполняет определенное действие, а каждый последующий использует в качестве исходных данных результаты работы предыдущего.

Для правильного составления таких запросов требуется вначале определить, в каком порядке обрабатывать данные. После этого несложно построить ряд запросов:

57.Исследуйте возможности создания запроса на поиск повторяющихся записей.

58.Откройте запрос, сохраненный из расширенного фильтра, и объясните, как он должен работать. Запустите его на выполнение.

59.Сохраните один из простых запросов как расширенный фильтр. Включите его.

60.Выведите в запросе только количество подразделений.

61.Определите количество работников по каждому знаку Зодиака.

62.Определите среднюю зарплату работников по каждому знаку Зодиака.

63.Определите в одном запросе средний оклад работников, имеющих не менее троих детей и средний оклад работников, не имеющих детей.

64.Создайте запросы с функциями. Для этого откройте окно построителя выражений (кнопка Построить с «волшебной палочкой») и, используя систему помощи по функциям, постройте необходимые выражения.

65.Выведите список (ФИО, подразделение, контактный телефон) работников, у которых сегодня день рождения.

66.Создайте поля для вывода возраста в полных годах.

67.Определите дату выхода на пенсию каждого работника (женщины выходят на пенсию в 55 лет, мужчины – в 60).

68.Вывести общий список контактов. Для тех, у кого имеется электронная почта – вывести почту, для тех, у кого почты нет – выве-

28

сти телефон. Для тех, у кого нет ни того, ни другого – вывести прочерк.

7. Разработка перекрестного запроса

Цель работы – получение сводной информации из таблицы

Общие сведения

Перекрестные запросы – широко распространенный инструмент наглядного представления и анализа данных. Он позволяет выявить зависимость одной переменной от другой. Более подробные сведения об этом Вы получите из курсов статистики и маркетинговых исследований.

Аналогичный инструмент имеется в Excel; там он называется Сводная таблица. В маркетинге часто используется название кросстаблица. В статистике такие таблицы называются перекрестными или

таблицами сопряженности.

Пусть имеется таблица базы данных об объеме продаж по месяцам с полями: ФИО (фамилия продавца), Месяц, Объем продаж. В эту таблицу заносятся данные о продажах. Они могут заноситься ежедневно или еженедельно. Если требуется узнать текущие успехи каждого продавца, сравнить их с успехами других продавцов, определить их динамику, то потребуется целый ряд запросов. Например, удобное представление имеет следующий вид. Строкам соответствуют фамилии (точнее было бы указывать табельные номера и фамилии), столбцам – месяцы, а данные в таблице – объемы продаж по каждому работнику и каждому месяцу.

Особенность таких таблиц в том, что заранее неизвестно не только количество строк (это не проблема для Access), но и количество столбцов: месяцы добавляются в БД по мере ее заполнения. Если в столбцах будут указываться фамилии работников, то размер таблицы также оказывается неопределенным: работники могут приходить и уходить.

Именно такие таблицы и строят перекрестные запросы.

Для формирования перекрестного запроса в исходной таблице должно быть не менее трех полей. Различные значения одного поля (фамилии продавцов) дадут строки результирующей таблицы, значения другого (месяцы) – столбцы. Данные из третьего поля будут обрабатываться.

Следует также указать, как будет происходить обработка. Чаще всего это суммирование, но можно использовать количество значений, и среднее, и минимальное значение, и другие статистические показатели. Их список аналогичен списку возможных групповых операций, рассмотренных в предыдущей работе.

29

В перекрестную таблицу автоматически добавляется столбец итогов по строкам (общий объем продаж для каждого продавца).

Задание

Построить перекрестные запросы для вывода сведений:

69.О распределении сотрудников по должностям. Строки соответствуют должностям, столбцы – полу. В ячейках таблицы выводится количество сотрудников данной категории.

70.О распределении средних окладов по должностям. Строки соответствуют должности, столбцы – полу. В ячейках выводится сумма среднего оклада.

71.О суммах окладов по районам для каждой должности;

72.О сравнительном количестве мужчин и женщин, служивших и не служивших в армии. Результат должен иметь вид (рис. 1.9):

Пол

Служили в армии

Не служили в армии

Мужчины

 

 

Женщины

 

 

Рис. 1.9. Вид виртуальной таблицы перекрестного запроса

73.Определить среднюю величину оклад/количество детей для мужчин и женщин по каждой должности (более сложное задание).

Порядок выполнения работы

Для создания перекрестных запросов используется Мастер запросов вкладка Создание поле Запросы базы данных. Следует выбрать Перекрестный запрос. Далее следует отвечать на вопросы Мастера, руководствуясь целью задания и приведенными выше сведениями о перекрестных запросах.

Для выполнения более сложных заданий, например, задания 72, следует вначале подготовить данные. Это можно сделать с помощью вспомогательного запроса.

Для выполнения последнего задания следует воспользоваться тем, что запрос представляет собой виртуальную таблицу. Это означает, что можно вначале создать запрос на выборку, который будет выполнять необходимые вычисления (для данного задания – формировать в опреде-

ленных полях текст Мужчины или Женщины и Служили в армии или Не служили в армии.

30

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]