Applies ToAccess для Microsoft 365 Access 2024 Access 2021 Access 2019 Access 2016

Если вам необходимо, чтобы запрос в 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. Создайте форму для ввода значений

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

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

    Свойство

    Значение

    Подпись

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

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

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

    Режим формы

    Да

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

    Нет

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

    Нет

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

    Нет

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

    Отсутствуют

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

    Нет

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

    Нет

    Тип границы

    Окно диалога

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

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

    Свойство

    Параметр

    Имя

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

    Формат

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

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

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

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

    В редакторе 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. Введите условия для данных. Используйте объект Forms , имя формы и имя элемент управления:

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

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

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

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

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

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

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

    Свойство

    Значение

    Открытие

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

    Закрытие

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

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

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

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

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

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

Нужна дополнительная помощь?

Нужны дополнительные параметры?

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

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