В части 2 этой серии мы рассмотрели возможность использования like и подстановочных знаков в критериях запроса для поиска неточных совпадений. Хорошо, но что делать, если вы можете получить запрос для применения условий, которые предоставляются при его выполнении? Что делать, если запрос может запрашивать входные данные? Отличные новости! Вы можете запросить входные данные в запросе, и это очень просто.
Все, что вы делаете, это использовать вопрос, заключенный в квадратные скобки вместо обычного критерия. Когда кто-то выполняет запрос, первое, что он делает, — это диалоговое окно с используемым вами вопросом. Давайте посмотрим на структуру запроса, в результате чего в диалоговом окне "Фамилия клиента" было создано диалоговое окно "Имя клиента".
Запрос возвращает все данные из таблицы Customers, но только те записи, где LastName соответствует ответу пользователя на этот вопрос:
Это позволяет выполнить задание, но есть вещи, которые можно сделать, чтобы улучшить удобство использования запроса. Например, вы можете объявить параметры, чтобы Access предоставлял разумное сообщение об ошибке, если кто-то вводит неправильный тип данных (например, кто-то вводит текст, когда требуется число).
Чтобы объявить параметр, выполните приведенные далее действия.
-
Откройте запрос в режиме конструктора и скопируйте вопрос параметра в буфер обмена, включая скобки (выберите вопрос параметра и нажмите клавиши CTRL+C).
-
В средствах запросов | На вкладке Конструктор в группе Показать и скрыть щелкните Параметры.
-
В диалоговом окне Параметры запроса вставьте скопированный параметр в столбец Параметр , а затем задайте тип данных с помощью раскрывающегося списка в столбце Тип данных .
Если вы действительно хотите выполнить все, вы можете использовать форму для сбора входных данных. Форма открывает все виды возможностей, например совместное использование входных параметров между набором запросов или предоставление средства выбора даты для ввода параметра даты и времени. Дополнительные сведения см. в разделе Использование параметров в запросах, формах и отчетах.