31
8.Запустите созданный запрос на исполнение.
9.Подтвердите удаление записей.
10.Откройте таблицу Приказы о взысканиях. Убедитесь в отсутствии записи о приказе 14-лс/2-о.
11.Откройте таблицу Журнал учета взысканий. Обратите внимание на то, что из этой, подчиненной, таблицы были удалены данные о взысканиях, наложенных приказом 14-лс/2-о.
Задание 15. Запрос на обновление Данный вид запросов предназначен для корректировки существующих
записей. Обновлению подлежат все записи, удовлетворяющие условию отбора. Если условие отбора не задано, то происходит обновление всех записей в таблице.
Запрос – Смена фамилии Новокосовой.
Предположим, что сотрудница по фамилии Новокосова сменила фамилию на Неверова. Требуется отразить это изменение в базе данных.
1. Выполните команду Конструктор запросов на вкладе Созда-
ние.
2.В списке таблиц выберите таблицу Список сотрудников.
3.На вкладке Конструктор в группе Тип запроса нажмите кнопку
Обновление
.
4.Добавьте в запрос поле Фамилия.
5.В качестве условия отбора укажите «старую» фамилию сотруд-
ницы: Новокосова.
6.В строке Обновление введите «новую» фамилию: Неверова (Рисунок 18).
7.Сохраните запрос под именем Смена фамилии Новокосо-
вой.
8.Запустите запрос на исполнение.
9.Проверьте правильность выполнения запроса по таблице Список
сотрудников.
Рисунок 18 – Запрос на обновление
32
Самостоятельно создайте следующий запрос.
1. Запрос – Смена мотива поощрения (За хорошую служ-
бу). Запрос должен изменить мотив поощрения «За хорошую службу» на мотив «За достижение высоких результатов в служебной деятельности и выполнение особо важных задач». По результатам его выполнения должно быть обновлено 7 записей.
Задание 16. Добавление в запрос вычисляемых полей
Спомощью запросов можно не только извлекать данные из таблиц, но
имодифицировать их, выполняя с ними различные действия. Список доступных операций определяется типом хранящихся в таблице данных и набором встроенных функций в Access.
Запрос – Список сотрудников (объединенные ФИО).
При создании таблицы Список сотрудников (Таблица 1), мы разбили графу ФИО сотрудника на три поля: Фамилия, Имя и Отчество. С точки зрения проектирования базы данных наше решение было вполне оправданно, но исходная задача предполагает запись ФИО в одну графу. Создадим запрос, который будет объединять данные из трех полей в одно новое поле. Хранение значений этого поля в таблице не предусмотрено.
1. Выполните команду Конструктор запросов на вкладе Созда-
ние.
2.В списке таблиц выберите таблицу Список сотрудников.
3.Добавьте в запрос поля Личный номер, Подразделение, Должность и Специальное звание.
4.Поместите курсор в строку Поле рядом с последним добавленным полем и на вкладке Конструктор нажмите кнопку Построитель
.
Окно построителя выражений (Рисунок 19) состоит из нескольких ча-
стей.
Рисунок 19 – Построитель выражений
33
В поле выражения записывается выражение на языке SQL с учетом правил оформления, принятых в Access. Для построения выражения можно ввести его с клавиатуры, либо воспользоваться помощью мастера построения выражений, представленного тремя древовидными списками: Элементы выражений, Категории выражений и Значения выражений.
Нужно нам выражение получается присоединением друг к другу значений трех полей, с расстановкой пробелов между ними.
5. Раскройте список Книга учета поощрений в группе Элементы выражений, раскройте список Таблицы и выберите таблицу Список со-
трудников (Рисунок 20).
Рисунок 20 – Выбор таблицы для выражения
6.В списке Категории выражений дважды щелкните поле Фамилия, чтобы добавить его в выражение.
7.Введите с клавиатуры знак +. В данном случае, этот оператор будет обозначать присоединение текстовых строк.
8.Введите с клавиатуры строку « ». Это позволит добавить к фамилии сотрудника один пробел.
9.Введите с клавиатуры знак +.
10.В списке Категории выражений дважды щелкните поле Имя.
11.Введите с клавиатуры символы + « » +.
12.В списке Категории выражений дважды щелкните поле Отчество. Выражение примет следующий вид (Рисунок 21).
Рисунок 21 – Выражение для построения ФИО
13.Нажмите ОК, чтобы закрыть окно построителя выражений.
14.Сохраните запрос под именем Список сотрудников (объ-
единенные ФИО).
15.Запустите запрос на исполнение (Рисунок 22).
Недостатком указанного запроса является наименование созданного поля: Выражение1, которое не отражает сути содержащейся в нем информации.
Для улучшения представления данных, наименование поля можно изменить.
34
16.Откройте запрос Список сотрудников (объединенные ФИО) в конструкторе.
17.Поместите курсор в поле Выражение1 и нажмите на вкладке
Конструктор кнопку Страница свойств
.
18.В окне свойств, на вкладке Общие в поле Подпись введите новое наименование поля: ФИО сотрудника.
19.Сохраните запрос, запустите его на выполнение. Обратите внимание на изменение заголовка поля.
Рисунок 22 – Фрагмент запроса на выполнении
Задание 17. Использование функций в запросах на обновление Построитель выражений позволяет не только формировать вычисляе-
мые поля, но и формировать выражения для обновления существующих данных в таблице.
Запрос – Смена специальных званий сотрудников отдела следствия и дознания.
При импорте таблицы Список сотрудников, все сотрудники получили специальные звания полиции, однако, проходящие службу в подразделениях следствия и дознания имеют специальные звания юстиции. Таким образом, необходимо организовать запрос на обновление, который бы отбирал из таблицы Список сотрудников сотрудников отдела следствия и дознания, а затем менял бы в поле специальное звание слово «полиции» на слово «юстиции».
Такую замену можно осуществить с помощью функции SQL Replace.
1. Выполните команду Конструктор запросов на вкладе Созда-
ние.
2.В списке таблиц выберите таблицу Список сотрудников.
3.На вкладке Конструктор выберите тип запроса Обновление.
4.Добавьте в запрос поля Подразделение (для отбора значений)
иСпециальное звание (для изменения значений).
5.В поле Подразделение, в строке Условие отбора введите Отдел следствия и дознания.
6.Поместите курсор в строку Обновление поля Специальное звание и нажмите кнопку Построитель на вкладке Конструктор.
35
7.В списке Элементы выражений раскройте список Функции и выберите Встроенные функции.
8.В списке Категории выражений выберите Текстовые.
9.В списке Значения выражений выберите Replace (Рисунок 23).
Рисунок 23 – Функция Replace
10.Дважды щелкните на названии функции, чтобы добавить ее в выражение. Будет вставлен шаблон с параметрами.
11.Выделите параметр «string» (строка, в которой осуществляется поиск образца).
12.В списке Элементы выражений откройте список Книга учета поощрений и взысканий, откройте перечень таблиц, выберите таблицу
Список сотрудников и двойным щелчком добавьте поле Специальное звание. Удалите появившийся шаблон «Выражение» в выражении.
13.Выделите параметр «find» (искомый фрагмент).
14.Замените его на текст «полиции».
15.Выделите параметр «replace» (фрагмент для замены).
16.Замените его на текст «юстиции».
17.Удалите из выражения параметры «start», «count», «compare» (Рисунок 24).
Рисунок 24 – Параметры функции Replace
18.Нажмите кнопку ОК и сохраните запрос под именем Смена специальных званий сотрудников отдела следствия и дознания.
19.Запустите запрос на выполнение. В случае правильного выполнения задания вы будете уведомлены об обновлении четырех записей. Не под-
тверждайте выполнение запроса, если количество обновляемых записей отличается от четырех!
20.Откройте таблицу Список сотрудников. Убедитесь, что специальные звания сотрудников отдела следствия и дознания изменились.
Самостоятельно создайте следующие запросы.