Обновление, удаление и вставка данных из другой таблицы при помощи запросов-действий
Любые изменения исходных данных в Microsoft Access можно проделать даже в режиме таблицы, но на самом деле это справедливо, если работа производится с одной или с достаточно небольшим набором записей. Если нужно произвести одинаковые действия со множеством записей, то работа с каждой записью отдельно может оказаться невыполнимой.
Чтобы избежать этого в Microsoft Access существуют такие объекты как запросы-действия, которые позволяют найти необходимые записи и автоматически произвести в них необходимые изменения. Для изменения данных уже существующих таблиц Access имеет три вида запросов-действий:
Запрос-обновление. Данный вид запросов позволяет произвести изменение значений одного или нескольких полей выбранных записей. При этом новые значения могут получаться как на основе старых данных, так и каким-либо другим способом.
Запрос на удаление. Как правило не имеет смысла всегда хранить все собранные в базе данные. Имеет смысл со временем заменять часть исходной информации итоговой и затем удалять ненужные данные. Именно для этих целей и служит данный вид запросов.
Запрос на добавление. Используя данный вид запросов, можно скопировать выбранные записи и поместить их в другую таблицу.
В момент создания любого запроса Access всегда по умолчанию создает запрос-выборку. При создании запросов-действий необходимо сначала создать запрос-выборку, используя условия отбора, позволяющие выбрать те записи, над которыми необходимо произвести соответствующие действия. После этого при помощи меню или панели инструментов можно преобразовать полученный запрос-выборку в один из запросов-действий одним щелчком мыши.
Запрос-обновление
При преобразовании запроса-выборки в запрос-обновление изменяется заголовок окна запроса и в бланке QBE появляется строка Обновление. Эта новая строка бланка используется для того, чтобы задать, как именно изменять данные.
С помощью запроса-обновления можно за один раз менять значения нескольких полей, включив их в бланк QBE и определив выражения, используемые для обновления новых записей. При этом для вычисления новых значений некоторого поля можно использовать значения других полей.
Когда Access готов приступить к обновлению записи в базовой таблице или запросе, он сначала делает копию исходной записи, затем применяет заданные выражения к исходной записи и помещает результат в копию. После этого он меняет содержимое БД, переписывая модифицированную копию в таблицу. Так как обновления выполняются в копии исходной записи, то нет необходимости специально обеспечивать какую-либо проверку актуальности данных при изменении значений нескольких полей с использованием для вычисления новых значений данных из других полей, подлежащих изменению (например, можно поменять местами данные двух полей).
Инструкция UPDATE
Инструкцию UPDATE можно использовать для создания запроса на обновление, который изменяет значения в полях. Синтаксис:
UPDATE имя таблицы
SET имя столбца = новое значение
[WHERE условия отбора]
В указанной таблице или запросе происходит обновление выбранных строк в соответствии со значением или выражением, указанным как новое значение. Если присутствует предложение WHERE, то обновляются только строки, которые удовлетворяют условию отбора
Запрос на удаление
Как правило, этот тип запросов-действий используется для удаления из таблиц устаревших данных. Для этого на основе информации о системной дате и о дате в конкретных записях производится выборка данных, которые должны быть удалены, а затем их удаление.
Очевидно, что такой запрос будет использоваться регулярно. Поэтому имеет смысл, чтобы запрос содержал параметры, с помощью которых пользователь мог бы указать период за который все данные должны быть удалены. В этом случае не нужно будет в определение запроса вносить изменения каждый раз перед его использованием.
Инструкция DELETE
Эта инструкция удаляет одну или несколько строк из таблицы или запроса. Предложение WHERE не является обязательным. При его отсутствии из таблицы или запроса, которые указаны в предложении FROM, будут удалены все строки. При использовании предложения WHERE к каждой строке таблицы или запроса будет применено условие отбора и будут удалены только выбранные строки. Синтаксис инструкции:
DELETE поля, по которым проводится отбор
FROM имя таблицы или запроса
WHERE условия отбора
Запрос на удаление записей удаляет целые записи, а не содержимое отдельных полей. Для удаления значений из определенного поля создайте запрос на обновление, который заменит эти значения пустыми (Null) значениями.
Дата добавления: 2016-02-04; просмотров: 2592;