
- •Санкт-Петербургский
- •Оглавление
- •Запуск Access
- •Интерфейс пользователя Access
- •НастройкиAccess
- •Создание новой бд
- •Таблицы
- •Создание структуры таблицы
- •Типы данных
- •Свойства полей
- •Загрузка таблицы данными
- •Модификация структуры таблицы
- •Работа с макетом таблицы
- •Печать таблицы
- •Запросы
- •Типы запросов
- •Создание qde-запросов
- •Заполнение бланка запроса
- •Работа с построителем выражений
- •Примеры запросов
- •Запросы на выборку данных
- •Запросы на создание таблицы
- •Запросы на добавление записей
- •Insert into Det ( dim, cena )
- •Insert into Det ( dim, cena )
- •Values ("шайба", 40);
- •Insert into Новая ( pim, gor )
- •Запросы на удаление записей
- •Запросы на обновление полей записей
- •Перекрестные запросы
- •Вложенные запросы
- •Sql-запросы
- •Фильтрация данных
- •13.1. Создание однотабличной формы
- •13.2. Редактирование формы
- •13.3. Часто используемые свойства формы
- •13.4. Элементы управления на форме и их свойства
- •14. Отчеты
- •14.1. Создание отчета
- •14.2. Работа с отчетом в режиме конструктора
- •14.3. Сортировка и группировка данных
- •15. Макросы
- •15.1. Создание макросов
- •15.2. Краткая характеристика основных макрокоманд
- •15.3. Групповые макросы
- •15.4. Реализация ветвлений в макросах
- •15.4.1. Примеры макросов с односторонним ветвлением
- •15.4.2. Пример макроса с двусторонним ветвлением
- •15.5. Реализация циклов в макросах
- •16. Основы создания пользовательского интерфейса
- •16. 1. Взаимодействие форм
- •16. 2. Требования, предъявляемые к интерфейсу пользователя
- •Литература
Запросы на обновление полей записей
Запрос 12. Запрос на обновление (корректировку) полей записи.
Создание запроса:
создать запрос на выборку данных;
преобразовать запрос на выборку в запрос на обновление данных кнопкой
;
На бланке запроса появится строкаОбновление, в которой нужно указать новое значение обновляемого поля. Так, заменить ролик на гайку (обновить поле DIM в таблице DN) можно запросом, показанным на рисунке 45.
Рисунок 45 – Запрос на обновление одного поля
Соответствующий SQL-запрос:
UPDATE Det
SET Det.DIM = "гайка"
WHERE (((Det.DIM)="ролик"));
Можно в одном запросе обновлять несколько поле одной и той же таблицы.
Пусть поставщик Кузнецов переехал из Владивостока в Москву. Поскольку статус поставщика связан с городом, то у Кузнецова надо город Владивосток заменить на Москву, и статус заменить на 80. Соответствующий QBE-запрос представлен на рисунке 46.
Рисунок 46 – Запрос на обновление нескольких полей
Соответствующий SQL-запрос:
UPDATE Post
SET Post.ST = 80, Post.GOR = "Москва"
WHERE (((Post.PIM)="Кузнецов"));
При обновлении можно использовать выражения над полями. Подорожание всех гаек на 20 рублей можно реализовать запросом, представленным на рисунке 47.
Рисунок 47 – Запрос на обновление цены для гаек
Отметим, что выражение над полем [Det]![CENA]+20 желательно сформировать с помощью построителя выражений.
Соответствующий SQL-запрос:
UPDATE Det
SET Det.CENA = [Det]![CENA]+20
WHERE (((Det.DIM)="гайка"));
Перекрестные запросы
Запрос 13. Перекрестный запрос также может быть однотабличным и многотабличным. Ответом перекрестного запроса является так называемая перекрестная таблица, в которой мы можем задавать значения в строках и в столбцах по своему желанию, а на пересечении строк и столбцов выдавать значение какой-нибудь агрегатной функции.
На рисунке 49 представлен QBE-запрос, в котором в строках отображаются имена деталей, в столбцах – города, из которых эти детали поставляются, а на пересечении строк и столбцов – суммарное количество поставляемых деталей. Для создания такого запроса надо выполнить следующую цепочку действий:
сначала создать запрос на выборку данных из трех таблиц, как показано на рисунке 48;
затем преобразовать с помощью кнопки
(на ленте в разделетип запроса) в перекрестный запрос; при этом появятся в нижней части бланка две дополнительные строки: Групповая операция и Перекрестная таблица, в которых надо сделать установки (выбором из списков), как на рисунке 49.
Рисунок 48 – Выборка для перекрестного запроса
Рисунок 49 – Перекрестный запрос
В ответе получим перекрестную таблицу.
Соответствующий SQL-запрос:
TRANSFORM Sum(PD.KOL) AS [Sum-KOL]
SELECT Det.DIM
FROM Post INNER JOIN (Det INNER JOIN PD ON Det.DN=PD.DN)
ON Post.PN=PD.PN
GROUP BY Det.DIM
PIVOT Post.PIM;
Вложенные запросы
Запрос 14. Вложенные запросы
Смотри методичку Основы JET-SQL в электронном варианте.
Sql-запросы
Смотри методичку Основы JET-SQL в электронном варианте.