Использование параметров в запросах, формах и отчетах

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

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

В этой статье

Обзор

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

Указание типов данных для параметра

Создание формы для ввода параметров

Создание формы для ввода параметров для отчета

Обзор

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

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

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

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

Добавление параметра в запрос

  1. Создайте запрос на выборку и откройте его в конструкторе.

  2. В строке Условия поля, для которого вы хотите применить параметр, введите в квадратных скобках текст, который должен отображаться в соответствующем диалоговом окне. Пример:

    [Дата начала]

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

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

    Between [Дата начала] And [Дата окончания]

    Примечание : Для каждого параметра выводится отдельное диалоговое окно. Во втором примере появляется два окна: одно для даты начала, второе — для даты окончания.

  3. Повторите шаг 2 для каждого поля, для которого хотите добавить параметры.

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

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

  1. Откройте запрос на объединение в режиме SQL.

  2. Добавьте предложение WHERE, содержащее каждое поле, для которого требуется ввести параметр.

    Если предложение WHERE уже существует, убедитесь в том, что поля, для которых нужно ввести параметры, уже есть в этом предложении; в противном случае добавьте их.

  3. Вместо условия в предложении WHERE используйте запрос параметра.

Указание типов данных для параметра

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

Примечание : Если параметр настроен для ввода текстовых данных, любое введенное значение будет распознаваться как текст, а сообщение об ошибке не будет выводиться.

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

  1. Когда запрос открыт в конструкторе, на вкладке Конструктор в группе Показать или скрыть нажмите кнопку Параметры.

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

  3. В столбце Тип данных выберите тип данных для каждого параметра.

Создание формы для ввода параметров

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

  • Использование элементов управления для ввода данных определенных типов, например календарей для дат.

  • Сохранение введенных параметров для использования в других запросах.

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

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

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

Браузер не поддерживает видео. Установите Microsoft Silverlight, Adobe Flash Player или Internet Explorer 9.

Создание формы для ввода параметров для отчета

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

Шаг 1. Создайте форму для ввода значений

Шаг 2. Создайте блок кода, проверяющий, загружена ли форма параметров

Шаг 3. Создайте макрос, управляющий работой формы и отчета

Шаг 4. Добавьте на форму кнопки "ОК" и "Отмена"

Шаг 5. Используйте значения из формы в качестве условий запроса

Шаг 6. Добавьте макрокоманды в события отчета

Шаг 7. Проверьте форму в действии

Шаг 1. Создайте форму для ввода значений

  1. На вкладке Создание в группе Формы нажмите кнопку Конструктор форм.

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

    Свойство

    Значение

    Подпись

    Введите имя, которое будет отображаться в строке заголовка формы.

    Режим по умолчанию

    Простая форма

    Режим формы

    Да

    Режим таблицы

    Нет

    Режим сводной таблицы

    Нет

    Режим сводной диаграммы

    Нет

    Полосы прокрутки

    Отсутствуют

    Область выделения

    Нет

    Кнопки навигации

    Нет

    Тип границы

    Окно диалога

  3. Для каждого параметра, который будет вводиться с помощью формы, на вкладке Конструктор в группе Элементы управления нажмите кнопку Поле.

  4. Задайте для полей свойства, как показано в таблице ниже.

    Свойство

    Значение

    Имя

    Введите имя, описывающее параметр, например ДатаНачала.

    Формат

    Выберите формат, который соответствует типу данных поля параметра. Например, для поля даты выберите вариант Полный формат даты.

  5. Сохраните форму и задайте для нее название, например frmCriteria.

Шаг 2. Создайте блок кода, проверяющий, загружена ли форма параметров

  1. На вкладке Создание в группе Макросы и код нажмите кнопку Модуль. Если вы используете Access 2007, на вкладке Создание в группе Другие нажмите кнопку Модуль.

    В редакторе Visual Basic откроется новый модуль.

  2. Вставьте в редакторе следующий код:

    Function IsLoaded(ByVal strFormName As String) As Boolean
    Dim oAccessObject As AccessObject
    Set oAccessObject = CurrentProject.AllForms(strFormName)
    If oAccessObject.IsLoaded Then
    If oAccessObject.CurrentView <> acCurViewDesign Then
    IsLoaded = True
    End If
    End If
    End Function
  3. Сохраните модуль под уникальным именем и закройте редактор Visual Basic.

Шаг 3. Создайте макрос, управляющий работой формы и отчета

С помощью вложенных макросов Access можно задать все этапы одного макроса. Мы создадим четыре вложенных макроса, управляющих выполнением различных задач в этой процедуре: для открытия и закрытия диалогового окна, а также для кнопок "ОК" и "Отмена", Используя в качестве основы приведенный ниже снимок экрана, создайте макрос с указанными вложенными макросами и макрокомандами. Обратите внимание, что в этом примере форма для ввода параметров называется frmCriteria. Настройте макрос таким образом, чтобы его имя соответствовало названию созданной ранее формы. Для просмотра всех макрокоманд вам также потребуется нажать кнопку Показать все действия на вкладке Конструктор.

Снимок экрана с макросом Access, содержащим четыре вложенных макроса и макрокоманды.

Сохраните и закройте макрос. Задайте для макроса имя, например Макрос диапазона дат.

Шаг 4. Добавьте на форму кнопки "ОК" и "Отмена"

  1. Снова откройте форму параметров, которую создали в режиме конструктора.

  2. На вкладке Конструктор в группе Элементы управления отмените выбор параметра Использовать мастера.

  3. На вкладке Конструктор в группе Элементы управления щелкните Кнопка.

  4. Расположите курсор под полями на форме и мышью создайте кнопку ОК.

  5. Если окно свойств не отображается, откройте его, нажав клавишу F4.

  6. Задайте для кнопки ОК свойства согласно приведенной ниже таблице.

    Свойство

    Значение

    Имя

    ОК

    Подпись

    ОК

    По умолчанию

    Да

    Нажатие кнопки

    Введите имя макроса, например Макрос диапазона дат.ОК.

  7. Создайте кнопку Отмена и задайте для нее свойства, как показано в таблице ниже.

    Свойство

    Значение

    Имя

    Отмена

    Подпись

    Отмена

    Нажатие кнопки

    Введите имя макроса, например Макрос диапазона данных.Отмена.

  8. Сохраните и закройте форму.

Шаг 5. Используйте значения из формы в качестве условий запроса

  1. Откройте запрос, который создали в режиме конструктора.

  2. Введите условия для данных. Используйте объект Формы, имя формы и имя элемента управления:

    • Например, в базе данных Access (ACCDB или MDB) для формы frmCriteria можно задать следующее выражение, ссылающееся на элементы управления "Дата начала" и "Дата окончания" в запросе:

      Between [Формы]![frmCriteria]![Дата начала] And [Формы]![frmCriteria]![Дата окончания]

Шаг 6. Добавьте макрокоманды в события отчета

  1. Откройте нужный отчет в режиме конструктора.

  2. Если окно свойств не отображается, откройте его, нажав клавишу F4.

  3. Убедитесь, что для свойства Источник записей в отчете используется запрос с параметрами, который мы создали.

  4. Задайте два дополнительных свойства отчета, как показано в таблице ниже.

    Свойство

    Значение

    Открытие

    Введите имя макроса, например Макрос диапазона дат.Открыть диалоговое окно.

    Закрытие

    Введите имя макроса, например Макрос диапазона дат.Закрыть диалоговое окно.

    При открытии отчета Access будет выполнять команды, содержащиеся во вложенном макросе "Открыть диалоговое окно" объекта "Макрос диапазона дат". И аналогично: при закрытии отчета Access будет выполнять команды, содержащиеся во вложенном макросе "Закрыть диалоговое окно" объекта "Макрос диапазона дат".

  5. Сохраните и закройте отчет.

Шаг 7. Проверьте форму в действии

Теперь, когда все объекты Access созданы, можно проверить, как они работают. Откройте отчет в режиме отчета или представлении для печати и обратите внимание, что перед показом отчета Access отображает форму ввода параметров в диалоговом режиме. Введите необходимые условия в созданные вами текстовые поля и нажмите кнопку ОК на форме. После этого Access скроет форму (вывод на экран — "Нет") и отобразит отчет, содержащий только те данные, которые соответствуют вашим условиям. Это произойдет благодаря тому, что запрос с параметрами, на котором основан отчет, использует значения в элементах управления на скрытой форме. Когда вы закроете отчет, Access также закроет форму параметров.

К началу страницы

Совершенствование навыков
Перейти к обучению
Первоочередный доступ к новым возможностям
Присоединиться к программе предварительной оценки Office

Были ли сведения полезными?

Спасибо за ваш отзыв!

Благодарим за отзыв! Возможно, будет полезно связать вас с одним из наших специалистов службы поддержки Office.

×