|
过滤条件中的字段名是错的!!!
下面的代码已更正.
Private Sub cmd查询_Click()
On Error GoTo Err_cmd查询_Click
Dim strWhere As String '定义条件字符串
strWhere = "" '设定初始值-空字符串
'判断【编号】条件是否有输入的值,由于有【编号开始】【编号截止】两个文本框
'所以要分开来考虑
If Not IsNull(Me.编号开始) Then
'【编号开始】有输入
strWhere = strWhere & " AND ([编号] >= " & Me.编号开始 & ")"
End If
If Not IsNull(Me.编号截止) Then
strWhere = strWhere & " AND ([编号] <= " & Me.编号截止 & ")"
End If
'判断【日期】条件是否有输入的值,由于有【日期开始】【日期截止】两个文本框
'所以要分开来考虑
If Not IsNull(Me.日期开始) Then
'【日期开始】有输入
strWhere = strWhere & " AND ([日期] >= #" & Format(Me.日期开始, "yyyy-mm-dd") & "#)"
End If
If Not IsNull(Me.日期截止) Then
'【日期截止】有输入
strWhere = strWhere & " AND ([日期] <= #" & Format(Me.日期截止, "yyyy-mm-dd") & "#)"
End If
'判断【色值】条件是否有输入的值,由于有【色值开始】【色值截止】两个文本框
'所以要分开来考虑
If Not IsNull(Me.色值开始) Then
'【色值开始】有输入
strWhere = strWhere & " AND ([色值IU] >= " & Me.色值开始 & ")"
End If
If Not IsNull(Me.色值截止) Then
'【色值截止】有输入
strWhere = strWhere & " AND ([色值IU] <= " & Me.色值截止 & ")"
End If
'判断【粒度】条件是否有输入的值,由于有【粒度开始】【粒度截止】两个文本框
'所以要分开来考虑
If Not IsNull(Me.粒度开始) Then
'【粒度开始】有输入
strWhere = strWhere & " AND ([粒度]>=" & Me.粒度开始 & ")"
End If
If Not IsNull(Me.粒度截止) Then
'【粒度截止】有输入
strWhere = strWhere & " AND ([粒度] <= " & Me.粒度截止 & ")"
End If
'判断【二氧化硫】条件是否有输入的值,由于有【二氧化硫开始】【二氧化硫截止】两个文本框
'所以要分开来考虑
If Not IsNull(Me.二氧化硫开始) Then
'【二氧化硫开始】有输入
strWhere = strWhere & " AND ([二氧化硫] >= " & Me.二氧化硫开始 & ")"
End If
If Not IsNull(Me.二氧化硫截止) Then
'【二氧化硫截止】有输入
strWhere = strWhere & " AND ([二氧化硫] <= " & Me.二氧化硫截止 & ")"
End If
'判断【不溶物】条件是否有输入的值,由于有【不溶物开始】【不溶物截止】两个文本框
'所以要分开来考虑
If Not IsNull(Me.不溶物开始) Then
'【不溶物开始】有输入
strWhere = strWhere & " AND ([不溶物 mg/Kg] >= " & Me.不溶物开始 & ")"
End If
If Not IsNull(Me.不溶物截止) Then
'【不溶物截止】有输入
strWhere = strWhere & " AND ([不溶物 mg/Kg] <= " & Me.不溶物截止 & ")"
End If
'如果输入了条件,那么strWhere的最后肯定有" AND ",这是我们不需要的,
'要用LEFT函数截掉这5个字符。
If Len(strWhere) > 0 Then
'有输入条件
strWhere = Mid(strWhere, 6)
End If
'让子窗体应用窗体查询
Me.白砂糖子窗体.Form.Filter = strWhere
Me.白砂糖子窗体.Form.FilterOn = True
Exit_cmd查询_Click:
Exit Sub
Err_cmd查询_Click:
MsgBox Err.Description
Resume Exit_cmd查询_Click
End Sub
|
|