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

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

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

· КодКлиента — длина 5 символов;

· Название — длина 40 символов;

· Адрес — длина 250 символов.

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

Адрес: [Клиенты].[Индекс] & IIf(IsNull([Клиенты].[Индекс]);"";",") & [Клиенты].[Страна] & ","& [Клиенты].[Город] & "," & [Клиенты].[Адрес]

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

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

Рис. 4.1. Диалоговое окно Добавление

Рис. 4.2. Запрос на добавление записей во временную таблицу текущей базы данных

Пояснения

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

б). После выполнения запроса полям целевой таблицы, не указанным в бланке запроса и для которых не задано свойство значение по умолчанию, автоматически будет присвоено значение Null. Однако, если свойство такого поля Обязательное поле имеет значение Да, то соответствующая запись добавлена не будет и Microsoft Access выдаст сообщение об ошибке. Точно так же проверяются и остальные свойствa, связанные с ограничениями, наложенными на поле в режиме конструктора таблиц — условие на значение, пустые строки, индексированное поле, а также ограничения, связанные со ссылочной целостностью. Записи, в которых хотя бы в одном поле нарушено хотя бы одно из вышеперечисленных ограничений, добавлено в таблицу не будет с выдачей соответствующего сообщения об ошибке.

в). В определении поля Адрес использована громоздкая конструкция с использованием функций IsNull() и IIf(). Все это применяется с одной целью — запретить вывод запятой в поле в случае, когда Индекс не содержит никаких значений (в этомслучае адрес будет начинаться с запятой). То есть, если значение поля Индекс не пустое, то после него выводится запятая, иначе — нет.

г). Инструкция SQL. Предложение INSERT, расположенное в самом начале оператора SQL, указывает, что запрос является запросом на добавление записей. В следующей за ключевым словом INSERТ конструкции INTO содержится название целевой таблицы и, далее, в круглых скобках список полей целевой таблицы. Порядок следования полей в этом списке строго соответствует порядку полей в инструкции SELECT. П осле предложения INSERT расположен оператор SQL, задающий стандартный запрос на выборку, начинающийся с предложения SELECT и заканчивающийся предложением ORDER BY.

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


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: