MS Access: критерии «Мне нравится» * «& _____», которые не позволяют использовать критерии из следующего поля, если они оставлены пустыми.пожалуйста, порекомендуйте - PullRequest
0 голосов
/ 01 марта 2019

Я создал запрос в MS Access, который ссылается на текст, введенный в форму, чтобы создать выражение для критериев поиска записей в таблице по названию дороги или району.

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

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

Должен ли я использовать другую функцию или, возможно, написать более сложные критерии?

(Я попытался удалить подстановочный знак, поместив функции Or в каждое поле в разные строки или в одну и ту же строку, а также подумал о добавлении в существующий макрос, чтобы ограничить результаты запроса по названию района, еслитекстовое поле с названием улицы было оставлено пустым.)

Я довольно долго гуглю и не могу понять это.Спасибо за любую помощь!

По существу: Форма (называемая MJidea) имеет два поля для ввода текста -

  • Улица (PriStReport)
  • Район (District)

Настройка запроса:

Screenshot of current query set up

1 Ответ

0 голосов
/ 01 марта 2019

Вы можете изменить выражение SQL where вашего запроса на:

where
(
    [Forms]![MJidea]![PriStReport] is not null and
    [Primary Street] like "*" & [Forms]![MJidea]![PriStReport] & "*"
) or
(
    [Forms]![MJidea]![PriStReport] is not null and 
    [Secondary Street] like "*" & [Forms]![MJidea]![PriStReport] & "*"
) or
(
    [Forms]![MJidea]![District] is not null and 
    [Magisterial District] like "*" & [Forms]![MJidea]![PriStReport] & "*"
)

В качестве альтернативы, объедините первые два теста:

where
(
    [Forms]![MJidea]![PriStReport] is not null and 
    (
        [Primary Street]   like "*" & [Forms]![MJidea]![PriStReport] & "*" or 
        [Secondary Street] like "*" & [Forms]![MJidea]![PriStReport] & "*"
    )
) 
or
(
    [Forms]![MJidea]![District] is not null and 
    [Magisterial District] like "*" & [Forms]![MJidea]![PriStReport] & "*"
)
...