Запрос добавления используется для добавления данных из одной таблицы в другую. Запрос на добавление данных позволяет копировать данные, удовлетворяющие определенным условиям. Необходимость добавления данных из одной таблицы в другую может возникнуть при архивации. Например, если из таблицы «Продажи» данные за прошедший месяц, квартал или год надо перенести в архивную таблицу. В этом случае условие для копирования данных будет определяться заданием критерия отбора для поля «Дата».
Предположим из таблицы «Продажи» надо скопировать все данные за январь 1998 года в архивную таблицу «Архив». С этой целью создадим пустую таблицу «Архив», имеющую такую же структуру как и таблица «Продажи». Для этого надо выполнить следующие операции:
1. Переключиться на закладку «Таблицы», выбрать таблицу «Продажи» и скопировать ее в буфер обмена.
2. Затем командой «Вставить» из меню «Правка» вызвать окно диалога «Вставка таблицы».
3. В окне вставки таблицы набрать имя таблицы «Архив», выбрать параметр вставки «Только структура» и нажать на кнопку «ОК».
После этого на закладке «Таблицы» окна БД появится пустая таблица «Архив», в которую надо добавить все данные за январь 1998 года из таблицы «Продажи». Для создания запроса на добавление данных необходимо:
1. Перейти на закладку «Запросы» окна БД.
2. Выполнить команду «Создать» и выбрать инструмент «Конструктор».
3.
Добавить в окно конструктора запросов таблицу «Продажи» и закрыть окно добавления таблиц.
4. Командой «Добавление...» из меню «Запрос» открыть окно диалога «Добавление» (рис.4.33).
5.
В поле «Имя таблицы:» надо ввести имя таблицы, в которую будут добавлять данные: «Архив». Опции под этим полем позволяют выбрать базу данных, в таблицу которой будут добавляться данные: в таблицы из текущей базы данных или из какой-нибудь другой.
6. После этого в бланке запроса появится строка «Добавление:», в которой будет указываться имя поля таблицы «Архив» (рис.4.34). Таким образом, в первой строке бланка запроса указывается имя поля исходной таблицы, а в строке «Добавление:» указывается имя поля таблицы, в которую данные добавляются.
7. Далее необходимо заполнить бланк запроса: указать данные из какого поля исходной таблицы в какое поле приемной таблицы будет помещаться. В данном случае имена полей в обоих таблицах одинаковые и данные помещаются в одноименные поля (рис.4.34).
8. Так как надо скопировать в таблицу «Архив» данные за январь 1998 года, далее необходимо задать условия отбора данных: >=1/1/98 and <=1/31/98.
9. После заполнения бланка запроса его надо сохранить, дав запросу имя. Можно назвать данный запрос «Архивирование данных».
Созданный запрос появится в списке запросов на закладке «Запросы», он будет немного отличаться от остальных простых запросов: рядом с именем этого запроса будет значок плюс с восклицательным знаком. Таким образом запросы добавления выделяются в списке запросов, так как их выполнение может привести к изменению данных в таблицах БД.
При запуске запроса добавления выдается предупреждение о том, что данный запрос приведет к изменению данных таблицы и для продолжения работы запроса надо нажать на кнопку «Да». После этого появится окно диалога с сообщением о том какое количество записей будет добавлено в приемную таблицу и просьба подтвердить выполнение данной операции (рис.4.35). После нажатия кнопки «Да» в этом окне диалога указанное количество записей будет скопировано из исходной таблицы в приемную.
В данном примере из исходной таблицы копируются все поля в приемную таблицу и имена полей обоих таблиц совпадают. Однако могут быть ситуации, когда в исходной таблице полей намного больше чем в приемной и имена полей необязательно должны совпадать. При добавлении данных из таблицы в таблицу типы полей обязательно должны совпадать, т.е. не может быть так, что данные из исходной таблицы из поля одного типа добавляются в поле другого типа. Имена полей исходной и приемной таблицы указываются в бланке запроса и если имена не совпадают надо просто внимательно заполнять бланк запроса.