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

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

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

Для сбора значений параметров можно создать форму. Это позволяет:

  • использовать элементы управления, предназначенные для определенных типов данных;

  • включить сохранение значений параметров;

  • создать поля со списком (чтобы можно было выбирать значения из списка, а не вводить их вручную);

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

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

В этой статье

Обзор

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

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

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

Обзор

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

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

Таким образом, нужно создать список рассылки, содержащий имена и адреса клиентов, последний заказ которым был доставлен раньше, чем появился новый каталог. Для этого можно применить условие к полю даты доставки из запроса «Последний заказ». Условие указывает, что дата в поле даты доставки должна быть более ранней, чем дата начала распространения нового каталога (например, 31.03.2006). При запуске запроса будет получен список рассылки, куда войдут только те клиенты, которые не получили новый каталог.

Но что делать, если подобная ситуация повторится? Придется отредактировать запрос, изменив значение, определенное в условии. Однако было бы удобнее, если бы запрос предлагал ввести значение даты, а затем использовал это значение для выбора клиентов, которые войдут в список рассылки. Это можно сделать с помощью условия особого типа, называемого параметром.

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

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

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

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

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

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

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

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

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

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

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

    дату начала

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

    Можно также использовать выражение с предложениями ввести параметр, например:

    Between [Начальная дата] And [Конечная дата]

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

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

Можно использовать предыдущие действия для добавления параметра к запросам любого из следующих типов:

  • Выбрать

  • Перекрестная таблица

  • Добавление

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

  • Обновление

Можно также добавить параметр в запрос на объединение.

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

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

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

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

Сопоставление части значения поля со строкой параметра

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

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

  2. В строке Критерий поля, для которого нужно применить параметр, введите Like "*"&[, текст, который должен отображаться в сообщении, а затем ]&"*".

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

  3. Когда запрос получит значение параметра, он сравнит его со значениями, которые содержат строку параметра. Например, для строки параметра си будут найдены строки, в которых поле параметра имеет значение «Сингапур» и «Россия».

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

Сопоставление на основе неравных значений

Может потребоваться собрать параметр, но вместо того, запрос возвращает строки с соответствующим значением, требуется, чтобы запрос для возврата строк, для которых некоторые другие сравнения вычисляется как true. Например может возникнуть необходимость запрашивать год и затем возвращают строки, где значение year больше, чем строка параметра. Для этого введите оператор сравнения слева от первого квадратная скобка, включающий приглашении на ввод параметра, например,> [год:].

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Этап 1. Создание формы, принимающей входные параметры

Этап 2. Создание модуля для проверки загрузки формы параметров

Этап 3. Создание макросов для контроля над формой

Этап 4. Добавление кнопок ОК и Отмена в форму

Этап 5. Использование данных формы в качестве критерия запроса

Этап 1. Создание формы, принимающей входные параметры

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

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

Свойство:

параметр настройки

caption

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

Представление по умолчанию

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

Режим формы

Да

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

Нет

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

Нет

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

Нет

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

Отсутствуют

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

Нет

Кнопки переходов

Нет

Тип границы

Окна диалога

  1. Для каждого параметра, который должна принимать форма, нажмите кнопку Надпись в группе Элементы управления на вкладке Конструктор.

  2. Задайте свойства вставленных полей в соответствии со следующей таблицей.

Свойство:

параметр настройки

.

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

.

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

  1. Сохраните форму и присвойте ей имя, например Диапазон дат.

Этап 2. Создание модуля для проверки загрузки формы параметров

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

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

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

    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. Создание макросов для контроля над формой

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

  2. На вкладке Конструктор в группе Показать или скрыть щелкните пункт Показать все действия.

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

  4. Введите имя макроса, например Открытие диалогового окна, в столбце Имя макроса.

  5. Щелкните ячейку в столбце Действие рядом с именем нового макроса, нажмите стрелку раскрытия списка и выберите пункт ОткрытьФорму.

  6. В сетке Аргументы макрокоманды (расположенные в бланке макроса) задайте аргументы макрокоманды, как показано в следующей таблице.

аргумент

параметр настройки

Имя формы

Введите имя, присвоенное форму параметра отчета.

Просмотр

Форма

Режим данных

«Изменить»

Режим окна

Окна диалога

  1. Для добавления второй макрокоманды в следующей ячейке Действие выберите пункт ОтменитьСобытие. Эта макрокоманда будет использоваться для отмены предварительного просмотра или печати отчета при нажатии кнопки Отмена формы.

  2. Если столбец Условие не отображается, нажмите кнопку Условия в группе Отображение на вкладке Конструктор.

  3. Введите в ячейку столбца условие, не IsLoaded, а затем открывающую круглую скобку и кавычки, за которым следует имя дали форму параметра отчета, а затем следуют знак равенства и знак кавычек. Например, если форма называется сборщик параметр, введите не IsLoaded()"Параметр сборщик").

  4. В следующую пустую строку сетки конструктора макроса введите имя нового макроса, например Закрытие диалогового окна.

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

аргумент

параметр настройки

Тип объекта

Форма

Имя объекта

Введите имя, присвоенное форму параметра отчета.

Команда «Сохранить».

Нет

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

аргумент

параметр настройки

Элемент

[Visible]

Выражение

Нет

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

аргумент

параметр настройки

Тип объекта

Форма

Имя объекта

Введите имя, присвоенное форму параметра отчета.

Команда «Сохранить».

Нет

  1. Сохраните и закройте группу макросов. Имя группы макросов, например, Макрос диапазон дат.

Этап 4. Добавление кнопок ОК и Отмена в форму

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

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

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

  4. Поместите указатель мыши под полями формы и перетащите его для создания кнопки ОК.

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

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

Свойство:

параметр настройки

Название

«ОК»

Подпись

«ОК»

По умолчанию

Да

onclick

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

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

Свойство:

параметр настройки

Название

Отмена

Подпись

Отмена

onclick

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

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

Этап 5. Использование данных формы в качестве критерия запроса

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

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

    • Например, в базе данных Access (.accdb или .mdb) в форме с именем «Диапазон данных» для ссылки на элементы управления «Начальная дата» и «Конечная дата» необходимо использовать в запросе следующее выражение:

      Between [Формы]![Диапазон данных]![Начальная дата] And [Формы]![Диапазон данных]![Конечная дата]

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

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

Применяется к: Access 2007



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

Да Нет

Что мы могли бы улучшить?

255 осталось символов

Чтобы защитить вашу конфиденциальность, не указывайте контактные данные в своем отзыве. Обзор наших политика конфиденциальности.

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

Изменить язык