Написание инструкций IF THEN в WHERE Раздел SQL

77
10

Я работаю в Access, чтобы написать форму поиска для моей базы данных. Я хочу иметь форму с 5 полями для поиска. ЕСЛИ там что-то в этой области, ему нужно искать по этим параметрам - иначе поле должно быть проигнорировано. вот что я сейчас работаю, но у меня возникают проблемы с его работой. Типы полей для поиска будут: 1. Combo Box 2. Диапазоны дат

Select *
From NLog
Where
If [Forms]![Search]![Textbox1] > 0 THEN [Forms]![Search]![Textbox1] = Nlog.CoNo
Else Conintue

Спасибо!

спросил(а) 2021-01-25T16:50:17+03:00 4 месяца, 4 недели назад
1
Решение
77

Просто используйте регулярную логику:

Select *
From NLog
Where ([Forms]![Search]![Textbox1] <= 0 OR [Forms]![Search]![Textbox1] = Nlog.CoNo);

Примечание: это предполагает, что [Forms]![Search]![Textbox1] не является NULL. Если это возможно, вы можете обработать это с помощью явной логики или функции NZ().

ответил(а) 2021-01-25T16:50:17+03:00 4 месяца, 4 недели назад
45

Если вы прочтете здесь, вы увидите, что материальный запрет (IF-THEN) можно преобразовать в дизъюнкцию (OR). Итак, в вашем случае у вас будет:

NOT [Forms]![Search]![Textbox1] > 0 OR [Forms]![Search]![Textbox1] = Nlog.CoNo

ответил(а) 2021-01-25T16:50:17+03:00 4 месяца, 4 недели назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема