Запросы на обновление используются главным образом для того, чтобы внести изменения сразу в большое количество записей с помощью одного запроса.
Пример
В качестве примера рассмотрим запрос, который изменяет стоимость курсов обучения в таблице «Kursused» (Курсы) на некоторый постоянный коэффициент, например можно увеличим стоимость всех курсов на 20%.
Чтобы создать такой запрос:
1. в режиме Конструктора выбираем в запрос поля Kursuse_kood, Nimetus, Maksumus из таблицы «Kursused» (Курсы).
2. Выполните запрос, чтобы убедиться, что отбираются все записи.
3. Теперь изменим запрос, превратив его в запрос на обновление. Для этого щелкните на кнопке Обновление . Изменяется заголовок запроса и появляется дополнительная строка (Обновление) . При этом исчезают строки Sort (Сортировка) и Show (Вывод на экран) .
4.Теперь нужно в строку Update To (Обновление) ввести выражение, по которому будет вычисляться новая стоимость: * 1, 2.
В других случаях можно вводить константу, например, если нужно поменять дату во многих записях на текущую.
5. Прежде чем выполнять запрос на обновление, щелкните левой кнопкой мыши по стрелке на кнопке Вид и выберите
Запрос на обновление записей
Запрос на обновление записей вносит общие изменения в группу записей одной имя нескольких таблиц. Данные изменяются в базовых таблицах.
Создание запроса на обновление записей таблицы.
1. Создать новый запрос, включив в него таблицы, содержащие записи, которые следует обновить.
2. В режиме Конструктор нажать кнопку Тип запроса на панели инструментов и выбрать Обновление.
3. Переместить мышью из списка полей таблиц поля, которые нужно обновить или определить для них условие отбора.
4. Для полей, которые нужно обновить, в ячейку Обновление ввести выражение или значение, которое должно быть использовано для изменения полей.
5. Для полей, по которым нужно выполнить отбор обновляемых записей, ввести условия отбора.
6. Для обновления записей нажать кнопку Запуск на панели инструментов.
Ключевые слова: база данных access; бд access; субд access; базы данных access; access пример; программирование access; готовая база данных; создание база данных; база данных СУБД; access курсовая; база данных пример; программа access; access описание; access реферат; access запросы; access примеры; скачать бд access; объекты access; бд в access; скачать субд access; база данных ms access; субд access реферат; субд ms access; преимущества access; базу данных; скачать базу данных на access; базы данных; реляционная база данных; системы управления базами данных; курсовая база данных; скачать базу данных; база данных access скачать; базы данных access скачать; реферат база данных; база данных примеры; курсовые работы по СУБД; нормализация; базе данных; структура БД; пример БД; база запросов; учебная база данных; проектирование БД; данных; описание БД; субд реферат; создать БД; база данных по; использование БД; курсовая работа база данных; готовая; использование СУБД; таблица БД; база данных 2003 скачать; базу.
До сих пор вы сталкивались с запросами, выполняющими выборку данных и некоторые вычисления. Однако запросы могут применяться также для добавления, удаления и обновления группы записей таблицы базы данных Access. Такие запросы являются мощным инструментом преобразования данных, они называются запросами действия. Предположим, что по каким-то причинам вам понадобилось скорректировать даты контактов, заменив во всех записях таблицы Список, относящихся к 1999 году, месяц ноябрь на декабрь. Подобную операцию трудно проделать вручную, если в таблице содержится несколько тысяч записей. Запрос действия позволяет быстро решить поставленную задачу.
1. В окне базы данных Access щелкните на кнопке Таблицы .
2. Выделите таблицу Список, данные которой нужно обновить.
3. В палитре кнопки Новый объект выберите пункт Запрос . Откроется окно диалога Новый запрос , показанное на рис. 17.8. Подобное окно открывается и при щелчке на кнопке Создать окна базы данных. Оно позволяет выбрать наиболее удобный способ создания объекта.
Рис. 17.8. Создание запроса
4. Дважды щелкните на строке Конструктор . Таблица Список, выделенная в окне базы данных на шаге 2, автоматически появится в окне конструктора запросов.
5. Перетащите в бланк запроса поле Дата , значение которого нужно обновлять.
Примечание Название поля, заключенное в квадратные скобки, является ссылкой на значение поля. Чтобы сослаться на поле другой таблицы, нужно в начале указать имя таблицы, а затем имя поля (оба имени в квадратных скобках) и разделить их восклицательным знаком. Например [Контакты]! [Фамилия].
6. В палитре кнопки Тип запроса выберите пункт Обновление . Описание всех возможных вариантов запросов, предлагаемых программой Access, приведено в табл. 17.2. Структура бланка запроса видоизменяется в соответствии с типом запроса. В бланке выбранного варианта запроса на обновление появляется поле Обновление , в которое нужно ввести новое значение поля. Чтобы изменить месяц даты с ноября на декабрь, достаточно прибавить к дате 30 дней.
7. Введите в ячейку Обновление формулу [Дата] +30.
ТАБЛИЦА 17.2. Варианты запросов
Тип | Описание |
Выборка | Выборка данных в таблицу результата запроса на основе указанных условий отбора |
Перекрестный | Результат запроса выводит статистические значения (сумму, количество или среднее) для одного из полей таблицы в зависимости от двух параметров других полей таблицы, задающих заголовки строк и столбцов результата перекрестного запроса |
Создание таблицы | Создание новой таблицы в текущей или в другой базе данных на базе информации из имеющихся таблиц |
Обновление | Обновление данных таблицы |
Добавление | Добавление набора записей в таблицу |
Удаление | Удаление записей таблицы в соответствии с указанным критерием |
8. Чтобы обновлялись только даты, относящиеся к ноябрю 2000 года, введите в ячейку Условие отбора формулу Between DateValue ("1.11.99") And DateValue ("30.11.99"), которая подробно обсуждалась в ранее (рис. 17.12).
9. Закройте запрос, сохранив его под именем Обновление.
10. Щелкните на кнопке Таблицы окна базы данных и двойным щелчком на значке Список откройте эту таблицу. В ней есть четыре записи, относящиеся к ноябрю 2000 года.
Примечание Запросы действия могут выполнять широкомасштабные изменения данных, которые отменить уже невозможно. Будьте внимательны. Перед запуском таких запросов полезно сделать резервную копию базы данных, чтобы иметь возможность возвратиться к исходному состоянию таблиц. Значки запросов действия снабжены восклицательным знаком, предупреждающим об их особой роли.
11. В окне базы данных щелкните на кнопке Запросы .
12. Дважды щелкните на значке Обновление .
Ответьте Да на вопрос о необходимости запуска запроса действия. Access проинформирует вас об обнаружении четырех записей, удовлетворяющих условию отбора, и попросит подтвердить необходимость их изменения.
13. Щелкните на кнопке Да и изучите изменения, произошедшие с данными таблицы Список.
Этот тип запросов-действий предназначен для изменения значений некоторых полей для всех выбранных записей. После входа в режим Конструктора запроса нужно выбрать команду Запрос/Обновление . После этого в бланке запроса появится строка Обновление . Эта строка используется для того, чтобы задать новые значения для выбранных записей.
Рис. 25 Вид окна запроса на обновление записей
Обновлять значения можно не только в полях критериев, а в любом поле таблицы. Также для выбранных записей можно создавать вычисляемые поля.
Этот вид запросов служит для удаления группы записей базы данных, удовлетворяющих определенным условиям. Обычный запрос можно преобразовать в запрос на удаление с помощьюкоманды Запрос/Удаление в режиме Конструктора запросов. При этом в бланке запроса появится строка Удаление , где можно ввести условие для удаления записей.
Рис.26 Вид окна запроса на удаление записей
В режиме Конструктора запроса необходимо указать таблицу, в которой будут проводиться удаления. Затем определить критерии и обязательно просмотреть результаты выполнения запроса на выборку.
Если в результате запроса присутствуют только подлежащие удалению записи, следует преобразовать его в запрос на удаление.
Удаление записей может привести к непредсказуемым результатам, в том числе и к нарушению целостности базы данных, по следующим причинам:
Таблица является частью отношения один-ко-многим
В качестве условия обеспечения целостности данных использована опция Каскадное удаление связанных полей.
Например, вы решили исключить каких-то студентов и удалить соответствующие записи из таблицы Студенты . При этом существует также таблица Экзамены , которая связана с таблицей Студенты, отношением один – ко многим. Если для обеспечения целостности данных выбрана опция , в результате удаления записей о студентах будут удалены записи об их оценках, то есть информация об успеваемости!
Если установлена опция Каскадное удаление связанных полей и вы пытаетесь удалить записи в режиме просмотра таблицы, то получите предупреждение о возможном удалении данных в других таблицах. А при использовании запросов на удаление вы не увидите предупреждения. MS Access выдаст только информацию о количестве удаляемых записей, но ничего не скажет про каскадное удаление.
С помощью запроса на добавление записей можно скопировать выбранные записи и поместить их в другую таблицу. Можно также использовать запрос на добавление для переноса данных в используемую базу данных из другого источника (из какой-либо другой таблицы).
Выполнение запроса на добавление записей можно начать (также как и в других запросах-действиях) с запуска запроса-выборки – для того, чтобы убедиться, что вы копируете необходимые записи.
Если необходимо добавить записи к таблице в другой базе данных, сначала следует присоединить таблицу-источник к базе, содержащей целевую таблицу, с помощью команды Файл/Внешние данные/Связь с таблицами. Для отбора добавляемых записей нужно составить запрос на выборку. Затем надлежит выполнить составленный запрос и оценить результат, переключившись в режим таблицы с помощью команды Вид/Режим таблицы. После этого необходимо вернуться в режим Конструктора и активизировать команду Запрос/Добавление.
В открывающемся окне диалога нужно в поле Имя таблицы имя таблицы, к которой требуется присоединить данные из результирующего набора записей запроса. Закрытие диалогового окна кнопкой ОК приводит к тому, что Access добавляет в бланк запроса строку Добавление .
Рис. 27 Вид окна запроса на добавление записей
В строку Добавление автоматически (или вручную) вставляются имена тех полей целевой таблицы, которые совпадают с именами полей запроса. Далее следует выполнить запрос. Для этого выполните команду Запрос/ Выполнить или щелкните по кнопке Выполнить на панели инструментов. В специальном диалоговом окне Access укажет сколько записей будет добавлено к целевой таблице, и потребует подтвердить выполнение этой операции.
Однако при переключении на запрос-выборку и обратно Access не сохраняет соответствия имен полей. Так что если перед запуском соответствующего запроса на добавление записей вы хотите выполнить запрос-выборку, приходится заново задавать соответствия имен двух таблиц.
Добавленные по ошибке записи легко находятся и удаляются. Тем не менее, можно сэкономить время, если сделать резервную копию таблицы, в которой будет осуществляться добавление записей.
Сегодня поговорим на тему «Запрос на обновление Access». Запрос на обновление Access может быть использован для обновления данных в полях базовых таблиц. Изменения вносятся в группу записей, отбираемых с помощью указанных пользователем условий отбора. Значения для изменений в полях определяются в бланке запроса в строке Обновление (Update To).
Задача. Рассчитайте стоимость товара в каждой строке таблицы ОТГРУЗКА и сохраните ее в поле СУММА_ОТГР этой же таблицы.
Таким образом, рассмотренный запрос позволяет автоматизировать расчет стоимости товара, указанного в каждой строке спецификации накладной ― записи таблицы ОТГРУЗКА.
Имена таблиц, используемых в запросе, и способ их объединения задаются не-посредственно за именем инструкции UPDATE. Инструкция UPDATE обновляет указанное в предложении SET поле ОТГРУЗКА.СУММА_ОТГР, присваивая значение, за-данное выражением *. Обновление происходит во всех записях, которые удовлетворяют условию отбора, заданному в предложении WHERE.
Для закрепления смотрим видеоурок:
Запросы на обновление используются главным образом для того, чтобы внести изменения сразу в большое количество записей с помощью одного запроса. Классическим примером такого запроса является изменение цены в таблице «Товары» (Products) на некоторый постоянный коэффициент, например можно увеличить цену одной из категорий товара на 20%. Чтобы создать такой запрос:
Рис. 8.8. Запрос на обновление записей
Прежде чем выполнять запрос на обновление, щелкните левой кнопкой мыши по стрелке на кнопке Вид (View) и выберите Режим таблицы (Datasheet View). Вы увидите все записи, которые будут обновлены, хотя данные в обновляемых полях будут еще старые. И только убедившись, что отобраны нужные записи, можно выполнять запрос.
В приведенном примере изменялись значения в поле, которое не является первичным ключом в таблице «Товары» (Products). Особый случай возникает, когда требуется обновить значение первичного ключа в таблице. Если эта таблица связана отношением «один-ко-многим» с другими таблицами, то при изменении первичного ключа записи должны одновременно измениться значения внешних ключей во всех связанных записях подчиненных таблиц. Access обеспечивает выполнение такого изменения автоматически, т. к. поддерживает каскадное обновление записей. При определении связи между таблицами можно установить флажок (Cascade Update Related Fields).
Если такой флажок установлен, то при изменении значения первичного ключа в главной таблице Access автоматически выполняет специальный запрос, с помощью которого обновляются внешние ключи всех связанных записей в подчиненной таблице.
Убедиться в том, как работает такой запрос, можно на примере таблиц «Сотрудники» (Employees) и «Заказы» (Orders). Для этого нам придется сначала сделать копии этих таблиц и установить связь между ними:
Рис. 8.9. Диалоговое окно Изменение связей
Для выполнения каскадного обновления:
Рис. 8.10. Каскадное обновление записей
Бывают ситуации, когда во всей базе данных необходимо обновить информацию в каком-либо поле. Это очень просто сделать с помощью запроса на обновление. Для создания запроса на вкладке Создание нужно выбрать Конструктор запросов. Из появившегося диалогового окна выбрать нужные таблицы, поля которых необходимо обновить. В данном примере мы работаем с таблицей Студенты и обновлять будем проходной балл поступающих в ВУЗ.
Добавив нужную таблицу, мы двойным щелчком мыши добавляем нужные для запроса поля. К примеру, ФИО студента и Проходной балл. В поле Тип запроса выберем Запрос на обновление, чтобы запрос мог менять информацию в таблице согласно условию. Запрос на обновление может также добавлять или удалять информацию. Это равносильно функции Поиск и замена, но с более широкими возможностями. В поле Проходной балл введем необходимое условие обновления и условие отбора. Например, заменим проходной балл на 5 для всех студентов, у которых он ранее был меньше четырех.
Чтобы выполнить запрос, необходимо запустить его, нажав на кнопку Выполнить на верхней вкладке или дважды щелкнув по нему в списке запросов. В появившемся диалоговом окне необходимо подтвердить замену данных по составленному нами условию. В итоге все оценки ниже четырех баллов будут заменены на оценку 5, что видно в таблице.
← Назад в раздел