Foxtable(狐表)用户栏目专家坐堂 → [求助]关于模糊查询的实现


  共有2725人关注过本帖树形打印复制链接

主题:[求助]关于模糊查询的实现

帅哥哟,离线,有人找我吗?
leopain
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:172 积分:1188 威望:0 精华:0 注册:2015/8/5 16:45:00
[求助]关于模糊查询的实现  发帖心情 Post By:2015/9/14 10:27:00 [只看该作者]

老师

这个项目实现了用逗号分隔可多列查询

但是只能按照列的顺序才行 如果第二列没有值则查询不出

怎样写才能不用按照列的顺序 并且某列未空也可查询出来呢?

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:筛选_201509141020.zip


 回到顶部
帅哥哟,离线,有人找我吗?
大红袍
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2015/9/14 10:39:00 [只看该作者]

看不懂你代码想干什么,模糊筛选直接写

 

Dim filter As String = "1=2"
For Each dc As Col In Tables("表A").Cols
    Filter &= " or Convert(" & dc.Name & ",'System.String') like '%" & e.Form.Controls("TextBox1").Text & "%'"
Next

Tables("表A").Filter = filter


 回到顶部
帅哥哟,离线,有人找我吗?
leopain
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:172 积分:1188 威望:0 精华:0 注册:2015/8/5 16:45:00
  发帖心情 Post By:2015/9/14 11:00:00 [只看该作者]

额 是我表述不清楚

就是想实现多列的模糊查询

 

这个表A里“报名”这列没有内容 则输入逗号就查询不出内容

 

 


图片点击可在新窗口打开查看此主题相关图片如下:1.bmp
图片点击可在新窗口打开查看

 

 

这个表B里我如果按照列的顺序是可以正常查询出数据

可是一旦隔开一列输入则查询不出来


 


图片点击可在新窗口打开查看此主题相关图片如下:3.bmp
图片点击可在新窗口打开查看

 回到顶部
帅哥哟,离线,有人找我吗?
大红袍
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2015/9/14 11:22:00 [只看该作者]

filter内部函数

 

'生成可见的列名称
Dim Cols,Vals As New List(of String)
Dim flt As String = "1=1"

For Each c As Col In Args(0).Cols
    If c.Visible = True
        cols.add(c.name)
    End If
Next
'生成查询条件
Vals.AddRange(Args(1).Replace("'","''").Replace("*","[*]").Split(","))  '查询值列表并保证其有效

Dim i As Integer = 0
For Each Val As String In Vals
   
    Dim temp As String = ""
    For Each c As String In Cols
        temp = temp & " Convert(" & c & ",'System.String') like '%" & Val & "%' Or"
    Next
    flt = flt & " and ("& temp.SubString(0, temp.length-3) & ")"
Next
Return flt


 回到顶部