Как запустить запрос с датой из формы?
У меня есть запрос на выборку, который возвращает записи на основе 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)
Это выражение говорит, что если дата окончания совпадает с датой начала, добавьте день, в противном случае просто используйте дату окончания.