Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
85
Добавлен:
15.04.2015
Размер:
20.12 Mб
Скачать

2.3.3. Модифицирующие запросы

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

  • запросы создания таблиц;

  • запросы удаления;

  • запросы добавления;

  • запросы замены,

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

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

Создание таблиц с помощью запросов выполняется в три этапа:

  1. Создание запроса на выборку.

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

  1. Преобразование запроса на выборку в модифицирующий запрос:

  • выберите Запрос/Создание таблицы. После чего откроется окно диалога “Создание таблицы” (рис.3.9);

  • введите имя таблицы, которую создаем, например “Покупки”. В этом же окне диалога вы можете указать, где должна быть создана новая таблица: в текущей базе данных или какой-либо другой;

  • нажмите кнопку ОК и закройте окно конструктора.

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

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

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

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

  1. Прежде всего необходимо создать резервную копию таблицы “Заказы”. Для этого нужно выделить эту таблицу и, нажав правую кнопку мыши, выбрать из контекстного меню команду Копировать. Затем, вызвав контекстное меню БД, выбрать команду Вставить. После чего будет предложено ввести наименование новой таблицы и параметры вставки. Например, введем имя новой таблицы “Заказы_копия”.

  2. Активизируйте категорию “Запросы” и откройте «Конструктор запросов», в который добавьте таблицу “Заказы”. Выберите команду Запрос/Удаление.

  3. Добавьте все поля из таблицы в бланк запроса. В поле Дата заказа в строке Условие отбора введите условие: 06.10.90.

  4. Запустите запрос на выполнение. Ms Access сообщит сколько строк будет удалено. Нажмите кнопку Да для удаления записей или кнопку Нет – для отказа от удаления.

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

Следует знать, что удаление записей может привести к непредсказуемым результатам, в том числе и к нарушению целостности БД. Не допускается удаление записи из главной таблицы, если существуют связанные с ней записи в подчиненной таблице. Например, невозможно удалить запись из таблицы “Клиенты”, если в таблице “Заказы” имеются заказы, относящиеся к данному покупателю.

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

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

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

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

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

  1. Создайте результирующую таблицу “Архив”.

  2. Откройте окно «Конструктор запросов» и добавьте таблицу “Заказы”.

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

  4. Задайте критерий отбора записей: в строке Условие отбора поля Дата заказа введите условие <=03.10.90.

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

  6. Выполните запрос.

Для просмотра таблицы “Архив” откройте её и убедитесь в правильности выполнения запроса.

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

Воспользуемся запросом обновления для изменения данных в таблице “Продавцы”. Предположим, что у продавцов, проживающих в городе Ленске, увеличились размеры комиссионных на 10 %. Для этого потребуется скорректировать комиссионные указанных продавцов в таблице:

  1. Откройте окно конструктора запросов и добавьте таблицу “Продавцы”.

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

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

  4. В строке Обновление первого столбца введите выражение или значение, которое должно быть использовано для изменения полей: [Продавцы]![Комиссионные]*1,1. Это выражение можно создать с помощью построителя выражений. В строке Условие отбора второго столбца введите “Ленск”. Полученный бланк запроса представлен на рис.3.10.

  5. Запустите запрос на выполнение. MS Access сообщит вам о количестве изменяемых записей.

Соседние файлы в папке МЕТОДИЧКИ