Создание запросов на добавление данных
Поэтому сначала создается запрос на выборку данных, в результат которого включаются те поля, которые должны составлять добавляемые записи, а также поля, в которых устанавливаются критерии отбора записей.
В качестве примера мы рассмотрим запрос, который будет выбирать из базы данных все заказы за 1996 год и переносить их в другую таблицу так, чтобы таблица "Заказы" (Orders) содержала только актуальные данные. Для этого сначала создадим таблицу, которая будет хранить устаревшие данные:
- Раскройте список таблиц в окне базы данных и выделите таблицу "Заказы" (Orders).
- Скопируйте таблицу в буфер обмена, нажав комбинацию клавиш <Ctrl>+<C>.
- Вставьте таблицу из буфера обмена, нажав комбинацию клавиш <Ctrl>+<V>. Появляется диалоговое окно Вставка таблицы (Paste Table As).
- В группе Параметры вставки (Paste Options) выберите переключатель Только структура (Structure Only).
- В поле имя таблицы (Table Name) введите строку: Заказы (архив). Нажмите кнопку ОК или клавишу <Enter>.
В списке появляется новая таблица, пока пустая, т. к. мы скопировали только структуру таблицы "Заказы" (Orders). Теперь создадим запрос на добавление, который позволит перенести в новую таблицу данные из таблицы "Заказы".
- Раскройте список таблиц в окне базы данных и выделите в нем таблицу "Заказы".
- Щелкните левой кнопкой мыши по стрелке на кнопке Новый объект (New Object) инструментальной панели и выберите из раскрывшегося списка элемент Запрос (Query). В диалоговом окне Новый запрос (New Query) выберите значение Конструктор (Design View). Появляется окно Конструктора запроса с таблицей "Заказы" в верхней части.
- Сначала создайте запрос на выборку нужных записей. Перетащите из списка полей таблицы "Заказы" все поля в строку бланка запроса Поле (Field).
- В строке Условие отбора (Criteria) столбца "ДатаРазмещения" введите выражение Between 101.01.961 And 131.12.961
- Запустите запрос на выборку, чтобы проверить, правильно ли отобраны записи. Оказались отобранными 152 записи.
- Выберите команду Запрос, Добавление (Query, Append) или щелкните левой кнопкой мыши по стрелке на кнопке Тип запроса (Query Type) и выберите из списка элемент Добавление (Append Query). Появляется диалоговое окно Добавление (Append), аналогичное диалоговому окну Создание таблицы (Make Table) (рис. 8.6).
- В поле имя таблицы (Table Name) необходимо выбрать из списка имя таблицы, в которую будут добавляться записи. В данном случае по умолчанию в нем указана таблица "Заказы (архив)", которую мы только что создали. Нажмите кнопку ОК. (Если бы таблица, в которую нужно добавить записи, находилась в другой базе данных, необходимо было бы выбрать переключатель в другой базе данных (Another Database) и затем в поле имя файла (File Name) указать имя файла MDB, который содержит требуемую таблицу.)
Рис. 8.6. Диалоговое окно Добавление
- В бланке запроса на добавление появляется дополнительная строка Добавление (Append To), содержащая названия полей таблицы, в которую добавляются записи (рис. 8.7). В данном случае названия полей запроса и названия полей таблицы совпадают, поэтому по умолчанию вся эта строка заполнена. Если имена полей не совпадают, необходимо выбрать из раскрывающегося списка в строке Добавление (Append To) имя поля результирующей таблицы, соответствующего полю в исходной таблице.
- Нажмите кнопку Запуск (Run), чтобы выполнить запрос. Прежде чем новые записи будут добавлены в таблицу, Access выдает сообщение о числе записей, которые предполагается добавить. Вы можете нажать кнопку Да (Yes), и только после этого записи будут добавлены. Если вы нажмете кнопку Нет (No), вставка записей будет отменена.
Замечание
Если записи добавляются в таблицу, которая уже непуста, то наиболее часто встречающейся ошибкой при выполнении этого запроса является попытка вставить записи, у которых значение первичного ключа совпадает с ключами уже имеющихся в ней записей. Такие записи вставлены не будут, будет только выдано сообщение об их количестве.
Рис. 8.7. Бланк запроса на добавление
- Сохраните запрос в базе данных, присвоив ему имя Копирование заказов. Обратите внимание на значок в списке запросов, соответствующий запросу на добавление. Как и в любом запросе на изменение, он содержит восклицательный знак, но отличается от значка запроса на создание таблицы.