Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Задания / Access_2007 / Запросы / Запросы на обновление.docx
Скачиваний:
51
Добавлен:
17.04.2015
Размер:
427.56 Кб
Скачать

Блокировка в Access

Ms Access поддерживает два режима блокировок.

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

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

Для задания уровня блокировки данных в Ms Access 2007 следует:

  1. Нажать кнопку “Office

  1. Сделать щелчок по кнопке

  1. Из списка параметров выделить

  1. В разделе Дополнительно установлены параметры блокировок Access (рис.6).

Рис. 6 Раздел окна для управления блокировками

Проблема при выполнении запросов

Поскольку в Access по умолчанию включен флажок ,

то при открытии базы данных под лентой появляется сообщение о блокировке записей.

В таком режиме защиты записей созданные запросы на изменение не работают. Для выполнения запросов на изменение необходимо снять блокировку.

  1. Для снятия блокировки следует щелкнуть по кнопке

Появится окно Параметры безопасности Microsoft Office (рис.7).

Рис.7 Окно оповещения системы безопасности

  1. Включить

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

Запрос на обновление

На сумму недоимки коммунальных платежей должны начисляться пени в размере 1/300 ставки рефинансирования Банка России, действующей на день оплаты, за каждый день просрочки уплаты.

Размер ставки рефинансирования Банка России на 28 декабря 2009 г. = 8,75%

Размер ставки рефинансирования Банка России на 1 июня 2010 г. =7,75%

Указание Банка России от 31.05.2010 № 2450-У

Запросы на обновление для изменения значения поля позволяют изменить данные в таблице. Они используются для обновления значений полей с помощью одного общего выражения. Пример запроса на обновление для изменения значений в столбце Пени в зависимости от значения полей Сумма, Недоплата и от значения ставки рефинансирования Банка России.

Пени = Сумма*Недоплата*8.75/300

Задание 1. Создать запрос к таблице ОплатаКоммУслуг на обновление значений поля Пени.

Действия

  1. Открыть БД Коммунальные платежи

  2. Из списка объектов БД активизировать

  1. Вкладка меню

Появится окно

  1. Выбрать таблицу

Список полей таблицы ОплатаКоммУслуг появится верхней половине окна Конструктора.

Бланк запроса предназначен для определения полей и условий, которые будут использованы для выполнения запроса.

Нижняя половина окна бланка запроса первоначально имеет вид (рис.8).

Рис. 8 Нижняя половина окна Конструктора для создания конкретного типа запроса

По умолчанию в бланке запроса содержится 6 строк (количество строк может меняться в зависимости от типа запроса).

Заголовок строки

Назначение

Поле

Имя поля, выбранного из таблицы

Имя таблицы

Имя таблицы добавленной в бланк запроса. Добавить в бланк запроса можно несколько таблиц. Новый запрос можно создать на базе существующего запроса.

Сортировка

Сортировка по возрастанию/убыванию или отсутствует

Вывод на экран

При флажке /отображает или не отображает на экране значения полей записей — результат выполнения запроса

Условие отбора

Критерий/критерии фильтрации записей из таблицы/запроса для результирующего набора данных. Если критериев несколько, то фильтрация осуществляется для логической операции И (AND).

или

Критерий логической операции ИЛИ (OR) для включения дополнительных записей в результирующий набор данных

  1. В первом столбце нижней половины окна Конструктора выполнить действия для создания запроса на обновление поля Пени (рис.9).

    1. В строке Поле выбрать из списка полей — Пени

    2. В строке Имя таблицы выбрать — ОплатаКоммУслуг

    3. В строке Сортировка, на ленте из группы Тип запроса выбрать запрос обновление, щелкнув по кнопке . Заголовок строки Сортировка изменится на Обновление

    1. В строке Обновление активизировать построитель выражений

    2. В окне Построитель выражений создать выражение для расчета значений данных для поля Пени (рис.9). После завершения закрыть окно Построителя выражений.

Рис. 9 Окно построителя выражений

    1. Для выполнения запроса следует щелкнуть по кнопке

Появится окно сообщения (рис.10).

Рис.10 Окно — предупреждение об изменении данных

    1. Нажмите кнопку . Появится следующее окно (рис. 11).

Рис.11 Окно подтверждения обновления записей

    1. Нажмите кнопку

    1. Сохранить запрос с именем

    1. Просмотр результатов выполнения запроса можно, открыв запрос в режиме Таблицы или, открыв таблицу ОплатаКоммУслуг в режиме таблицы.

Задание 2. Создать запрос к таблице ОплатаКоммУслуг на обновление значений поля СуммаСучетомПени.

Действия

  1. Выполнение запроса на обновление записей столбца СуммаСучетомПени осуществляется аналогично предыдущему заданию, повторением шагов предыдущего задания с 2-го пункта по пункт 5.4.

  2. Затем следует создать выражение для вычисления значений поля СуммаСучетомПени (рис. 12).

  3. Далее повторить шаги предыдущего задания с пункта 5.6 по пункт 5.10

Рис. 12 Вид выражения для изменения значений для столбца СумаСучетоПени

    1. Сохранить запрос с именем

    1. Результат выполнения двух запросов на обновление записей представлен на рис.13

Рис. 13 Вид результирующей таблицы после выполнения двух запросов на обновление записей

Примечание

  • В бланке запроса можно сформировать выражения для обновления данных для нескольких полей. В данном случае запрос обновляет значения трех полей (рис. 15).

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

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

  • При автоматизации обновления данных в таблице, после внесения изменений в столбцы, для кнопки, связанной с процедурой обновления на форме, необходимо оформить всплывающую подсказку о количестве запусков на выполнение (рис.14).

Рис. Фрагмент формы с всплывающей подсказкой для кнопки Обновление

Рис. 15 Запрос на изменение значений в трех столбцах таблицы

На рисунке 16 представлено обновление трех поле при изменении данных в записях с номерами 1,7,12,22,23.

Рис.16 Таблица ОплатаКоммУслуг после выполнения запроса на обновление трех столбцов