Как сделать запрос на изменение в access?

Изменение данных с помощью модифицирующих запросов в MS Access XP. Создание запросов на изменение

Страницы работы

Содержание работы

ЗАДАНИЕ 4. ИЗМЕНЕНИЕ ДАННЫХ С ПОМОЩЬЮ МОДИФИЦИРУЮЩИХ ЗАПРОСОВ В MS ACCESS XP. СОЗДАНИЕ ЗАПРОСОВ НА ИЗМЕНЕНИЕ.. 2

1. СОЗДАНИЕ ЗАПРОСОВ НА ОБНОВЛЕНИЕ ДЛЯ ИЗМЕНЕНИЯ ЗНАЧЕНИЙ.. 2

2. ЗАПРОС НА СОЗДАНИЕ ТАБЛИЦЫ.. 4

3. ЗАПРОСЫ УДАЛЕНИЯ.. 6

4. ПОИСК В ТАБЛИЦАХ ЗАПИСЕЙ С ПОМОЩЬЮ МАСТЕРА ЗАПРОСОВ.. 8

4.1. Перекрестный запрос. 9

4.2. Запрос на поиск повторяющихся записей. 12

4.3. Поиск в таблицах записей, не имеющих подчиненных. 14

5. ВОПРОСЫ ДЛЯ САМОПОДГОТОВКИ.. 16

6. ИТОГОВЫЕ ЗАДАНИЯ ПО РАЗДЕЛУ.. 16

ЗАДАНИЕ 4. ИЗМЕНЕНИЕ ДАННЫХ С ПОМОЩЬЮ МОДИФИЦИРУЮЩИХ ЗАПРОСОВ В MS ACCESS XP. СОЗДАНИЕ ЗАПРОСОВ НА ИЗМЕНЕНИЕ

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

Запросы на изменение могут быть использованы для выполнения следующих операций:

· Обновление информации в группе записей.

· Удаление записей из таблицы (или группы таблиц).

· Добавление записей из одной таблицы в другую.

Запросы на обновление являются разрушающими и требуют предельно аккуратного их использования. Их действие – необратимо! Если вы оказались недостаточно внимательны, выполняя запрос на изменение, то ваша база данных может быть безнадежно запорчена!

Перед выполнением запроса на обновление рекомендуется выполнить следующие действия:

· Сохраните в архиве таблицы, в которые вы намерены внести изменения.

· Создайте запрос на изменение, используя необходимые поля и критерии.

· Внимательно просмотрите выбранные записи в режиме просмотра результирующей таблицы.

· Запустите запрос на изменение, используя кнопку «Запуск» на панели инструментов

· Проверьте внесенные изменения.

Выполнение вышеперечисленных действий не гарантирует полной защиты от ошибок (например, ошибочного удаления записей), но позволяет свести их к минимуму.

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

1. СОЗДАНИЕ ЗАПРОСОВ НА ОБНОВЛЕНИЕ ДЛЯ ИЗМЕНЕНИЯ ЗНАЧЕНИЙ

Рассмотрим действие запроса на изменение на примере изменения величины минимальной заработной платы в таблице «Справка». На момент написания данного пособия (начало 2003 года) величина минимальной заработной платы составляла 450 рублей. Предположим, что наши законодатели увеличили ее , до 650 рублей.

Замените 100 руб. на 650 во всех записях таблицы «Справка» в поле «MINX».

Используя режим Конструктора запроса, создайте запрос, в который включите поля таблиц базы данных, значения которых вы хотите изменить.

· Убедитесь, что в таблице, полученной в результате запроса, содержатся все необходимые данные, которые вы намерены изменить.

· Вновь вернитесь в режим Конструктора запросов

· Выделите команду Запрос Þ Обновление.

· В поле «Обновление» столбца «MINX» введите новое значение: просто напишите число 650

Обратите внимание, что, что если вы будете использовать в формулах имена полей, то имя поля должно быть заключено в квадратные скобки « [ ] »

· Выполните команду Запрос Þ Запуск или щелкните на кнопке выполнения запроса «Запуск» .

· Появится окно с сообщением о количестве заменяемых записей.

· Щелкните по кнопке «Да».

В результате выполнения запроса на обновление была выполнена операция изменения размера минимальной заработной платы со 450 до 650 рублей.

ВНИМАНИЕ! К сожалению, ваша радость по увеличению минимального уровня зарплаты оказалась напрасной.

Вы не заметили, что это был только проект закона.

· Поэтому вновь верните размер поля «MINX»таблицы «Справка» прежнее значение 450 рублей. Не забудьте проверить саму таблицу «Справка».

· Сохраните запрос под именем «Запрос на обновление MINX».

запросы на изменение будут отмечаться в окне базы данных знаком .

Помните, что в отличие от обычного запроса, который можно запускать многократно, запрос на обновление запускается только один раз. Повторный его запуск вызовет повторное обновление данных. Его можно просмотреть только в режиме Конструктора запросов!

2. ЗАПРОС НА СОЗДАНИЕ ТАБЛИЦЫ

В некоторых случаях у вас может возникнуть необходимость создания новой таблицы, содержащей поля уже имеющейся в ранее созданной базе данных. Например, в вашей таблице «Сотрудники» содержатся поля, которые используются очень редко (например, фотография сотрудника, его характеристика и др.). Может показаться удобным, хранить такие таблицы в отдельной таблице. Или может оказаться удобным хранить данные о сотрудниках в отдельных таблицах, каждая из которых относится к отдельному отделу (подразделению).

Для этой цели Access предлагает воспользоваться запросом на создание таблицы. Запросы для создания таблиц, как мы увидим позднее, имеют ряд несомненных преимуществ перед другими, альтернативными методами обмена данными (копирование, экспорт):

В первых, при использовании запроса на создание таблицы, вы можете использовать различные критерии для отбора записей, создать вычисляемые поля.

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

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

· Откройте вкладку Запросыдиалогового окна Базы данных.

· Щелкните на кнопке «Создание запроса в режиме конструктора».

· В открывшемся окне «Добавление таблицы» щелчком по кнопке «Добавить» выберите таблицы «Сотрудники» и «Справка», из которой вы хотите извлечь необходимую информацию и щелкните на кнопке «Закрыть».

· Выберите из таблиц необходимые поля и перенесите их в бланк запроса. Напоминаем, какие поля использовались при расчете заработной платы в предыдущем разделе курса (Задание 3. п. 5):

«KOEFF», «MINX», «DOPL_R» и «RKF» должны быть взяты из таблицы «Справка», а величины «Доплата»), «Вредность», «Классность», «Стаж» и «Доля ставки», должны быть взяты из таблицы «Сотрудники». Кроме того, в таблицу необходимо включить поля «Подразделение», «Фамилия» и «Имя» и «Должность».

При необходимости, задайте в соответствующих полях условия отбора записей

Семейство запросов на изменение

В программе Access есть четыре типа запросов на изменение:

¦ запрос на обновление изменяет значения в одной или нескольких записях;

¦ запрос на добавление выбирает одну или несколько записей и вставляет их в существующую таблицу;

¦ запрос на создание таблицы выбирает одну или несколько записей и создаст для них новую таблицу;

¦ запрос на удаление удаляет одну или несколько записей.

В следующих разделах мы попробуем создать запросы всех этих типов.

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

Запрос на обновление находит некоторые записи и затем изменяет их. Обычно изменения ограничиваются одним полем, но программа Access разрешает корректировать столько полей, сколько нужно. У вас также есть некоторая свобода в способе реализации обновления. Простейший вариант — ввести совершенно новое значение в поле. Можно создать запрос, который перемещает все товары из одной категории в другую с помощью ввода нового значения в поле CategoryID. Другой вариант — изменение текущих значений в поле с помощью выражения (специальная формула БД, способная выполнять разнообразные вычисления). Можно повысить цены на 10% или добавить неделю к сроку завершения для всех невыполненных проектов.

Если вам нужно выполнить очевидное одноразовое обновление, может быть, предпочтительней воспользоваться поиском и заменой на листе данных (см. разд. «Поиск» главы 2). Этот подход предоставляет возможность просмотреть найденные совпадения и решить, заменять каждое из них или нет.

В приведенном далее примере используются таблицы Products и Products Categories из БД Boutique Fudge (которая описана в разд. «Магазин шоколадных изделий» главы 5). Запрос обновляет все товары в категории Beverages (напитки), повышая цены товаров на 10%. Вы можете самостоятельно выполнить этот пример, загрузив примеры к этой главе со страницы «Missing CD» на Web-сайте www.missingmanuals.com.

Для создания запроса на обновление выполните следующие действия.

1. Создайте новый запрос, выбрав Создание > Другие > Конструктор запросов (Create > Other > Query Design).

Читать еще:  Как сделать формы в access 2007?

На экране появится диалоговое окно Добавление таблицы (Show Table).

2. Добавьте все таблицы, которые вы хотите включить в ваш запрос, выбрав каждую и щелкнув мышью кнопку Добавить (Add) (точно так же, как вы делали, создавая запрос на выборку). По завершении щелкните мышью кнопку Закрыть (Close).

Обычно в запросе на обновление используется одна таблица, но если нужна информация из нескольких связанных таблиц, добавьте их все. Включение в запрос нескольких таблиц создает объединение (см, разд. «Запросы и связанные таблицы» главы 6). Операция объединения в запросе на изменение действует так же, как в запросе на выборку — она извлекает информацию из таблицы-родителя и отображает ее рядом с записями из дочерней таблицы.

В данном примере вам потребуются таблицы Products и ProductCategories.

3. Измените тип запроса на запрос на обновление, выбрав Работа с запросами | Конструктор > Тип запроса > Тип запроса: обновление (Query Tools | Design > Query Type >Update).

Столбец со списком свойств полей в нижней части окна изменится, отражая новый тип запроса. Строки Сортировка (Sort) и Вывод на экран (Show) исчезнут (поскольку они не имеют смысла в запросах на обновление) и для каждого поля, включенного в запрос, появится строка Обновление (Update To).

4. Добавьте поле (или поля), которое вы хотите использовать для отбора и задайте для каждого свойство Условие отбора (Criteria).

Условия отбора определяют, какие записи отберет программа Access. Поскольку данный запрос — это запрос на обновление, отобранные записи — это записи, в которые будут вноситься изменения.

В данном примере следует использовать поле CategoryID или поле CategoryName. Если используется поле CategoryID, нужно задать значение кода (ID) для вашей категории. Если применяется поле CategoryName, можно искать соответствия с помощью названия категории.

Для добавления поля дважды щелкните его кнопкой мыши на схеме в прямоугольнике таблицы так же, как вы делали это в запросе на выборку. Затем задайте условие отбора для значения, с которым вы хотите найти совпадения, как показано на рис. 8.1. Если вы хотите обновить все записи в таблице, то никакого условия отбора не нужно.

Рис. 8.1. Этот запрос ищет продукты в категории Beverages

5. Добавьте поле (или поля), которое хотите изменить.

В данном примере следует добавить поле Price, таким образом, вы сможете изменить цены продуктов.

6. В строке Обновление задайте новое значение, которое ваш запрос поместит в каждое поле.

Существуют два способа обновления поля. Можно задать фиксированное значение, введя его в строке Обновление. Если выбрать этот подход, программа Access вставит в каждую отобранную вами запись именно это значение.

Можно также применить выражение, которое берет одно или несколько значений из существующих полей и использует их для вычисления нового значения. Вы можете применять все операции и функции, описанные в главе 7 и предназначенные для обработки текста, чисел и дат. Например, можно использовать следующее выражение в поле Price для повышения цен товаров на 10%:

В выражении обновления может использоваться один или несколько параметров (см. разд. «Параметры запроса» главы 7). В этом случае Access запрашивает у пользователя, выполняющего запрос, важную информацию (например, каково процентное изменение цены).

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

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

Для того чтобы заставить работать этот предварительный просмотр, нужно применить один формальный прием. Программа Access игнорирует поля, которые вы не собираетесь обновлять. Поэтому если вы хотите добиться вывода на листе данных поля ProductName, следует задать что-то в строке Обновление. В данном случае используйте значение [ ProductName ]. Этот шаг заставит программу Access заменить значение в поле ProductName текущим значением поля ProductName. Другими словами, Access на самом деле ничего менять не будет, но отобразит поле ProductName па листе данных в окне предварительного просмотра.

На рис. 8.2 показан законченный запрос на обновление.

8. Щелкните правой кнопкой мыши заголовок вкладки и выберите команду Режим таблицы (Datasheet View) для просмотра записей, на которые повлияет ваш запрос (рис. 8.3).

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

В обычном запросе на выборку просмотр листа данных и выполнение запроса — равнозначные действия. В запросе на изменение отображение листа данных показывает строки, которые будут изменены, но на самом деле не изменяет их. Выполнение запроса изменяет данные, но не показывает измененные записи.

9. Теперь вернитесь в Конструктор (щелкните правой кнопкой мыши заголовок вкладки и выберите Конструктор (Design View)). Если вы уверены в том, что запрос действует правильно, выберите Работа с запросами | Конструктор > Результаты > Выполнить (Query Tools | Design > Results > Run) для запуска запроса на обновление и внесения заданных изменений.

Рис. 8.2. Этот запрос отбирает все товары в заданной категории и повышает их цену на 10%

Рис. 8.3. Здесь показан предварительный просмотр. В нем отображаются все товары в категории Beverages с текущими ценами. Когда вы выполните запрос, именно эти записи изменятся

Помните: перед выполнением этого шага рекомендуется сделать резервное копирование вашей БД.

Когда вы выполняете запрос на изменение, программа Access предупреждает о том, что собирается выполнить изменение БД (рис. 8.4). Щелкните мышью кнопку Да (Yes) для внесения изменений.

Рис. 8.4. Вверху: при каждом выполнении запроса на изменение Access предупреждает о том, что запрос изменит БД. Если вам не нужно это напоминание, выполните действия, перечисленные в этом окне для открытия диалогового окна Параметры Access и отключения вывода на экран этого предупреждения. (Сначала нужно щелкнуть мышью кнопку Нет для закрытия диалогового окна). Внизу: далее Access сообщает о количестве изменяемых записей и дает вам последний шанс отказаться от изменений. Программа всегда предоставляет эту информацию, даже если отключен вывод стандартных предупреждений. Если сейчас щелкнуть мышью кнопку Да, Access обновит таблицу

К сожалению, программа Access не показывает измененные записи — она вообще ничего не показывает. Если вас интересует, что же произошло, и вы хотите просмотреть только что измененные записи, у вас один вариант — снова вывести на экран окно предварительного просмотра записей, которые вы только что изменили (щелкнув правой кнопкой мыши заголовок вкладки и выбрав Режим таблицы). Этот способ действует до тех пор, пока вы не изменили записи таким образом, что они больше не соответствуют условиям отбора. (Если это произошло, следует создать новый запрос или просмотреть таблицу для двойной проверки ваших данных.)

10. Для сохранения запроса нажмите комбинацию клавиш + (или закроите вкладку запроса). При этом придется задать имя запроса.

Используйте имя запроса, четко указывающее на то, что это запрос на изменение. Можно, например, задать имя UpdateProductPrices (изменение цен товаров). Запросы на изменение отображаются в области переходов с пиктограммой восклицательного знака. У каждого типа запроса на изменение слегка отличающаяся пиктограмма — для запросов на обновление применяется пиктограмма с карандашом и восклицательным знаком за ним (рис. 8.5).

Если вы не собираетесь повторно использовать свой запрос, может быть, стоит его удалить. Удаление запроса защитит от случайного выполнения вами (или кем-то еще) запроса и внесения нежелательных изменений.

Рис. 8.5. Помните о том, что двойной щелчок по запросу в области переходов запускает его на выполнение. Если вы щелкнули мышью запрос на изменение, например, такой, как выделенный на этом рисунке, то можете изменить или удалить важные данные. (Для открытия запроса на изменение без его запуска щелкните по его имени правой кнопкой мыши и выберите команду Конструктор)

Аварийная ситуация. Когда Access блокирует ваше обновление

Рассмотрим рабочий аспект стратегии программы Access: что происходит, когда вы нажимаете мышью кнопку Выполнить (как описано в пункте 9 предыдущего алгоритма), и пет никакой реакции? Не появляются ни предупреждение, ни окно сообщения или ошибки, объясняющие причину сбоя. Лишь в строке состояния, в нижней части окна Access выводится таинственное сообщение, которое любезно информирует о том, что «действие или событие заблокировано режимом отключения» («The action or event has been blocked by Disabled Mode»). Что все это значит?

Access — по-настоящему параноидальная программа. Она не разрешает вам выполнять некоторые действия до тех пор, пока вы явно не подтвердите, что все в порядке.

Как вы узнали из разд. «Открытие БД» главы 1, каждый раз, когда вы открываете вашу БД, Access отображает панель сообщений с сообщением системы безопасности. Вам решать, что делать с этим сообщением. Можно щелкнуть мышью кнопку ? в правом верхнем углу, чтобы полностью скрыть эту панель. В этом случае ваша БД остается в отчасти заблокированном состоянии. Вы можете создавать, изменять и удалять объекты БД, принадлежащие вам, но не можете запускать никакой код или запросы на изменение. (Для повторного вывода на экран панели сообщений и просмотра сообщения системы безопасности выберите на ленте Работа с таблицами > Показать или скрыть > Панель сообщений (Database Tools > Show/Hide > Message Bar).)

Другой способ — щелкнуть мышью кнопку Параметры (Options) на панели сообщений для отображения диалогового окна Параметры безопасности Microsoft Office

Читать еще:  Как сделать итоговый запрос в access?

(Microsoft Office Security Options). Дальше следует выбрать переключатель Включить это содержимое (Enable this content) и щелкнуть мышью кнопку ОК. Этот шаг предоставляет программе Access непоколебимую гарантию безопасности вашей БД — другими словами, БД разработана не жующим чипсы хакером в подвале родительского дома. После того как вы предприняли этот шаг, Access разрешает выполнять запросы на изменение (по крайней мере, до тех пор, пока вы не закрыли БД, не открыли ее снова и не увидели на экране повторно отображенное сообщение центра безопасности).

Если вы устали от многоразового включения БД при каждом ее использовании, есть другое решение. Можно заставить программу Access доверять всем БД в конкретной папке на вашем жестком диске. Этот метод описан в разд. «Задание надежного расположения » главы 15.

Создание и выполнение запроса на обновление

Примечание: Мы стараемся как можно оперативнее обеспечивать вас актуальными справочными материалами на вашем языке. Эта страница переведена автоматически, поэтому ее текст может содержать неточности и грамматические ошибки. Для нас важно, чтобы эта статья была вам полезна. Просим вас уделить пару секунд и сообщить, помогла ли она вам, с помощью кнопок внизу страницы. Для удобства также приводим ссылку на оригинал (на английском языке).

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

Для добавления новых записей используется запрос на добавление, для удаления записей — запрос на удаление.

В этой статье

Ниже представлены сходства и различия между функцией «Поиск и замена» и запросом на обновление

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

В отличие от функции Поиск и замена запрос на обновление позволяет:

использовать условия, которые не зависят от заменяемого значения;

обновлять несколько записей за раз;

изменять записи в нескольких таблицах одновременно.

Ограничения обновления полей

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

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

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

Поля с типом данных «Счетчик». Значения в полях с типом данных «Счетчик» изменяются только при добавлении записи в таблицу.

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

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

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

Примечание: При каскадном обновлении Access автоматически обновляет значения внешнего ключа при изменении значения первичного ключа в родительской таблице.

Использование запроса на обновление

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

Совет: Перед выполнением запроса на обновление рекомендуется создать резервную копию базы данных. Результаты данного запроса нельзя отменить, а созданная резервная копия позволит вам восстановить данные в случае необходимости.

Создание резервной копии базы данных

Откройте вкладку Файл и выберите команду Сохранить как. Обратите внимание: если вы используете Access 2010, откройте вкладку Файл и выберите команду Сохранить и опубликовать.

Справа в разделе Расширенная установка щелкните элемент Создать резервную копию базы данных.

В диалоговом окне Сохранение резервной копии укажите имя и расположение резервной копии и нажмите кнопку Сохранить.

Приложение Access закроет исходный файл, создаст резервную копию и снова его откроет.

Чтобы вернуться к резервной копии, закройте и переименуйте исходный файл, чтобы получить возможность использовать имя исходной версии. Назначьте резервной копии имя исходной версии и откройте переименованную резервную копию в Access.

В этом разделе

Этап 1. Создание запроса на выборку для определения обновляемых записей

Откройте базу данных, содержащую записи, которые нужно обновить.

На вкладке Создание в группе Запросы нажмите кнопку Конструктор запросов.

Откроется конструктор запросов и диалоговое окно Добавление таблицы.

Откройте вкладку Таблицы.

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

Таблица или таблицы отображаются в конструкторе запросов в одном или нескольких окнах, а в Windows список всех полей в каждой таблице. На этом рисунке показан конструктор запросов с обычной таблицей.

1. Таблица в окне конструктора запросов

2. Бланк запроса

В окнах таблиц дважды щелкните поля, которые необходимо обновить. Выделенные поля появятся в строке Поле бланка запроса.

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

Чтобы быстро добавить все поля в таблице, дважды щелкните звездочку (*) в верхней части списка полей таблицы в окне таблицы. На рисунке показан бланк запроса со всеми добавленными полями.

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

Таблица примеров условий

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

Примечание: Во многих примерах этой таблицы используются подстановочные знаки, чтобы сделать запрос более гибким или эффективным.

Лабораторная работа №3 Создание запросов на изменение в СУБД ACCESS

Лабораторная работа №3

Создание запросов на изменение в СУБД ACCESS.

Цель работы: в среде СУБД ACCESS освоить следующие приемы:

    Создание запроса на удаление записи Создание запроса на обновление записи Создание запроса на добавление записей Создание запроса на создание новой таблицы

Теоретические положения

Существует четыре типа запросов на изменение.

    На удаление записи. Запрос на удаление удаляет группу записей из одной или нескольких таблиц. Например, запрос на удаление позволяет удалить записи о товарах, поставки которых прекращены или на которые нет заказов. С помощью запроса на удаление можно удалять только всю запись, а не отдельные поля внутри нее. На обновление записи. Запрос на обновление вносит общие изменения в группу записей одной или нескольких таблиц. Например, на 10 процентов поднимаются цены на все молочные продукты или на 5 процентов увеличивается зарплата сотрудников определенной категории. Запрос на обновление записей позволяет изменять данные в существующих таблицах. На добавление записей. Запрос на добавление добавляет группу записей из одной или нескольких таблиц в конец одной или нескольких таблиц. Например, появилось несколько новых клиентов, а также база данных, содержащая сведения о них. Чтобы не вводить все данные вручную, их можно добавить в таблицу «Клиенты». На создание таблицы. Запрос на создание таблицы создает новую таблицу на основе всех или части данных из одной или нескольких таблиц. Запрос на создание таблицы полезен при создании таблицы для экспорта в другие базы данных Microsoft Access или при создании архивной таблицы, содержащей старые записи.

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

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

Создание таблицы, обновление, удаление, добавление

Создание таблицы. Этот запрос позволяет сохранить набор данных, вышедших в ответ на запрос, в виде таблицы.

Обновление. Используется для того, чтобы обновить значения некоторых полей для всех записей, вышедших в ответ на запрос.

Удаление. Используется для удаления всех записей, вышедших в ответ на запрос.

Добавление. Используется для добавления данных в имеющуюся таблицу.

ACCESS отмечает запросы-действия специальными значками

1. Особенности работы с запросами-действиями

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

Для создания резервной копии таблицы необходимо перейти в окно базы данных, выбрать таблицу, в которой произойдут изменения, а затем воспользоваться командой Правка/Копировать. Затем выполнить команду Правка/Вставить, и в диалоговом окне указать имя для копии таблицы.

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

Новый запрос желательно создать вначале как запрос на выборку. Так вы сможете проверить правильность отбора записей.

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

Читать еще:  Как сделать кнопочную форму в access 2007?

Быстрое переключение между режимами Конструктора и Выполнения обычно осуществляется с помощью одноименных пиктограмм, расположенных на панели инструментов.

2. Запросы на создание таблицы

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

Например, сводную информацию по годам необходимо хранить в течение 5 лет. Для этого создается итоговый запрос и результат его выполнения сохраняется в виде отдельной таблицы. Для этого в режиме Конструктора запросов нужно выбрать команду Запрос/Создание таблицы.

Access выведет на экран диалоговое окно «Создание таблицы», где нужно указать имя таблицы, в которой будут сохранены результаты выборки

3. Запросы на обновление записей

Этот тип запросов-действий предназначен для изменения значений некоторых полей для всех выбранных записей. После входа в режим Конструктора запроса нужно выбрать команду Запрос/Обновление. После этого в бланке запроса появится строка Обновление. Эта строка используется для того, чтобы задать новые значения для выбранных записей.

Обновлять значения можно не только в полях критериев, а в любом поле таблицы. Также для выбранных записей можно создавать вычисляемые поля.

4. Запрос на удаление записей

Этот вид запросов служит для удаления группы записей базы данных, удовлетворяющих определенным условиям. Обычный запрос можно преобразовать в запрос на удаление с помощьюкоманды Запрос/Удаление в режиме Конструктора запросов. При этом в бланке запроса появится строка Удаление, где можно ввести условие для удаления записей

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

Если в результате запроса присутствуют только подлежащие удалению записи, следует преобразовать его в запрос на удаление.

Удаление записей может привести к непредсказуемым результатам, в том числе и к нарушению целостности базы данных, по следующим причинам:

— Таблица является частью отношения один-ко-многим

— В качестве условия обеспечения целостности данных использована опция Каскадное удаление связанных полей.

Например, вы решили исключить каких-то студентов и удалить соответствующие записи из таблицы Студенты. При этом существует также таблица Экзамены, которая связана с таблицей Студенты, отношением один – ко многим. Если для обеспечения целостности данных выбрана опция Каскадное удаление связанных полей, в результате удаления записей о студентах будут удалены записи об их оценках, то есть информация об успеваемости!

Если установлена опция Каскадное удаление связанных полей и вы пытаетесь удалить записи в режиме просмотра таблицы, то получите предупреждение о возможном удалении данных в других таблицах. А при использовании запросов на удаление вы не увидите предупреждения. MS Access выдаст только информацию о количестве удаляемых записей, но ничего не скажет про каскадное удаление.

5. Запрос на добавление записей

С помощью запроса на добавление записей можно скопировать выбранные записи и поместить их в другую таблицу. Можно также использовать запрос на добавление для переноса данных в используемую базу данных из другого источника (из какой-либо другой таблицы).

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

Если необходимо добавить записи к таблице в другой базе данных, сначала следует присоединить таблицу-источник к базе, содержащей целевую таблицу, с помощью команды Файл/Внешние данные/Связь с таблицами. Для отбора добавляемых записей нужно составить запрос на выборку. Затем надлежит выполнить составленный запрос и оценить результат, переключившись в режим таблицы с помощью команды Вид/Режим таблицы. После этого необходимо вернуться в режим Конструктора и активизировать команду Запрос/Добавление.

В открывающемся окне диалога нужно в поле Имя таблицы имя таблицы, к которой требуется присоединить данные из результирующего набора записей запроса. Закрытие диалогового окна кнопкой ОК приводит к тому, что Access добавляет в бланк запроса строку Добавление

В строку Добавление автоматически (или вручную ) вставляются имена тех полей целевой таблицы, которые совпадают с именами полей запроса. Далее следует выполнить запрос. Для этого выполните команду Запрос/ Выполнить или щелкните по кнопке Выполнить на панели инструментов. В специальном диалоговом окне Access укажет сколько записей будет добавлено к целевой таблице, и потребует подтвердить выполнение этой операции.

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

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

Выполнение работы

Откройте базу данных Борей, вкладку Запросы.

Разработка запроса на создание таблицы

Требуется создать новую таблицу Неперспективные товары на базе таблицы Товары и включить в нее те товары, поставки которых прекращены.

    В режиме конструктора создайте запрос на базе таблицы Товары, включив в него все поля этой таблицы В поле ПоставкиПрекращены в строке Условие отбора укажите Да (так в запросе устанавливается значение Истина для логического типа данных, можно также использовать выражение Истина) В верхнем меню Запрос выполните команду Создание таблицы и в появившемся диалоговом окне “Создание таблицы” укажите имя таблицы “Неперспективные товары”, выберите переключатель В текущей базе данных и нажмите кнопку ОК. Выполните запрос. Появится сообщение о создании новой таблицы с указанием числа записей, помещаемых в нее. Нужно выбрать Да. В результате будет создана требуемая таблица, которую можно увидеть на вкладке Таблицы. Откройте новую таблицу “Неперспективные товары” и просмотрите ее.

Создание запроса на обновление записей

Фирма Борей решила поднять цены на молочные продукты на 10% по отношению к установленным ранее. Необходимо внести изменения в таблицу Товары.

    В режиме конструктора создайте запрос на базе таблицы Товары, включив в него все поля этой таблицы В верхнем меню Запрос выполните команду Обновление В поле Цена в строке Обновление напишите выражение [Цена]+[Цена]*0,1 В строке Условие отбора укажите для поля код типа 4, что соответствует Молочным продуктам Выполните запрос. Появится сообщение об обновлении записей с указанием их числа Откройте таблицу “Товары” и просмотрите ее.

3. Создание запроса на удаление записей.

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

    В режиме конструктора создайте запрос на базе таблицы Товары, включив в него все поля этой таблицы В поле ПоставкиПрекращены в строке Условие отбора укажите Да (или Истина) В верхнем меню Запрос выполните команду Удаление. Выполните запрос. Появится сообщение об удалении записей из таблицы с указанием числа удаляемых записей. Нужно выбрать Да. Откройте новую таблицу “Товары” и просмотрите ее.

Создание запроса на добавление записей

Добавим товары из таблицы Неперспективные товары, имеющиеся на складе, в таблицу Товары.

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

Если таблица находится в открытой в настоящий момент базе данных(это наш случай), выберите параметр в текущей базе данных.

Если таблица не находится в открытой в настоящий момент базе данных(это к общему сведению), выберите параметр в другой базе данных и введите имя базы данных, в которой находится таблица, или нажмите кнопку Обзор, чтобы указать путь к базе данных. Можно ввести путь к базе данных Microsoft FoxPro, Paradox или dBASE, а также строку подключения к базе данных SQL.

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

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

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

· Для полей, перемещенных в бланк запроса, введите в ячейку Условие отбора условие отбора, по которому будет осуществляться добавление. Нашим условием является наличие товара на складе, т. е. в поле НаСкладе в строке Условие отбора введем условие >0

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

· Для добавления записей нажмите кнопку Запуск на панели инструментов. Будет выведено сообщение о добавлении записей в таблицу Товары

· Просмотрите таблицу Товары

Выполните самостоятельно конструирование запросов действия

ЗАДАНИЕ На основе таблиц Билеты и Цены сконструировать запросы действия, которые выполняют:

• удаление записей в таблицах;

• обновление записей в таблицах;

Выполнить и сохранить все запросы под именами Созда­ние, Удаление, Обновление соответственно.

1. Назовите все виды запросов на изменение данных. В чем особенность этих запросов?

2. Для чего предназначен и как создается запрос на создание таблицы?

3. Для чего предназначен и как создается запрос на обновление записей?

4. Для чего предназначен и как создается запрос на добавление записей?

5. Для чего предназначен и как создается запрос на удаление записей?

Ссылка на основную публикацию
Adblock
detector