vba - ApplyFilter 一直有效,直到我点击清除过滤器的清除按钮
问题描述
我创建了一个表单,该表单应按用户可以输入的日期进行过滤。输入所需日期后,用户单击“限制”按钮,以便数据可以过滤这些范围。在用户点击清除按钮之前,它工作得非常好。
过滤仍然有效,但用户输入日期的验证天气不起作用。它抛出错误“运行时错误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
解决方案
使用过滤器方法:
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
推荐阅读
- swift4 - Swift 4 - CGAffineTransform 顺时针方向旋转
- sms - 如何在操作之前等待来自电话号码的 SmsQuery
- c++ - 有没有一种更优雅的方式来使用带有独立 if() 的 else 语句
- android - 为什么 hashMap.toSortedMap 少返回一个条目
- angular - 具有名称的表单控件没有值访问器:Angular 2 mat-dialog 中带有 Reactive Froms 的“rating”
- alamofire - Xcode - 没有这样的模块 alamofire
- d3.js - 带点的 D3 条形图背景
- python - 如何迭代 2 个步骤变量以在模型中找到它们的所有可能组合?
- angular - Angular 4 - 从服务器检索数据后未加载 UI - 组件变量仅在单击窗口后更新
- python - 从 N 维 Numpy 数组中仅获取非零子数组