Шаг 40.
Запрос на обновление

   На этом шаге вы познакомитесь с запросом на обновление.

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

   В качестве примера можно рассмотреть таблицу Студенты в БД Образование. Каждый студент в этой БД может находиться в одном из трех состояний:

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

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

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

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

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

Таблица 1. Таблица Студенты с новым полем Состояние

   При этом необходимо отметить, что при попытке ввода в поле Состояние значения, не соответствующего указанному условию, будет показано окно предупреждения. Также следует иметь в виду, что при проверках и вычислениях латинские и русские буквы, имеющие одинаковое начертание, такие как "а", "о" и т. д., различаются. Другими словами, если ввести в поле Состояние латинскую букву "о", то Access это воспримет как попытку записи в поле ошибочного значения.

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

   Для выполнения описанных действий необходимо создать новый запрос в режиме конструктора и добавить в макет таблицу Студенты. Затем поочередно добавить в запрос все поля этой таблицы, причем для поля Состояние указать параметр Условие отбора: "а". После этого можно выполнить данный запрос, чтобы убедиться в его функциональности. Заключительным этапом в создании запроса будет изменение его типа с Выборка на Обновление кнопкой Тип запроса , после чего в макете появится новый параметр - Обновление. Для поля Состояние необходимо указать Обновление: (пустая строка) "", чтобы для всех студентов-академистов был удален признак "а". Пол ученный таким образом запрос (рис. 1) можно сохранить под именем Академисты.


Рис. 1. Макет запроса Академисты

   При выполнении запроса Академисты в данном случае будет отображено сообщение об изменении двух записей, что соответствует текущему количеству академистов. После подтверждения обновления записей все значения, равные "а", будут удалены из поля Состояние (рис. 2).


Рис. 2. Обновленная таблица Студенты (без академистов)

Запрос на обновление можно увидеть здесь, а взять клип здесь.

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

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



Предыдущий шаг Содержание Следующий шаг