问题:承接我之前写的 《Access 2019显示日期字段和当前时间的差值以及如何按范围进行数据筛选》中,日期范围查找的实现方式。当时用的是直接以查询的查询,结合 “条件” 参数,把常用的范围给固定了下来。本例中则是在文本框中输入数值,通过“搜索”按钮来实现 最小~最大 范围内数据的筛选功能。
一、最终的功能界面
上图中,添加了两个 文本框,用来输入“ 到期日最小值”和 “到期日最大值”,另外增加了一个额外的“搜索”按钮,来实现单独的数值范围筛选功能 。同时,还可以用上面的“查找记录”按钮,对下面表中的 “公司名称” 字段内容进行搜索。
二、范围查找功能实现方式
参考1: Access 2019显示日期字段和当前时间的差值以及如何按范围进行数据筛选-CSDN博客
参考2:Access2019实现按关键字搜索查找所需要的数据的功能-CSDN博客
根据 参考1 的步骤建立 查询表, 并新建 “到期日”字段到 查询表中;根据 参考2 的步骤,对 公司名称 字段的条件,设置为模糊查询表达式;添加 “查找记录” 和 “搜索” 两个按钮,编辑器各自的 “事件过程”。
上图中, Command4_Click() 就是 “查找记录” 按钮的表达式; 搜索_Click() 就是 “搜索”按钮的表达式。
Private Sub Command4_Click()
Me.专利信息_查询_子窗体.Requery
End Sub
Private Sub 搜索_Click()
Dim strWhere As String
strWhere = ""
If Not IsNull(Me.到期日最小值) Then
strWhere = strWhere & "([到期日] >= " & Me.到期日最小值 & ") And "
End If
If Not IsNull(Me.到期日最大值) Then
strWhere = strWhere & "([到期日] <= " & Me.到期日最大值 & ") And "
End If
If Len(strWhere) > 0 Then
strWhere = Left(strWhere, Len(strWhere) - 5)
End If
Me.专利信息_查询_子窗体.Form.Filter = strWhere
Me.专利信息_查询_子窗体.Form.FilterOn = True
End Sub