Как запустить запрос с датой из формы?

У меня есть запрос на выборку, который возвращает записи на основе 2 дат из формы - >=Forms!frmReport!StartDate AND <=Forms!frmReport!EndDate, Проблема в том, что всякий раз, когда пользователь вводит одну и ту же дату в оба StartDate а также EndDate запись не возвращается, хотя я уверен, что в таблице есть данные, соответствующие критериям. Кто-нибудь может сказать, почему запрос не возвращает никакой информации?

2 ответа

Приведите значения формы к значениям даты в вашем запросе:

>= cdate(Forms![frmReport]![StartDate]) and <= cdate(Forms![frmReport]![EndDate])

И установите ваше поле по умолчанию на =date() захватить только дату, а не =now(),

Если сравниваемое поле rs("Date"), пытаться

Int(rs("Date")) >=Forms!frmReport!StartDate AND Int(rs("Date")) <=Forms!frmReport!EndDate

Для построителя запросов измените поле проверки даты на что-то вроде этого:

введите описание изображения здесь

замещать YourDateField с названием вашего поля.

А если время уместно, избавьтесь от выражения поля в построителе запросов и вместо этого сравните поле записи с:

>=Forms!frmReport!StartDate AND <= iif(Forms!frmReport!EndDate = Forms!frmReport!StartDate, dateadd("d",1,Forms!frmReport!EndDate), Forms!frmReport!EndDate)

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

Другие вопросы по тегам