Microsoft Access 2007
Шрифт:
Рис. 6.4. Результат выполнения запроса на выборку
Был создан запрос на выборку из двух таблиц. До сих пор использовались знания, полученные из предыдущей главы. Чтобы преобразовать запрос, выполните следующие действия.
1. Щелкните правой кнопкой мыши на заголовке вкладки запроса. Выберите команду Конструктор .
2. На вкладке Конструктор в группе Тип запроса выберите команду Создание таблицы . Откроется окно Создание таблицы (рис. 6.5).
3. В
Листинг 6.2.
Запрос на создание таблицы
SELECT Клиенты. [Номер (ID)], Клиенты. Имя, Заказы. Дата, Заказы. Товар,
Заказы. Количество, Заказы. Сумма INTO [Заказы клиента 1]
FROM Клиенты INNER JOIN Заказы ON Клиенты. [Номер (ID)] = Заказы. Клиент
WHERE (((Клиенты. [Номер (ID)])=1));
4. Нажмите кнопку Выполнить . Откроется окно подтверждения операции.
5. Нажмите кнопку Да .
В структуре базы данных появилась новая таблица Заказы клиента 1 , содержащая те же поля и данные в них, которые содержала выборка.
Создание запросов на добавление данных
Запрос на добавление используется, когда необходимо добавить к имеющейся таблице новые записи. Исходных таблиц может быть одна или несколько, при этом они могут находиться в той же самой базе данных, что и результирующая, или в другой.
Как и в случае с запросом на создание таблицы, запрос на добавление данных создается из запроса на выборку. Добавьте в таблицу Заказы записи о заказах на все товары одного из покупателей.
1. Откройте базу данных Отдел продаж .
2. На вкладке Создание в группе Другие нажмите кнопку Конструктор запросов .
3. В окне Добавление таблицы дважды щелкните кнопкой мыши на названиях таблиц, из которых нужно получить данные. Вам понадобится только таблица Товары . Нажмите кнопку Закрыть .
4. Дважды щелкните кнопкой мыши на полях, которые необходимо добавить в выборку. Выберите поля Код и Цена .
5. В бланке запроса в строке Поле в третьей колонке введите значение 1. Это будет заказанное количество товаров.
6. В бланке запроса в строке Поле в четвертой колонке введите значение 3. Это номер покупателя из таблицы Клиенты .
7. В бланке запроса в строке Поле в пятой колонке введите date. Эта функция вернет текущую дату для поля Дата таблицы Заказы .
Результирующий бланк запроса на выборку показан на рис. 6.6.
Рис. 6.6. Результирующий бланк запроса на выборку
Текст запроса на выборку приведен в листинге 6.3.
Листинг 6.3.
Запрос на выборку
SELECT Товары. Код, Товары. Цена, 1 AS Выражение1, 3 AS Выражение2,
Date AS Выражение3
FROM Товары;
8. Перейдите на вкладку Конструктор и выберите команду Выполнить (рис. 6.7).
Примечание
На данном этапе особенно важно проверить результаты выборки, так как запрос на добавление данных отменить нельзя. Неправильно добавленные записи придется удалять вручную. Это легко сделать в учебной базе, но в реальной практически невозможно.
Теперь преобразуйте запрос на выборку в запрос на добавление данных.
1. Щелкните правой кнопкой мыши на заголовке вкладки запроса. Нажмите кнопку Конструктор .
2. На вкладке Конструктор в группе Тип запроса выберите команду Добавление . Откроется окно Добавление (рис. 6.8).
Рис. 6.8. Окно Добавление
3. В списке имя таблицы выберите название результирующей таблицы – Заказы . Установите переключатель в положение в текущей базе данных . Нажмите кнопку ОК .
4. В бланке запроса появилась новая строка Добавление . Для каждого поля выборки укажите поле назначения результирующей таблицы Заказы , выбирая названия полей из раскрывающегося списка.
Результирующий бланк запроса на добавление показан на рис. 6.9.
Текст запроса на добавление приведен в листинге 6.4.
Листинг 6.4.
Запрос на добавление данных
INSERT INTO Заказы (Товар, Сумма, Количество, Клиент, Дата)
SELECT Товары. Код, Товары. Цена, 1 AS Выражение1, 3 AS Выражение2,
Date AS Выражение3
FROM Товары;
5. Нажмите кнопку Выполнить . Откроется окно подтверждения операции добавления.
6. Нажмите кнопку Да .
7. Откройте таблицу Заказы .
Вы можете видеть, что в таблице Заказы появились шесть новых записей по количеству товаров в таблице Товары (рис. 6.10).
Рис. 6.10. Таблица Заказы после выполнения запроса на добавление записей
Примечание
Следует помнить, что типы данных, заданные для полей в исходной таблице, должны быть совместимыми с типами данных для полей конечной таблицы. Например, можно добавить числа в текстовое поле, но нельзя добавить текст в числовое поле, если только не используется выражение вида (Val(ТекстовоеПоле)), чтобы сначала преобразовать данные в числовой тип данных.
Создание запросов на обновление таблиц
Запрос на обновление данных используется для изменения существующих записей в таблицах. Основное отличие таких запросов от запросов на добавление и удаление – это то, что изменяются значения отдельных полей записей. Можно удалять значения полей, оставляя те пустыми, при этом операция будет равносильна удалению части записи. Кроме того, можно заполнять пустые значения отдельных полей данными, что равносильно добавлению данных. Но если необходимо добавить или удалить строки целиком, необходимо использовать запросы на добавление или удаление записей соответственно.