以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  查询代码出问题了,请指导  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=74753)

--  作者:bagih
--  发布时间:2015/9/18 10:10:00
--  查询代码出问题了,请指导

查询条件一共4个,姓名,部门,日期和机构ID,错误现象,如果填上部门查询,日期筛选就失效了。谢谢各位老师了

 

Dim Filter As String
With e.Form.Controls("ComBoBox1")
If .Value IsNot Nothing Then
Filter = "(姓名 Like \'%" & .Value & "%\')"
End If
End With
With e.Form.Controls("ComboBox10")
If .Value IsNot Nothing Then
If Filter >"" Then
Filter = Filter & " And "
End If
Filter = "(部门 Like \'%" & .Value & "%\')"
End If
End With
\'==================================
With _groupadmin
If Filter > "" Then
Filter = Filter & " And "
End If
If _groupadmin = True Then \'如果是管理员
Filter = Filter & "(市机构ID = \'" & _usershijigouid & "\')" \'筛选所属市级的记录
Else
Filter = Filter & "(营业部ID = \'" & _useryingyebuid & "\')" \'否则只筛选所属营业部的记录
End If

End With
With e.Form.Controls("DateTimePicker1")
If .Value IsNot Nothing Then
If Filter >"" Then
Filter = Filter & " And "
End If
Filter = Filter & "(日期 >= \'" & .Value & "\')"
End If
End With

With e.Form.Controls("DateTimePicker2")
If .Value IsNot Nothing Then
If Filter >"" Then
Filter = Filter & " And "
End If
Filter = Filter & "(日期 <= \'" & .Value & "\')"
End If
End With
\'==========================
MessageBox.Show(filter, "提示")

If Filter > "" Then
DataTables("台账").loadFilter = Filter
DataTables("台账").load()
End If


--  作者:Hyphen
--  发布时间:2015/9/18 10:45:00
--  
Filter 最后生成的内容是怎么样的。如果是access,日期这样用Filter = Filter & "(日期 >= #" & .Value & "#)"
--  作者:bagih
--  发布时间:2015/9/18 11:03:00
--  
姓名+日期=查询结果是正确的,姓名+部门+日期=得到的结果只有姓名和部门符合,FILTER内没有日期这个条件了,数据源是外部的SQL
--  作者:Hyphen
--  发布时间:2015/9/18 11:54:00
--  
把部门的条件放到最后添加看是什么效果
--  作者:bagih
--  发布时间:2015/9/18 14:56:00
--  
部门放在最后,filter就只有部门了,其他的都没有
--  作者:大红袍
--  发布时间:2015/9/19 10:21:00
--  

Filter = "(部门 Like \'%" & .Value & "%\')"

 

改成

 

Filter = Filter & "(部门 Like \'%" & .Value & "%\')"


--  作者:bagih
--  发布时间:2015/9/19 12:47:00
--  

老师就是老师,一眼就发现问题了,谢谢