我有一个表单,我可以记录下面的预览:
PNR ¦ Date Booking Created ¦ Name of Customer
---------------------------------------------
1 ¦ 01/03/16 ¦ Marc N
2 ¦ 04/07/16 ¦ Sam D
3 ¦ 13/02/17 ¦ Max L
其中PNR是ID字段。 在表单的顶部,我有一个搜索栏,使用一个简单的宏(连接到“点击”按钮)搜索并返回名称,比较搜索栏LIKE [客户名称]。
我还有两个相邻的搜索栏,这些日期被放入,并且使用宏(也连接到“点击”按钮)它找到WHERE [DateFrom]< [Date Booking Created]<单击[DateTo]时显示两个输入日期之间的所有结果。
但是我不确定如何创建一个宏,同时“ApplyFilter”同时使用它们。我最初使用两个按钮脚本中的“Where”代码并将它们连接到一个按钮上,当点击它时会运行一个宏,其中“ApplyFilter”两个(使用AND分隔它们)。
然而,这不起作用,好像我决定只搜索一个名字,它没有显示任何结果,因为[DateFrom]和[DateTo]搜索栏是空的,我将如何处理这种情况(最好是在即使我只搜索没有日期限制的名称,它也会返回记录吗?
答案 0 :(得分:0)
您必须根据各种过滤器元素的内容编写生成过滤器的VBA代码。以下是执行此操作的VBA代码示例:
Dim Filter As String
Filter = ""
If Nz(Me.fCustomerName)<>"" Then
Filter = Filter & "CustomerName Like '" & Me.fCustomerName & "*' AND "
End If
If IsDate(Me.DateFrom) Then
Filter = Filter & "DateCreated >= #" & Me.DateFrom & "# AND "
End If
If Len(Nz(Me.DateTo, "")) Then
Filter = Filter & "DateCreated <= #" & Me.DateTo & "# AND "
End If
If Filter <> "" Then
Filter = Left(Filter, Len(Filter) - 5)
Me.Filter = Filter
Me.FilterOn = True
Else
Me.FilterOn = False
End If
Me.Requery