Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
лаборатор access.doc
Скачиваний:
36
Добавлен:
02.02.2015
Размер:
32.54 Mб
Скачать

2.3. Запросы на обновление групп записей.

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

Запрос на обновление легко получается из запроса − выборки простым переключением запроса из режима "Выборка" меню "Запрос" в режим "Обновление". Необходимо только ввести формулы пересчета изменяемых значений в появившуюся строку "Обновление". Выполнение полученного запроса приведет к изменениям в таблице.

Пересчитаем зарплату преподавателям с учетом параметрически задаваемого коэффициента инфляции относительно предыдущего месяца. Создаем запрос - выборку по таблице "Преподаватели", куда включаем поля "Фамилия", "Номер_П", "Зарплата". Затем в меню "Запрос" выполним команду "Обновление". В блоке QBE появится строка "Обновление", куда вносятся формулы изменения требуемых полей. Введем в поле "Зарплата" формулу:

зарплата * [Коэф. инфляции]

Можно также задать условие отбора преподавателей, которым вводить коэффициент не нужно, или изменить на другой к-т. Выбор записей для изменения производится в строке "Условие выбора" для требуемого поля. Возможности условного отбора были рассмотрены в предыдущей ЛР.

Сохраним запрос под именем "Пересчет зарплаты" и запустим его на выполнение. После ввода параметра к-та появится информационное сообщение о числе изменяемых записей, и для подтверждения изменений нажмем кнопку "Ок".

Обновление нескольких полей производится таким − же образом. Особенностью такого запроса является возможность использования перекрестной инициализации полей. Так при наличии полей "Поле_1" и "Поле_2" в таблице можно "Полю_1" присвоить значение:

"Поле_2" * 2 и одновременно "Полю_2" присвоить:

"Поле_1" * 3.

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

2.4. Запрос на удаление группы записей.

Действия по удалению групп записей аналогичны действиям по обновлению, но здесь выполняется команда "Удалить" меню "Запрос". Вводится условие в бланк запроса, которому должны удовлетворять группы записей, предназначенные для удаления. После этого запрос переключается в режим "Удаление"и выполняется команда "Выполнить" меню "Запрос".

Создайте самостоятельно запрос на удаление из таблицы "Итоги" записей с номерами студентов, для которых средний бал меньше 2.

2.5. Ошибки, возникающие при выполнении запросов.

Некоторые запросы не могут быть выполнены Access, так как могут привести к нарушению целостности данных базы или к ошибкам в результатах.

Всего существует четыре типа ошибок, которые обнаруживает Access при выполнении запросов:

− появление дубликата первичного ключа. Если в результате изменений таблицы могут появиться несколько записей с одинаковыми значениями первичного ключа - нарушается его уникальность, что является ошибкой и Access отвергается;

− ошибки преобразования данных возникают при преобразовании полей одного типа в другой, и когда эти изменения могут привести к неправильной трактовке хранимых значений − Access предупреждает пользователя об этом;

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

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

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

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

этом случае игнорируются. При нажатии клавиши "Отмена" отвергаются все изменения, инициируемые данным запросом.