Материал: Базы данных-конспект

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам

Выполнение запроса-обновления

Запросы-обновления позволяют изменить значение выбранного поля по всем записям таблицы, удовлетворяющим определенным условиям.

Например, есть таблица:

Поставляемые товары

Код предприятия

Код товара

Минимальная партия

Цена

Предположим, что предприятие 1 решило увеличить на 10% цены на товары 1 и 3. Нам необходимо скорректировать цену на указанные изделия в таблице.

Для этого:

  1. добавляем в окно Конструктора нового запроса таблицу Поставляемые товары.

  2. выбираем команду Запрос/Обновление.

  3. создаем следующий бланк запроса.

    Поле

    Цена

    Код товара

    Код предприятия

    Имя таблицы

    Поставляемые товары

    Пост.товар

    Пост.товар

    Обновление

    [пост.товар]![цена]*1,1

    Условие отбора

    1 or 3

    1

  4. перейти в режим таблицы для просмотра правильности заданной выборки (цены, которые мы видим в режиме таблицы не являются измененными ценами).

  5. вернувшись в режим Конструктора запросов, нажать кнопку Запуск (!).

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

Пример 1: вам нужно в таблице Заказы для записей, данные продажи которых датируется сегодняшним числом, а поле Продано = 0. продано поставить значение поля Заказано.

Тогда бланк запроса на обновление будет выглядеть следующим образом:

Поле

Продано

Дата продажи

Имя таблицы

Заказы

Заказы

Обновление

[Заказы!][Заказано]

Условие

0

Date()

Пример 2.

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

Поле

Адреса

Юрид.адреса

Имя таблицы

Тел.-адр.кн

Тел.-адр.кн

Обновление

[юр.адреса]

Null

Условие отбора

Is Null

Is Not Null

То есть, для полей в которых отсутствует фактический адрес, в них переместить значение юридического адреса, при этом значение юридического адреса из соответствующей записи Удалится.

Вставка данных из другой таблицы

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

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

Например, в базе данных Тел.-адр. книга хранятся адреса клиентов, некоторые из которых временно не вошли в состав таблицы Клиенты базы данных Заказы. Теперь их нужно добавить из таблицы Тел.-адр. книга в таблицу Клиенты (например, тех кто работает в СП*).

Для выполнения данного запроса необходимо:

  1. открыть базу данных Тел.-адр. книга

  2. открыть окно Конструктора запросов и добавить в бланк Тел.-адр. книга

  3. выполнить команду Запрос/Добавление или кнопка Тип запроса/Добавление:

Добавление записей в таблицу

Имя таблицы

О в текущей базе данных

О в другой базе данных

Имя файла

Поскольку информацию из Тел.-адр. книги мы хотим добавить в таблицу другой базы данных, необходимо выбрать переключатель "В другую базу данных", затем указать имя файла (Заказы.mdb) и выбрать из списка имя таблицы Клиенты.

  1. далее необходимо указать поля, данные из которых предлагается поместить в результирующую таблицу.

Поле

Код клиента

Фамилия

Предприятие

Таблица

Тел.-адр.кн.

Тел.-адр.кн.

Тел.-адр.кн.

Сортировка

Добавление

Код клиента

Фамилия

Предприятие

Усл.отбора

Like"СП*"

или

Если, например, в Тел.-адр. книге поле имело название Предприятие, а таблице Клиенты – Организация, то в поле Добавление не будет автоматически подставлено соответствующее поле таблицы Клиенты. Тогда его нужно выбрать из списка в строке Добавление самостоятельно.

  1. перейти в режим Таблицы и проверить правильность выбранных данных, и только потом запустить запрос (!).

Будет выдано сообщение о количестве добавляемых записей.

Создание новой таблицы с помощью запроса

Например, в конце каждого года вы хотите создавать и хранить таблицу с суммарным итогом объемов продаж по каждому товару.

Тогда:

1) необходимо создать запрос следующего содержания:

Поле

Код товара

Сумма:[Заказы]![Продано]*[Заказы]![Условия]

Таблица

Заказы

Заказы

Груп. операция

Группировка

Sum

Сортировка

Выв. на экран

Усл. отбора

2) после этого изменить тип запроса на Запрос/Создание таблицы или Тип запроса/Создание таблицы. Последует запрос:

Создание таблицы

Имя таблицы

О в текущей базе данных

О в другой базе данных

Имя файла

Нужно ответить, какое имя будет присвоено новой таблице и где она будет размещена:

3) запустить запрос на выполнение.

Преобразуем данное условие следующим образом:

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

Для реальной данной задачи нужно создать запрос на создание сводной таблицы с вычисляемыми полями. Затем преобразовать данный запрос в запрос-добавление в каждом новом месяце.

Поле

Месяц: month([Дата продажи])

Код товара

Сумма:

[Заказы!][Усл]*[Заказы!][Цена]

Имя таблицы

Заказы

Заказы

Группировка

Группировка

Группировка

Sum

Выв.на экран

Усл.отб.

Month (Date())

Данный бланк запроса вычисляет итоговые суммы по каждому товару за текущий месяц.

  • данный запрос на выборку следует первоначально преобразовать в запрос на создание таблицы и указать имя таблицы Сводная. Потом запустить данный запрос и сохранить его.

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

Тема 11. Создание подчиненной формы. Многостраничные формы

Если нам нужно выводить данные нескольких таблиц и редактировать данные более чем одной таблицы, нам нужно работать со сложными формами – так называемыми подчиненными формами.

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

1 Способ

  1. Открыть вкладку Формы и кнопку Создать/Мастер форм выбрать в качестве источника данных таблицу Заказы.

  2. В списке полей переместить из таблицы Заказы поля: Код товара; Дата заказа; Заказано; Дата продажи; Продано; Цена.

  3. Затем выбрать в списке таблицы имя таблицы Клиенты, и из нее перемести поля Код клиента, Фамилия, Имя, Телефон и т.д.

  4. Выбрать тип формы – подчиненная форма.

    Выберите тип представления данных

    По Клиенты

    По Заказы

     подчиненная. форма О Связанная форма

  5. на следующем шаге выбрать внешний вид подчиненной формы:

    О ленточный

     табличный

  6. на следующем шаге определить имена главной и подчиненной формы и указать, в каком режиме открыть форму – просмотр или Конструктор. Сформированная форма будет иметь вид:

Покупатель Иванов Иван Иванович

Телефон (044)41-41-41

Адрес: 49005, Украина, Днепропетровск

Кредит 2000

ЗАКАЗЫ КЛИЕНТА

Код товара Дата заказа Заказано Продано

123 01.01.00 30 10

124 12.04.00 30 15

125 01.01.00 40 0

Запись1* Из 8

Запись 2* Из 30

В данной форме нижняя строка имеет информацию о количестве записей и текстовой записи главной формы Клиенты, а во внутренней форме Заказы есть отдельная информация о количестве записей в форме Заказы по данному клиенту.

Данный вид формы для таблиц с отношением "один-ко-многим" не является единственно возможным. На практике в ряде случаев нужна форма, содержащая информацию из подчиненной таблицы является справочной.

Источник: https://studfile.net/preview/16530623/