#ms-access
#ms-access
Вопрос:
Я пытаюсь выполнить поиск в своей базе данных, используя форму, в которой пользователь может ввести дату начала и дату окончания и вернуть только эти результаты. Я пробовал все, что говорилось на этих форумах, но результаты, которые я получаю, — это все, КРОМЕ диапазона, который я хочу. Все эти данные опущены.
Я попытался переключить поля даты начала / окончания, но это не сработало.
Вот что у меня есть прямо сейчас, которое возвращает противоположные результаты:
Like "*" amp; (([uut_result].[START_DATE_TIME]) Between [Forms]![TestFormResults]![StartDateTime] And [Forms]![TestFormResults]![EndDateTime]) amp; "*"
Ответ №1:
WHERE (([uut_result].[START_DATE_TIME])
Between [Forms]![TestFormResults]![StartDateTime]
And
IIF([Forms]![TestFormResults]![EndDateTime] Is Null, Date(), [Forms]![TestFormResults]![EndDateTime])
Что IIF()
делает, так это оценивает условие, которое было бы EndDateTime = Null
. Если равно Null , иначе IsNull(EndDateTime) = True
, то он возвращает значение, если true piece , которое будет сегодняшней датой. Если IsNull(EndDateTime) = False
значение означает, что в этом элементе управления есть дата, оно вернет значение, если false, которое в данном случае равно [Forms]![TestFormResults]![EndDateTime]
.
Это *
подстановочный знак в SQL. Он используется для поиска вариантов комбинаций критериев поиска.
SELECT [Fields]
FROM [Table]
WHERE ((YourDateField) BETWEEN #[First date]# AND #[Second date]#)
Предполагается, что имена ваших полей указаны правильно.
Эти #
знаки относятся к жестко заданным датам. Для использования ссылок на элементы управления формами они не требуются (ваш синтаксис для дат в порядке.)
Комментарии:
1. У меня есть подстановочный знак, поскольку я использовал тот же формат для других полей со списком, где мне нужно все, что содержит, возможно, неполный ответ. Итак, для дат, если кто-то просто вводит начальную дату, я хочу, чтобы это возвращало все с этой даты до настоящего времени.
2. @user3783127 Это не то, что задал ваш вопрос.
3. Хорошо, да, я случайно пропустил эту часть.
4. @johnnyappleseed попробуйте мое решение для обновления. Пожалуйста, отразите свой актуальный вопрос в будущем.
5. Не могли бы вы вкратце объяснить внесенные вами изменения? Для меня это не имеет смысла