Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Пособие[2].doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
4 Мб
Скачать
☆

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

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

Рассмотрим создание такого запроса. Предположим, что нам нужно выявить заказы, оформленные в течение двух последних месяцев (отсчитывая от сегодняшнего дня) и представить их в виде соответствующей таблицы. Для этого вначале создадим запрос на выборку, чтобы убедиться, что мы работаем с нужными данными (в нашем случае это запрос на основе таблицы «Заказы» (рисунок 6.26). После этого для поля «ДатаЗаказа» в строке «Условие отбора» вводим выражение (это можно сделать при помощи «Построителя выражений»), которое обеспечивает выполнение данного условия. В нашем случае: Date()-[ДатаЗаказа]<=61.

Рисунок 6.26 – Запрос на выборку с заданным условием отбора записей

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

Рисунок 6.27 – Новый набор записей

Чтобы преобразовать запрос на выборку в запрос на создание таблицы, необходимо выбрать команду «Запрос – Создание таблицы». Access выведет окно диалога «Создание таблицы». Введите с клавиатуры подходящее имя для итоговой таблицы и нажмите кнопку «OK», чтобы закрыть окно диалога (рисунок 6.28).

Рисунок 6.28 – Создание новой таблицы

Закончив построение запроса на создание таблицы, вы можете выполнить его с помощью команды «Запрос – Запуск» или кнопки «Запуск» на панели инструментов. Access выберет записи и сообщит о количестве вставляемых в таблицу строк, выводя на экран окно диалога для подтверждения создания таблицы. Чтобы создать новую таблицу и поместить в нее записи, надо нажать кнопку «Да». Если после этого переключиться в окно базы данных и перейти на вкладку «Таблицы», то в перечне таблиц появится новая только что созданная таблица.

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

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

Создадим запрос, который будет добавлять в таблицу (которую мы создали в предыдущем примере) новые записи, то есть заказы, которые не были выполнены в течении этих двух месяцев. Для этого необходимо создать запрос на выборку на основе исходной таблицы; для поля «ДатаЗаказа» в строке «условие отбора» ввести следующее выражение: Date()-[ДатаЗаказа]>=61, затем выбрать тип запроса «Запрос – Добавление», и указать ту таблицу, в которую мы хотим добавить записи (рисунок 6.29).

Рисунок 6.29 – Создание запроса на добавление

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