ApplyFilter работает, пока я не нажму кнопку очистки, которая очищает фильтры - PullRequest
0 голосов
/ 04 июня 2019

Я создал форму, которая должна фильтровать по датам, которые могут вводить пользователи. После ввода необходимых дат пользователь нажимает кнопку «лимит», чтобы данные могли фильтровать этот диапазон. Это работает очень хорошо, пока пользователь не нажмет кнопку очистки.

Фильтрация все еще работает, НО погода, которую пользователи вводили, даты НЕ работает. Выдает ошибку «Ошибка выполнения 3000. Зарезервированная ошибка (-3201) Валидация проверяет, была ли введена дата, в противном случае должно появиться окно сообщения.

- это «кнопка предела», которая показывает диапазон дат -

Private Sub eingrenzen()

Dim strCriteria, task As String

'MsgBox if no entry    
' "Me.vonDatumFeld" is german and means "fromDate"    
' "Me.bisDatumFeld" means "untilDate"

Me.Refresh

If IsNull(Me.vonDatumFeld) Or IsNull(Me.bisDatumFeld) 

Then

    MsgBox "Grenzen sie bitte den Zeitraum 'von' und 'bis' ein", vbInformation, "Zeitraum eingrenzen"
    Me.vonDatumFeld.SetFocus        

Else

    strCriteria = "([Datum] >= #" & Format(Me.vonDatumFeld, "yyyy-mm-dd") & "# And [Datum] <= #" & Format(Me.bisDatumFeld, "yyyy-mm-dd") & "#)"
    task = "select * from TblTeile where (" & strCriteria & ") order by [Datum]"

    DoCmd.ApplyFilter task 'Wende ZeitraumFILTER an

End If

End Sub

- И это «кнопка очистки» -

Private Sub CmdLösch_Click()

Me.KIDText = vbNullString    
Me.FirmaTxt = vbNullString    
Me.DatumTxt = vbNullString    
Me.ProdArttxt = vbNullString    
Me.BeschrText = vbNullString    
Me.MaterialText = vbNullString    
Me.vonDatumFeld = vbNullString    
Me.bisDatumFeld = vbNullString    
Me.Filter = vbNullString 

Me.FilterOn = False        

Me.Requery 

End Sub

1 Ответ

0 голосов
/ 04 июня 2019

Используйте метод Filter :

strCriteria = "[Datum] >= #" & Format(Me.vonDatumFeld, "yyyy-mm-dd") & "# And [Datum] <= #" & Format(Me.bisDatumFeld, "yyyy-mm-dd") & "#"
' task = "select * from TblTeile where (" & strCriteria & ") order by [Datum]"
Me.Filter = strCriteria
Me.FilterOn = True
...