Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
МЕТОДИЧКА_Access.doc
Скачиваний:
20
Добавлен:
08.02.2015
Размер:
2.93 Mб
Скачать

5.5. Использование параметров в запросах

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

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

Например,[Введите ФАМИЛИЮ студента].

Параметр можно задавать сразу по нескольким полям.

5.6. Запросы-действия

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

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

С помощью запроса на обновлениеможно изменить группу записей в базовой таблице.

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

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

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

Затем запрос на выборку в режиме Конструкторапреобразуется в запрос нужного типа (создание таблицы, обновление, добавление, удаление) с помощью кн.Тип запросав панели инструментов или менюЗапрос. В запросе-обновлении в строкуОбновлениевводится нужное выражение.

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

После выполнения запроса его можно сохранять, а можно не сохранять, т.к. он свои функции уже выполнил.

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

5.7. Итоговые запросы

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

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

Accessсодержит 9 итоговых функций:

  1. Sum- суммирование – возвращает сумму всех значений в данном поле каждой группе. Используется только для числовых или денежных полей.

  2. Avg– возвращает среднее арифметическое всех значений данного поля в каждой группе. Используется только для числовых или денежных полей. При вычислении функции значенияNull(пустые значения) исключаются.

  3. Minвозвращает наименьшее значение, найденное в данном поле для внутри каждой группы. Для числовых полей возвращает наименьшее значение, для текстовых полей – наименьшее из символьных значений независимо от регистров. ЗначенияNullигнорируются.

  4. Max– аналогично предыдущей, только выбираются максимальные значения.

  5. Count– возвращает число записей, в которых значения данного поля отличны отNull. Чтобы подсчитать число записей в каждой группе с учетом значенийNull, следует ввести в строку поле Count со звездочкой.

  6. StDev– стандартные отклонения – возвращает стандартные отклонения всех значений данного поля в каждой группе. Эта функция применяется только к числовым или денежным полям.

  7. Var– условия, аналогичные предыдущему; функция возвращает дисперсию значений поля в данной группе.

  8. First– возвращает первое значение данного поля в каждой группе.

  9. Last -возвращает последнее значение в каждой группе.

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

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

Тогда мы введем такое выражение:

Выражение1:Max([Копия Студент]![Стипендия])-Min([Копия Студент]![Стипендия])

Выбор записей, формирующих группы

Чтобы исключить из групп определенные записи следует добавить в бланк запроса одно или несколько полей, которые будут использоваться в фильтре. Для создания фильтра в строке Групповые операцииследует выбрать установкуУсловиеи снять флажокВывод на экрандля этого поля. А далее ввести условие отбора в соответствующие строки.

Пример отбора записей,

исключающих группы А 45 и М 22 (четвертого и второго курса)

Пример итогового запроса,

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

Выбор групп

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