Создание запросов на удаления записей
Запросы на удаление записей позволяют отобрать требуемые записи и удалить их за один прием. Принцип создания такого запроса аналогичен созданию запроса на обновление, однако, удаляя записи из связанных таблиц, необходимо помнить о том, что при этом не должна нарушаться целостность данных.
Если две таблицы связаны отношением "один-ко-многим", нельзя удалять записи из таблицы "один" если в таблице "многие" присутствуют соответствующие им записи. Сначала должны быть удалены записи в таблице "многие" и только потом — соответствующие им записи в таблице "один". Для того чтобы упростить этот процесс, Access позволяет при определении связей между таблицами установить флажок каскадное удаление связанных записей (Cascade Delete Related Records). Такой флажок установлен, например, для связи таблиц "Заказы" (Orders) и "Заказано" (Order Details). Действительно, если требуется удалить из базы данных какой-то заказ, должны быть удалены не только запись об этом заказе в таблице "Заказы", но ч все позиции данного заказа в таблице "Заказано".
Для создания запроса на удаления мы воспользуемся уже имеющимся запросом на добавление записей "Копирование заказов".
- Откройте этот запрос в режиме Конструктора.
- Чтобы преобразовать запрос на добавление в запрос на удаление записей, выберите команду Запрос, Удаление (Query, Delete Query). В бланке запроса появится строка Удаление (Delete) (рис. 8.11). В первом столбце строки Удаление (Delete) показывается значение Из (From), которое указывает, что будут удаляться записи из таблицы "Заказы". Во втором столбце строки Удаление (Delete) вы видите значение Условие (Where), что указывает на использование этого столбца для определения критерия отбора удаляемых записей.
Рис. 8.11. Запрос на удаление записей из таблицы "Заказы"
- Нажмите кнопку Запуск (Run). Выводятся сообщение с приглашением подтвердить удаление записей и информация о количестве записей, которые будут удалены. Их будет столько же, сколько было отобрано в соответствующем запросе на добавление. В этот момент еще можно отменить удаление, для чего достаточно нажать кнопку Нет (No) в окне сообщения. Нажмите кнопку Да (Yes), подтверждая удаление. Будут удалены все заказы за 1996 год из таблицы "Заказы" (Orders) и все позиции заказов из таблицы "Заказано" (Order Details). Вы можете убедиться в этом, если откроете таблицу "Заказано".
- Сохраните запрос, дав ему имя: Удаление заказов.
Однако такое каскадное удаление записей не всегда возможно. Например, для рассмотренной нами в предыдущем разделе связи таблиц "Сотрудники" и "Заказы" нельзя устанавливать флажок каскадное удаление связанных записей (Cascade Delete Related Records), т. к. удаление записи о сотруднике из таблицы "Сотрудники" не должно повлечь за собой удаление всех его заказов. Если вы попытаетесь удалить какую-либо запись о сотруднике и в таблице "Заказы" (Orders) окажутся заказы, принятые этим сотрудником, Access выдаст сообщение об ошибке (рис. 8.12).
Рис. 8.12. Запрос на удаление
Для того чтобы выполнялась автоматическая проверка целостности данных, не забудьте для всех связей в базе данных установить флажок Обеспечение целостности данных (Enforce Referential Integrity).
Запрос на удаление записей — Базы данных: основные понятия
Запрос на удаление записей удаляет группу записей из одной или нескольких таблиц. С помощью запроса на удаление можно удалять только всю запись, а не отдельные поля внутри нее.
Создание запроса на удаление записей таблицы
1. Создать новый запрос, включив в него таблицы, из которых необходимо удалить записи.
2. В режиме Конструктор нажать на кнопку Тип запроса и выбрать команду Удаление.
3. Для таблиц, из которых нужно удалить записи, переместить символа " * " из списка полей таблицы в бланк запроса в строку Поле.
В строке Удаление появляется при этом текст Из.
4. Переместить мышью в бланк запроса поля, для которых устанавливается условие отбора.
В строке Удаление в этих полях появляются текст Условие.
5. Ввести условия отбора в строку Условие отбора для полей, перемещенных в бланк запроса.
6. Для предварительного просмотра удаляемых записей нажать кнопку Вид на панели инструментов.
7. Для удаления записей нажать кнопку Запуск на панели инструментов.
Готовые курсовые и контрольные работы по СУБД MS Access:
- Автосалон Готовая бд access Автосалон
- Маршрутное такси Скачать базу данных access Маршрутное такси
- Контрольная по базам данных об учёте клиентов гостиницы.
- Риэлторская контора база данных access Риэлторская контора
Ключевые слова: база данных 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 введите слово, например, «сотрудники» и нажмите кнопку
Как сделать запрос на удаление в access
Если нужно быстро удалить большой объем данных или регулярно удалять определенные сведения из базы данных рабочего стола в Access, удобно воспользоваться запросом на удаление или обновление: в этом случае можно указать условия для быстрого поиска и удаления информации. Кроме того, с помощью запросов вы сэкономите время, потому что их можно повторно использовать после сохранения.
Примечание: Перед удалением данных или выполнением запроса на удаление убедитесь в том, что у вас есть резервная копия базы данных рабочего стола Access.
Если необходимо удалить всего несколько записей, использовать запрос не нужно. Можно открыть таблицу в режиме таблицы, выбрать поля (столбцы) или записи (строки), которые требуется удалить, и нажать клавишу DELETE.
Важно: Эта статья относится только к базам данных рабочего стола. Запросы на удаление и обновление невозможно использовать в веб-приложениях Access.
В этой статье
Выбор типа запроса
Для удаления данных из базы данных можно выбрать запрос на обновление или удаление. Выберите тип запроса на основании сведений в следующей таблице:
Запрос на удаление
Удаление всех записей (строк) из таблицы или двух связанных таблиц одновременно.
Примечание: Если записи хранятся на стороне «один» отношения «один-ко-многим», перед выполнения запроса на удаление необходимо изменить это отношение. Подробнее читайте в разделе по удалению данных из связанных таблиц.
Запросы на удаление удаляют все данные в каждом поле, вместе со значением ключа, который делает эту запись уникальной.
Запрос на обновление
Удаление отдельных полей из таблицы.
Упрощает удаление значений путем замены существующих значений на пустое значение (то есть без данных) или на пустую строку (пару двойных кавычек без пробела между ними).
Что необходимо проверить перед использованием запроса на удаление любых данных
Убедитесь, что файл не открыт в режиме только для чтения.
Щелкните правой кнопкой мыши кнопку Пуск и откройте проводник Windows.
Щелкните файл базы данных правой кнопкой мыши и выберите пункт Свойства.
Проверьте, не выбран ли параметр Только для чтения.
Проверьте наличие необходимых разрешений на удаление записей из базы данных. При необходимости обратитесь к системному администратору или разработчику базы данных.
Убедитесь, что содержимое базы данных активировано. По умолчанию приложение Access блокирует выполнение всех запросов (на удаление, обновление и создание таблицы), пока базе данных не будет предоставлено состояние доверенной. Чтобы узнать о признании базы данных доверенной, см. раздел Выполнение запроса, заблокированного из-за режима отключения содержимого.
Попросите других пользователей базы данных закрыть все таблицы, формы, запросы и отчеты, в которых используются удаляемые данные. Это позволит избежать конфликтов блокировки.
Перед редактированием или удалением записи необходимо создать резервную копию базы данных на случай необходимости отмены изменений.
Совет: Если к базе данных подключается большое количество пользователей, может потребоваться закрыть ее и снова открыть в монопольном режиме.
Открытие базы данных в монопольном режиме
Откройте вкладку Файл и выберите пункт Открыть.
Найдите и выберите базу данных, щелкните значок стрелки рядом с кнопкой Открыть, а затем выберите команду Монопольный доступ.
Создание резервной копии базы данных
Откройте вкладку Файл и выберите пункт Сохранить как.
В разделе Сохранить базу данных как выберите пункт Резервная копия базы данных. Приложение Access закроет исходный файл, создаст резервную копию и снова его откроет.
Нажмите кнопку Сохранить как и укажите имя и расположение для резервной копии, а затем нажмите кнопку Сохранить.
Примечание: При использовании базы данных, доступной только для чтения или созданной в более ранней версии приложения Аccess, может появиться сообщение о том, что резервную копию создать невозможно.
Чтобы вернуться к резервной копии, закройте и переименуйте исходный файл, чтобы получить возможность использовать имя исходной версии. Назначьте имя исходной версии резервной копии и откройте переименованную копию.
Использование запроса на удаление
Чтобы создать запрос на удаление, на вкладке «Создание» в группе «Запросы» нажмите кнопку «Конструктор запросов». Дважды щелкните каждую таблицу, из которой вы хотите удалить записи, и нажмите кнопку «Закрыть».
Таблица будет отображена в верхней части бланка запроса. В списке полей дважды щелкните звездочку (*), чтобы добавить все поля таблицы в бланк запроса.
Использование специальных условий в запросе на удаление
Важно: Условия служат для указания только тех записей, которые требуется удалить. В другом случае запрос на удаление удалит все записи в таблице.
Дважды щелкните поле, которое вы хотите указать в качестве условия для удаления, введите одно из критериев в строке «Условия» конструктора запросов, а затем введите для каждого поля условия запроса поле «Показать».
Пример использования этого параметра: предположим, вы хотите удалить все ожидающих ожидания заказов для клиента. Чтобы найти только эти записи, нужно добавить поля «ИД клиента» и «Дата заказа» в сетку конструктора запросов, а затем ввести номер ИД клиента и дату, когда заказы этого клиента стали недействительными.
На вкладке Конструктор выберите команду Режим > Режим таблицы.
Убедитесь, что выбраны записи, которые требуется удалить, а затем нажмите клавиши CTRL+S, чтобы сохранить запрос.
Для выполнения запроса дважды щелкните его в области навигации.
Использование запроса на обновление
Примечание: Запросы на обновление невозможно использовать в веб-приложениях Access.
В этом разделе описано, как использовать запрос на обновление для удаления отдельных полей из таблиц. Помните, что выполнение запроса на обновление для удаления данных заменяет существующие значения на пустые или на строки нулевой длины (пару двойных кавычек, не разделенных пробелом), в зависимости от заданного условия.
На вкладке Создание в группе Запросы нажмите кнопку Конструктор запросов.
Выберите таблицу с данными, которые вы хотите удалить (если таблица связана, выберите таблицу на стороне отношения «один»), нажмите кнопку Добавить, а затем — Закрыть.
Таблица будет отображена в верхней части бланка запроса. В этом окне перечислены все поля выбранной таблицы.
Чтобы добавить все поля в бланк запроса, дважды щелкните звездочку (*). Это позволит удалить все записи (строки) из таблицы.
Дополнительно можно указать условия для одного или нескольких полей в строке Условия, а затем снять флажок Показать в каждом поле условий. Дополнительные сведения см. в таблице Примеры условий для выбора запросов.
Примечание: Условия служат для выбора только тех записей, которые необходимо изменить. В противном случае запрос на обновление изменит все записи в полях запроса на значение NULL.
На вкладке Конструктор в группе Результаты выберите команду Режим, а затем — Режим таблицы.
Убедитесь, что выбраны записи, вместо которых нужно вставить значение NULL или строку нулевой длины (пару двойных кавычек без пробела между ними («»).
При необходимости повторяйте шаги 3–5, изменяя поля или условия отбора, пока не будут выбраны только те данные, которые нужно удалить. После этого нажмите клавиши CTRL+S, чтобы сохранить запрос.
Для выполнения запроса дважды щелкните его в области навигации.
Дополнительные сведения
Удаление данных из связанных таблиц
Если вы хотите удалить данные из нескольких связанных таблиц, необходимо включить параметры Целостность данных и Каскадное удаление связанных записей для каждой из связей. Это позволит запросу удалять данные из таблиц на сторонах отношения «один» и «многие». Подготовка к удалению связанных данных требует проверки следующих параметров.
Определите, какие из записей находятся на стороне отношения «один», а какие — на стороне «многие».
Если нужно удалить записи на стороне отношения «один» и связанные записи на стороне «многие», включите набор правил «Целостность данных» и разрешите операцию каскадного удаления. Далее в этом разделе описано понятие целостности данных и указано, как выполнить оба действия.
Если вам нужно удалить данные только на стороне отношения «один», сначала удалите отношение, а затем — данные.
Если требуется удалить данные только со стороны отношения «многие», создайте и выполните запрос на удаление, не внося изменений в отношение.
Чтобы узнать, какие записи находятся на сторонах отношения «один» и «многие», на вкладке Работа с базами данных в группе Отношения нажмите кнопку Схема данных. Вкладка Схема данных отображает таблицы в базе данных и связи между ними. Каждая связь изображается линией, соединяющей поля таблиц.
На рисунке ниже изображена типичная связь. В большинстве связей (если не во всех) присутствует сторона «один» и сторона «многие». В схеме связей сторона «один» обозначается единицей (1), а сторона «многие» — знаком бесконечности (∞).
При удалении записей, расположенных на стороне «один», удаляются также все связанные записи на стороне «многие». Однако при удалении записей на стороне «многие» записи на стороне «один» обычно не удаляются.
Коме того, приложение Access автоматически использует набор правил целостности данных. Эти правила обеспечивают правильность значений во внешних ключах базы данных. Внешний ключ — это столбец, значения которого совпадают со значениями в столбце первичного ключа в другой таблице.
Изменение связи
Следующие инструкции выполняются только если необходимо удалить данные на сторонах отношения «один» и «многие».
На вкладке Работа с базами данных в группе Отношения нажмите кнопку Схема данных.
Щелкните правой кнопкой мыши связь (линию) между таблицами, включенными в операцию удаления, и выберите в контекстном меню команду Изменить связь.
Убедитесь в том, что в диалоговом окне Изменение связей установлен флажок Обеспечение целостности данных.
Установите флажок Каскадное удаление связанных записей.
Примечание: Пока вы снова не отключите это свойство, при удалении записей, расположенных на стороне «один», будут удаляться также все связанные записи на стороне «многие».
Нажмите кнопку OK и закройте область Схема данных. После этого можно перейти к дальнейшим действиям.
Удаление связи
Откройте область Схема данных, если она закрыта.
На вкладке Работа с базами данных в группе Отношения нажмите кнопку Схема данных.
Запишите имена полей, участвующих в отношении, чтобы после удаления данных можно было восстановить связь.
Щелкните правой кнопкой мыши связь (линию) между таблицами, включенными в операцию удаления, и выберите в контекстном меню команду Удалить.
Примечание: Чтобы восстановить связь, откройте область Схема данных, как показано выше, и перетащите поле первичного ключа из таблицы «один» на поле внешнего ключа таблицы «многие». Будет открыто диалоговое окно Изменение связей. Если в исходном отношении была включена целостность данных, установите флажок Обеспечение целостности данных и нажмите кнопку Создать. В противном случае просто нажмите кнопку Создать.
Примеры условий отбора для запросов
В следующей таблице приведены примеры условий, которые можно использовать в запросах на выборку, когда требуется убедиться, что удаляются только необходимые данные. В некоторых из этих примеров используются подстановочные знаки.
Возвращает все числа больше 234. Чтобы найти все числа меньше 234, используйте условие < 234
Выбирает все записи от «Новосибирск» до конца алфавита.
Between #02.02.2010# And #12.01.2010#
Выбирает даты между 2-фев-2010 и 1-дек-2010 (ANSI-89). Если в базе данных применяется набор подстановочных знаков ANSI-92, используйте вместо знака решетки (#) одинарные кавычки (‘). Пример: Between ‘02.02.2010’ And ‘12.01.2010’.
Находит все записи, в которых содержимое поля не соответствует значению «Германия». Согласно этому условию будут найдены записи, содержащие дополнительный текст, кроме слова «Германия», например «Германия (евро)» или «Европа (Германия)».
Находит все записи, кроме тех, которые начинаются с буквы «Т». Если в базе данных применяется набор подстановочных знаков ANSI-92, используйте знак процента (%) вместо знака звездочки (*).
Находит все записи, которые не оканчиваются буквой «т». Если в базе данных применяются подстановочные знаки ANSI-92, используйте знак процента (%) вместо звездочки (*).
Находит все записи в списке со словами «Канада» или «Великобритания».
Находит в поле с типом данных «Текстовые» все записи, начинающиеся с букв «А–Г». Если в базе данных используются подстановочные знаки ANSI-92, используйте знак процента (%) вместо знака звездочки (*).
Находит все записи, которые содержат сочетание букв «тр». Если в базе данных применяются подстановочные знаки ANSI-92, используйте знак процента (%) вместо звездочки (*).
Like «Григорий Верны?»
Находит все записи, начинающиеся с имени «Григорий» и содержащие вторую строку из 9 букв, из которых 6 букв составляют начало фамилии «Верный», а последняя буква неизвестна. Если в базе данных применяется набор подстановочных знаков ANSI-92, используйте вместо вопросительного знака (?) знак подчеркивания (_).
Находит все записи для 2 февраля 2010 г. Если в базе данных используются подстановочные знаки ANSI-92, необходимо заключить дату в одинарные кавычки вместо знаков решетки (‘2.2.2010’).
Использует функцию Date для возврата всех дат не менее 30-дневной давности.
Использует функцию Date для возврата всех записей, содержащих текущую дату.
Between Date( ) And DateAdd(«M», 3, Date( ))
Использует функции Date и DateAdd которые возвращают все записи между текущей датой и датой на три месяца позже.
Возвращает все записи, содержащие пустое (незаполненное или неопределенное) значение.
Выбирает все записи с любым (не пустым) значением.
Возвращает все записи, содержащие строку нулевой длины. Пустые строки служат для добавления значений в обязательные поля, если фактическое значение неизвестно. Например, в поле требуется ввести номер факса, но у некоторых клиентов его нет. В этом случае вводится пара двойных кавычек без пробела («»).
Советы по устранению неполадок
Почему на экране может появиться это сообщение об ошибке, и как его исправить?
Если запрос на удаление строится с использованием нескольких таблиц, а для свойства запроса Уникальные значения задано значение Нет, при попытке выполнения запроса Access выведет на экран сообщение об ошибке Удаление из указанных таблиц невозможно.
Чтобы решить эту проблему, задайте для свойства запроса Уникальные значения значение Да.
Откройте запрос на удаление в конструкторе.
Если окно свойств запроса не открыто, нажмите для его открытия клавишу F4.
Щелкните конструктор запросов, чтобы в окне свойств отображались свойства запроса, а не свойства поля.
В окне свойств найдите свойство Уникальные значения и назначьте ему значение Да.
Выполнение запроса, заблокированного из-за режима отключения содержимого
Если открыть базу данных рабочего стола, которая не является доверенной или не находится в надежном расположении, Access будет по умолчанию блокировать все запросы на изменение.
Если при попытке выполнения запроса на изменение ничего не происходит, проверьте, не появляется ли в строке состояния Access следующее сообщение:
Данное действие или событие заблокировано в режиме отключения.
Если отображается это сообщение, чтобы разблокировать содержимое, выполните следующие действия.
На панели сообщений Предупреждение системы безопасности нажмите кнопку Включить содержимое и снова выполните запрос.
Запросы удаления и замены. Перекрестные запросы
Запросы с удалением записей
Рассмотренные в предыдущих частях запросы относились к запросам выборки, которые не изменяют записи, а только выдают часть записей, удовлетворяющих определенным условиям.
В Access имеются запросы, позволяющие изменять и удалять записи.
Прежде чем использовать запросы на удаление рекомендуется сделать соответствующий запрос на выборку. А затем изменить тип запроса, выбрав на Ленте Конструктор в разделе Тип Запроса найти кнопку Удаление.
При выполнении запроса на удаление появляется сообщение с указанием количества записей, которые будут удалены. Выбрав Да все эти записи будут удалены.
Задание.
- Из таблицы ЗАКАЗ удалить все записи для данного покупателя. Фамилию покупателя вводить как параметр.
- Из таблицы ЗАКАЗ удалите все записи, соответствующие названию введенного товара.
Запросы замены
Для выполнения запросов замены на Ленте Конструктор в разделе Тип Запроса необходимо выбрать Обновление.
Задание. Создайте запросы
- “Инфляция”, увеличивающий все цены на 10% на основе поля Цена таблицы ТОВАР.
- “Уценка” для таблицы ТОВАР. Для товаров, стоимость которых меньше 50 р, уменьшите стоимость на заданное число процентов.
Перекрестные запросы
В результате перекрестных запросов получаются двумерные таблицы. В ячейках таблицы выдаются значения, соответствующие показателям по строке и столбцу.
Создадим запрос, выводящий сколько каких товаров купили покупатели. Для этого из таблицы ЗАКАЗ выбираем поля Код покупателя, Код товара, количество товара. Выбрав кнопку Итоги, задаем Группировка – Sum. Далее на Ленте Конструктор в разделе Тип Запроса выбираем Перекрестный. Затем для Кода покупателя в строке Перекрестная таблица задаем режим Заголовки строк, для Кода товара – Заголовки столбцов, для Количества товара – Значение. Все готово, выполним запрос, получим искомую таблицу.
Пример выполнения запроса приведен на рисунке.
Задание. Запросам придумайте красивые названия самостоятельно.