DoCmdApplyFilter не распознает поле ввода текста

#vba #ms-access #filtering

#vba #ms-access #фильтрация

Вопрос:

У меня есть форма в ms access, которую я хочу фильтровать между двумя датами, обновляемыми одним нажатием кнопки. Поле, которое я хочу отфильтровать, называется Date

Даты, по которым нужно фильтровать, вводятся через пару текстовых полей в формате короткой даты, называемых TxtDtStrt и TxtDtEnd кнопка называется NCRDateFilter

Используя процедуру события кнопки NCRDateFilter «По щелчку» и приведенный ниже код, я бы ожидал, что форма будет отфильтрована по диапазону дат между значениями TxtDtStrt и TxtDtEnd

 Private Sub NCRDateFilter_Click()

    DoCmd.ApplyFilter "", "[Date] Between [TxtDtStrt] And [TxtDtEnd]", ""

End Sub
  

Но он не использует значения TxtDtStrt / TxtDtEnd, вместо этого показывает всплывающие окна с запросом TxtDtStrt, а затем другое для значения TxtDtEnd ….

Ответ №1:

Попробуйте использовать статические значения (см. Пример документов):

 DoCmd.ApplyFilter , "[Date] Between #" amp; Format([TxtDtStrt], "yyyy/mm/dd") amp; "# And #" amp; Format([TxtDtEnd], "yyyy/mm/dd") amp; "#"
  

Комментарии:

1. Спасибо, Густав, отлично поработал. Так что в значительной степени мне не хватало того, что мне также нужно было указать формат