Аксесс запросы


Параметрический запрос Access - Базы данных Access

Параметрический запрос Access

В этой статье поговорим на тему «Параметрический запрос Access«. В предыдущих примерах выражение в условие отбора вводилось в бланке запроса. При этом чтобы задать новое значение в условие отбора, нужно повторно открыть запрос в режиме конструктора и ввести его. При решении практических задач значительно удобнее вводить выражение в условие отбора в процессе выполнения запроса в диалоге с пользователем, не переходя в режим конструктора. Обеспечить такой диалог можно с помощью параметра запроса. Имя параметра запроса задается в строке Условия отбора (Criteria) в квадратных скобках. При выполнении запроса это имя появится в диалоговом окне Введите значение параметра (Enter Parameter Value).

  1. Замените в условии отбора рассмотренного запроса (см. рис. 4.8) название месяца март на имя параметра ― [Название месяца].
  2. Выполните запрос. Открывшееся диалоговое окно (рис. 4.9) позволит ввести значение параметра запроса ― Название месяца.
  3. В запросе может быть определено несколько параметров. Например, для отбора записей по двум месяцам в условии отбора вычисляемого поля запишите два параметра, связанных логической операцией OR — [Название месяца] OR [Еще одно название месяца].
  4. Для определения числового интервала используйте параметры в операторе Between [Номер первого месяца периода] and [Номер последнего месяца периода].

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

  1. Создайте в режиме конструктора запрос на выборку для таблицы ТОВАР. Перетащите в бланк запроса поля НАИМ_ТОВ и ЦЕНА.
  2. Для увеличения цены на заданный процент в вычисляемое поле запишите выражение с параметром запроса — [На сколько процентов увеличить?] (рис. 4.10):ЦЕНА+ЦЕНА*[На сколько процентов увеличить?]/100
ВНИМАНИЕ! Через параметрический запрос Access вы сможете показать увеличенные цены в таблице запроса или использовать их при построении форм, отчетов, но они не будут внесены в поле таблицы ТОВАР. Для закрепления смотрим видеоурок:

Далее читаем «Групповые операции в запросах«.

Введите поисковое слово и нажмите Enter

Х

Уроки по Microsoft Access

Уроки по Microsoft Access

Вычисляемые поля в запросах Access

База данных Access Автосалон

accesshelp.ru

Создание формы на основе запроса в Access

На очереди тема «Создание формы на основе запроса в Access». Если в базе данных уже имеется запрос, в котором выбраны таблицы, нужные для получения результата, определены поля, которые необходимо включить в результат, параметры, сделаны вычисления, целесообразно создавать форму на основе такого запроса.Создание формы на основе запроса в Access дело не хитрое. В созданном ранее запросе из таблицы НАКЛАДНАЯ выбираются все накладные, по которым производилась отгрузка в заданном месяце. В вычисляемом поле месяца задано имя параметра — [Номер месяца] и запрос сохранен под именем Накладные месяца (рис. 5.11).Выбор запроса с параметром в качестве источника записей позволит создать форму, обеспечивающую диалог с пользователем и вывод только тех записей, которые соответствуют заданным в диалоге условиям отбора.Для создания такой формы можно использовать любую из команд автоматического создания формы одним щелчком мыши: Форма (Form), Разделенная форма (Split Form) или Несколько элементов (Multiple Items) (см. рис. 5.1), размещенных в группе Формы (Forms) на вкладке ленты Создание (Create).1. Выделив запрос в области навигации, щелкните на кнопке Несколько элементов (Multiple Items). В результате выполнения этой команды откроется диалоговое окно Введите значение параметра (Enter Parameter Value).2. Введите номер месяца, например 3. Форма откроется в режиме макета и отобразит записи, соответствующие введенному значению параметра (рис. 5.12). По команде Несколько элементов (Multiple Items) в форме автоматически создается табличный макет. В табличных макетах элементы расположены в двух разделах формы: надписи располагаются в заголовке формы, поля записей — по строкам в области данных.1. Сохраните форму, воспользовавшись командой контекстного меню формы, и закройте ее.2. Выберите форму в области навигации, выполните в ее контекстном меню команду Открыть (Open) или дважды щелкните на ней. Откроется диалоговое окно для ввода значения параметра. Введите нужное значение. В открывшейся форме будут представлены записи, выбранные в соответствии с заданным условием отбора.3. Для построенной формы открыт режим ввода новых записей. Очевидно это находится в противоречии с заданным условием отбора, поэтому в режиме макета целесообразно открыть Страницу свойств (Property Sheet) формы и на вкладке Данные (Data) в строке Разрешить добавление (Allow Additions) выбрать значение Нет (No). После изменения свойства в форме не будет отображаться строка новой записи, а также померкнет соответствующий значок на панели перехода по записям и кнопка Создать (New) в группе Записи (Records) на вкладке ленты Главная (Home). В приведенном примере добавление новой записи вообще невозможно, т. к. в форме не представлено обязательное поле вторичного ключа — номер договора.

accesshelp.ru

Групповые операции в запросах Access

Сегодня поговорим на тему «Групповые операции в запросах Access». Групповые операции в запросах Access позволяют выделить группы записей с одинаковыми значениями в указанных полях и вычислить итоговые данные для каждой из групп по другим полям, используя одну из статистических функций. Статистические функции применимы, прежде всего, к полям с типом данных Числовой, Денежный, Дата/время.В Access предусматривается девять статистических функций:

  • Sum — сумма значений некоторого поля для группы;
  • Avg — среднее от всех значений поля в группе;
  • Max, Min — максимальное, минимальное значение поля в группе;
  • Count — число значений поля в группе без учета пустых значений;
  • StDev — среднеквадратичное отклонение от среднего значения поля в группе;
  • Var — дисперсия значений поля в группе;
  • First и Last — значение поля из первой или последней записи в группе.

Результат запроса с использованием групповых операций содержит по одной записи для каждой группы. В запрос, прежде всего, включаются поля, по которым производится группировка, и поля, для которых выполняются статистические функции. Кроме этих полей в запрос могут включаться поля, по которым задаются условия отбора.Рассмотрим конструирование однотабличного запроса с групповой операцией на примере таблицы ПОСТАВКА_ПЛАН.

Запрос с функцией Sum

Задача. Определите, какое суммарное количество каждого из товаров должно быть поставлено покупателям по договорам. Все данные о запланированном к по-ставке количестве товара указаны в таблице ПОСТАВКА_ПЛАН.

  1. Создайте в режиме конструктора запрос на выборку из таблицы ПОСТАВКА_ПЛАН.
  2. Из списка таблицы перетащите в бланк запроса поле КОД_ТОВ ― код товара. По этому полю будет производиться группировка записей таблицы.
  3. Перетащите в бланк запроса поле КОЛ_ПОСТ, по которому будет подсчитываться суммарное количество каждого из товаров, заказанных во всех договорах.
  4. Выполните команду Итоги (Totals) из группы Показать или скрыть (Show/Hide). В бланке запроса появится новая строка Групповая операция (Total) со значением Группировка (Group By) в обоих полях запроса.
  5. В столбце КОЛ_ПОСТ замените слово Группировка (Group By) на функцию Sum. Для этого вызовите список и выберите эту функцию. Бланк запроса примет вид, показанный на рис. 4.11.
  6. Для отображения результата запроса (рис. 4.12) щелкните на кнопке Выполнить (Run) в группе Результаты (Results).
  7. Замените подпись поля Sum-КОЛ_ПОСТ на Заказано товаров. Для этого перейдите в режим конструктора, в бланке запроса установите курсор мыши на поле КОЛ_ПОСТ и нажмите правую кнопку. В контекстном меню выберите Свойства (Properties). В окне Свойства поля (Field Properties) введите в строке Подпись (Caption) — Заказано товаров. Для открытия окна свойств может быть выполнена команда Страница свойств (Property Sheet) в группе Показать или скрыть (Show/Hide).

  1. Сохраните запрос под именем Заказано товаров.
  2. Чтобы подсчитать количество товаров, заказанных в каждом месяце, выполните группировку по двум полям: КОД_ТОВ и СРОК_ПОСТ, в котором хранится месяц поставки (рис. 4.13).
  3. Чтобы подсчитать количество товаров, заказанных в заданном месяце, предыдущий запрос дополните вводом параметра запроса в условие отбора (рис. 4.14).

Запрос с функцией Count

Задача. Определите, сколько раз отгружался товар по каждому из договоров. Факт отгрузки фиксируется в таблице НАКЛАДНАЯ.

  1. Создайте запрос на выборку на основе таблицы НАКЛАДНАЯ.
  2. Из списка полей таблицы НАКЛАДНАЯ перетащите в бланк запроса поле НОМ_ДОГ. По этому полю должна производиться группировка.
  3. По сути, смысл задачи сводится к подсчету в таблице числа строк с одинаковым номером договора, поэтому неважно по какому полю будет вычисляться функция Count. Перетащите в бланк запроса любое поле, например опять НОМ_ДОГ.
  4. Выполните команду Итоги (Totals) из группы Показать или скрыть (Show/Hide). Замените слово Группировка (Group By) в одном из столбцов с именем НОМ_ДОГ на функцию Count. Бланк запроса примет вид, показанный на рис. 4.15.

  1. Сохраните запрос под именем Число отгрузок по договорам. Выполните запрос. Результат запроса показан на рис. 4.16.

Для закрепления смотрим видеоурок:

Следующая тема: Запросы на изменение Access.

accesshelp.ru