On Error GoTo Err_cmd查询_Click
Dim strWhere As String '定义条件字符串
strWhere = "" '设定初始值-空字符串
'判断【车种】条件是否有输入的值
If Not IsNull(Me.车种) Then
'有输入
strWhere = strWhere & "([车种] like '*" & Me.车种 & "*') AND "
End If
' '判断【车型】条件是否有输入的值
If Not IsNull(Me.车型) Then
'有输入
' strWhere = strWhere & "([车型] like '" & Me.车型 & "') AND "
On Error Resume Next
Dim A As Variant
Dim i As Integer
Dim str As String
A = Split(Me.车型, "、")
For i = 0 To UBound(A)
str = str & "车型='" & A(i) & "' Or "
Next
str = Left(str, Len(str) - 4)
'传递查询条件方法各有不同,本例是将条件传递到子窗体的Filter属性,并激活筛选。
' Me.查询子窗体.Form.Filter = str
' Me.查询子窗体.Form.FilterOn = True
strWhere = strWhere & "( " & str & ") AND "
End If
'判断【销售日期】条件是否有输入的值,由于有【销售日期开始】【销售日期截止】两个文本框
' '所以要分开来考虑
If Not IsNull(Me.销售日期开始) Then
'【销售日期开始】有输入
strWhere = strWhere & "([销售日期] >= #" & Format(Me.销售日期开始, "yyyy-mm-dd") & "#) AND "
End If
If Not IsNull(Me.销售日期截止) Then
'【销售日期截止】有输入
strWhere = strWhere & "([销售日期] <= #" & Format(Me.销售日期截止, "yyyy-mm-dd") & "#) AND "
End If
' '判断【省份】条件是否有输入的值
' If Not IsNull(Me.省份) Then
' '有输入
' strWhere = strWhere & "([省份] like '*" & Me.省份 & "*') AND "
' End If
'
' '判断【年款】条件是否有输入的值
' If Not IsNull(Me.年款) Then
' '有输入
' strWhere = strWhere & "([年款] like '" & Me.年款 & "') AND "
' End If
'
' '判断【生产线】条件是否有输入的值,
' If Not IsNull(Me.生产线) Then
' '有输入
' strWhere = strWhere & "([生产线] like '" & Me.生产线 & "') AND "
' End If
'
' '判断【车架号】条件是否有输入的值,
' If Not IsNull(Me.车架号) Then
' '有输入
' strWhere = strWhere & "([车架号] like '" & Me.车架号 & "') AND "
' End If
'
'如果输入了条件,那么strWhere的最后肯定有" AND ",这是我们不需要的,
'要用LEFT函数截掉这5个字符。
If Len(strWhere) > 0 Then
'有输入条件
strWhere = Left(strWhere, Len(strWhere) - 5)
End If
' MsgBox strWhere
'先在立即窗口显示一下strWhere的值,代码调试完成后可以取消下一句
Debug.Print strWhere
'让子窗体应用窗体查询
Me.[查询子窗体].Form.Filter = strWhere
Me.[查询子窗体].Form.FilterOn = True
'Call 车型_Click
Exit_cmd查询_Click:
Exit Sub
Err_cmd查询_Click:
MsgBox Err.Description
Resume Exit_cmd查询_Click