以文本方式查看主题 - 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 -- 老师就是老师,一眼就发现问题了,谢谢 |