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

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

Тема 9. Параметрические запросы

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

Чтобы установить параметр, вместо того, чтобы вводить конкретное значение в строку Условия отбора, нужно ввести в нее имя или фразу, заключенную в квадратные скобки. Эта фраза будет выводиться в диалоговом окне при выполнении запроса. В этом запросе можно вводить несколько параметров, при этом они должны иметь уникальные и информативные названия.

Поля

Код товара

Заказано

Продано

Условия

[Введите код товара]

При этом, при запуске данного запроса появится окно:

Введите значение параметра

Введите код товара

После ввода данного значения (например 34) выведется результат выполненного запроса, эквивалентный тому, что мы бы в бланке запроса для поля Код товара в строке Условия написали 34.

Если ввести несколько параметров (например, по коду товара и коду клиента), то вопросы будут задаваться последовательно в том порядке, в каком находятся поля в бланке запроса.

Параметрическими можно делать: итоговые запросы, запросы на создание таблиц:

Поля

Код товара

Код клиента

Заказано

Групповые операции

Группировка

Группировка

Sum

[Код товара]

[Код клиента]

Для каждого параметра запроса можно указать тип данных, что позволяет проверить корректность ___________ значения. Для этого нужно вызвать команду Запрос/Параметры:

Параметры запроса

Параметр

Тип данных

Код заказа

Текстовый

При чем, если тип параметра – числовой, необходимо знать его размер, т.к. вместо слова Числовой в списке типов указывается: байт; целое; длинное целое; с плав. точкой (4 б); с плав. точкой (8 б).

Тема 10. Перекрестные запросы

Перекрестными называется тип итоговых запросов, представленный в виде электронной Таблицы,

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

Для этого мы должны сделать запрос (вкладка Запросы/Создать/Конструктор) и изменить тип запроса на перекрестный запрос.

Поле

Код товара

Дата продажи

Продано

Имя таблицы

Заказано

Заказы

Заказы

Гр. операции

Группировка

Группировка

Sum

Перекрес.таблица

Загол. строки

Загол. столбца

Значения

Сортировка

По возр.

Условие

В строке Перекрестная таблица можно выбрать одну из четырех установок:

  • заголовки строк

  • заголовки столбцов

  • значение (выводится в ячейках таблицы)

  • не выводить (предназначения для ввода данных условий)

Результаты выполнения данного запроса будет таблица ниже:

Код товара

3.01.00

5.01.00

2.02.00

4.03.00

10.01.00

124

45

10

15

20

125

96

126

5

15

18

21

Можно в строке Условие поле Дата продажи ввести *.03.*, тогда таблица будет состоять из заголовков строк и двух столбцов (04.03.00 10.03.00).

Однако, нас интересует суммарное значение по каждому месяцу.

Тогда, вместо поля [Дата продажи], в качестве заголовка столбцов необходимо ввести вычисляемое поле.

Format([Заказы][Дата продажи];”mmm-yyyy”)

Данная функция одновременно определяет

  • формат ввода даты:

mmm – месяц апрель, май, июнь

mmmm – полное название месяца

уу – год 00, 99

уууу – год 1999, 2000

  • и уровень группировки.

Нарпимер:

  • если в данной функции ввести format ([Дата продажи];”dd-mmmm-yyyy”), то группировка будет выполняться по дням (так, как получилось в первоначальном варианте запроса).

  • если ввести Format([Дата продажи];”уууу”), то будут суммироваться продажи по каждому товару за год.

В нашем варианте запрос будет иметь вид:

Код товара

Январь- 00

Декабрь - 00

Март – 00

124

45

10

35

125

96

126

20

18

21

Положение строк и столбцов в запросе можно изменить.

Если мы хотим указать, что данный запрос отражает только те заказы, которые выполнены (то есть [Заказано]=[Продано]), то в бланк запроса нужно добавить поле заказано второй раз (для поля, являющегося Значением перекрестной. таблицы, условие задать нельзя). Во втором поле Заказано в строке Перекрестная таблица нужно выбрать режим (не отображаются), так в строке Условие - [Заказано]=[Продано]. Тогда на экран выведутся только те товары, по которым выполняются заказы.

Тема 10. Модификация данных с помощью запросов-действий

Работая в режиме таблицы или формы мы умеем удалять или добавлять одну или несколько записей. Однако, если нужно удалить, изменить по определенному признаку или добавить большое количество записей, удобно пользоваться запросами-действиями.

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

  • запросы создания таблиц;

  • запросы удаления;

  • запросы добавления;

  • запросы обновления.

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

Запрос на удаление

Например, мы хотим удалить из таблицы все Заказы, современные до 1 апреля 1999 года. Для этого необходимо:

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

Имя таблицы

ОК

Параметры вставки

О только структура

О структура и данные

О добавление данных в таблицу

Напишем, например, имя Временная.

2) перейти во вкладку Запросы и открыть окно Конструктора запросов. В окне Добавление таблицы добавить таблицу Заказы.

3) в бланке запроса добавить все поля таблицы Заказы (знак *, находящийся в верхней части списка полей таблицы), а затем отдельно поля Дата заказа, для которого зададим условие: <#01.04.99#

4) проверить выполнение запроса, убедившись, что условие задано верно (кнопка Вид)

5) выполнить преобразование запроса выборки в запрос-действие. Для этого необходимо вызвать пункт меню Запрос или кнопку Тип запроса:

Выборка

Перекрестный

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

Обновление

Добавление

Удаление

Выбрать режим Удаление, после чего бланк запроса изменит свой вид:

Поле

Заказы. *

Дата заказа

Имя таблицы

Заказы

Заказы

Удаление

Из

Условие

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

<#01.04.99#

6) запустить запрос с помощью кнопки !. Будет выдано сообщение о том, сколько строк будет удалено.

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

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