以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 还是filter (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=63537) |
-- 作者:machle -- 发布时间:2015/1/23 0:58:00 -- 还是filter 还是那三个text,一个完全匹配,两个模糊匹配,从两个表中查,帮忙再看看吧。 两个表筛出来,结果总是一行。每个text筛出至少一条数据的话,按说应该至少三行才对。但结果总是后面的覆盖前面的,最后显示一条数据。 Dim Filter1 As String Dim Filter2 As String Dim Filter3 As String Dim Filter As String Dim txt1 As String = e.Form.Controls("TextBox7").Text Dim txt2 As String = e.Form.Controls("TextBox8").Text Dim txt3 As String = e.Form.Controls("TextBox9").Text txt1 = "\'" & txt1 & "\'" Filter1 = "编号 = " & txt1 txt2 = "\'%" & txt2 & "%\'" txt3 = "\'%" & txt3 & "%\'" Filter2 = "公司名称 Like " & txt2 Filter3 = "产品名称 Like " & txt3 If txt1 <> "\'\'" And txt2 <>"\'%%\'" And txt3 <>"\'%%\'" Then filter = filter1 & " or " & filter2 & " or " & filter3 End If If txt1 = "\'\'" And txt2 <>"\'%%\'" And txt3 <>"\'%%\'" Then filter = filter2 & " or " & filter3 End If If txt1 = "\'\'" And txt2 ="\'%%\'" And txt3 <>"\'%%\'" Then filter = filter3 End If If txt1 <> "\'\'" And txt2 ="\'%%\'" And txt3 <>"\'%%\'" Then filter = filter1 & " or " & filter3 End If If txt1 <> "\'\'" And txt2 ="\'%%\'" And txt3 ="\'%%\'" Then filter = filter1 End If If txt1 = "\'\'" And txt2 <>"\'%%\'" And txt3 ="\'%%\'" Then filter = filter2 End If If txt1 = "\'\'" And txt2 ="\'%%\'" And txt3 ="\'%%\'" Then messagebox.show("请填写要搜索的内容","提示") End If If txt1 <> "\'\'" And txt2 <>"\'%%\'" And txt3 ="\'%%\'" Then filter = filter1 & " or " & filter2 End If Dim dr1 As DataRow With DataTables("ChemSign1") .LoadFilter = Filter .Load dr1 = .Find(Filter) End With Dim dr2 As DataRow With DataTables("ChemSign2") .LoadFilter = Filter .Load dr2 = .Find(Filter) End With |
-- 作者:machle -- 发布时间:2015/1/23 0:58:00 -- 我要被这个filter折磨死了 |
-- 作者:新福星 -- 发布时间:2015/1/23 5:54:00 -- Dim dr1 As DataRow With DataTables("ChemSign1") .LoadFilter = Filter .Loadtop=“” .Load dr1 = .Find(Filter) End With Dim dr2 As DataRow With DataTables("ChemSign2") .LoadFilter = Filter .Loadtop=“ .Load 这样改试试
dr2 = .Find(Filter) End With |
-- 作者:machle -- 发布时间:2015/1/23 7:29:00 -- 回复:(新福星)Dim dr1 As DataRowWith DataTables(... 谢谢,增加那个top的一行,内容第一次搜的挺好,多次运行后面就不变化了,结果就不对了。 之前我那代码换了台电脑,运行却能出正确结果。有些郁闷。到底是为啥? |
-- 作者:machle -- 发布时间:2015/1/23 8:03:00 -- 回复:(machle)回复:(新福星)Dim dr1 As DataRow... 刚检查运行,又不行了。不知道代码到底哪里有问题。 |
-- 作者:Bin -- 发布时间:2015/1/23 8:05:00 -- 弹出你的FIlter看看 值是什么 |
-- 作者:machle -- 发布时间:2015/1/23 8:12:00 -- 回复:(Bin)弹出你的FIlter看看 值是什么 假如说前两个text有文字,点查找按钮,filter是 编号 = \'1203\' or 公司名称 Like \'%公司%\' |
-- 作者:Bin -- 发布时间:2015/1/23 8:17:00 -- 条件没错啊. |
-- 作者:machle -- 发布时间:2015/1/23 8:26:00 -- 回复:(Bin)条件没错啊. 把昨天您回复的那个按钮的代码直接复制过来,对应改完,前面那个页面一点问题没有,这个页面每次就只查出一行数据。感觉是只查出text2的,好像后面的把前面的覆盖了。 |
-- 作者:Bin -- 发布时间:2015/1/23 8:27:00 -- 根据你7楼的条件,没有错.除非没有符合条件的数据. |