Foxtable(狐表)用户栏目专家坐堂 → [求助]关于模糊筛选


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

主题:[求助]关于模糊筛选

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


加好友 发短信
等级:婴狐 帖子:48 积分:392 威望:0 精华:0 注册:2013/3/31 19:13:00
[求助]关于模糊筛选  发帖心情 Post By:2014/10/16 18:16:00 [只看该作者]

求助大侠:

关于模糊查寻:

有内容为: “ 89米(M/6)— 电脑 ”

现我想模糊输入: “ 89M ” 就能将上面这个输出

不知道如何修改如下代码的?

Dim tnames() As String = { "Table1", "Table2"}
With e.Form
If e.sender.text <> ""Then
For Each tname As String In tnames
Dim dst As Table = Tables(tname)
Dim txb1 As WinForm.TextBox = .Controls("TextBox1")
Dim filter As String = "1=2"
For Each dc As DataCol In dst.DataTable.DataCols
filter &= " or convert(" & dc.Name & ",'System.String') like '%" & txb1.text & "%'"
Next

dst.Filter = filter
Next
End If
End With


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2014/10/16 19:11:00 [只看该作者]

 不能这样,除非加空格 89 M

 

 Dim tnames() As String = { "Table1", "Table2"}
With e.Form
    If e.sender.text <> ""Then
        For Each tname As String In tnames
            Dim dst As Table = Tables(tname)
            Dim txb1 As WinForm.TextBox = .Controls("TextBox1")
            Dim filter As String = "1=2"
            For Each dc As DataCol In dst.DataTable.DataCols
                For Each tx As String In txb1.Text
                    filter &= " or convert(" & dc.Name & ",'System.String') like '%" & tx & "%'"
                Next
            Next
           
            dst.Filter = filter
        Next
    End If
End With


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2014/10/16 19:16:00 [只看该作者]

 写错了。

 

Dim tnames() As String = { "Table1", "Table2"}
With e.Form
    If e.sender.text <> ""Then
        For Each tname As String In tnames
            Dim dst As Table = Tables(tname)
            Dim txb1 As WinForm.TextBox = .Controls("TextBox1")
            Dim filter As String = "1=2"
            For Each dc As DataCol In dst.DataTable.DataCols
                filter &= " or "
                Dim ary() As String = txb1.Text.Split(" ")
                For i As Integer = 0 To ary.Length - 2
                    filter &= " convert(" & dc.Name & ",'System.String') like '%" & ary(i) & "%'"
                    filter &= " and "
                Next
                filter &= " convert(" & dc.Name & ",'System.String') like '%" & ary(ary.length-1) & "%'"
            Next
           
            dst.Filter = filter
        Next
    End If
End With


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


加好友 发短信
等级:婴狐 帖子:48 积分:392 威望:0 精华:0 注册:2013/3/31 19:13:00
  发帖心情 Post By:2014/10/16 19:26:00 [只看该作者]

老大你帮忙给的代码不能执行呢?


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2014/10/16 19:39:00 [只看该作者]

 例子发上来。

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


加好友 发短信
等级:婴狐 帖子:48 积分:392 威望:0 精华:0 注册:2013/3/31 19:13:00
  发帖心情 Post By:2014/10/16 19:42:00 [只看该作者]

老大,收到,谢谢

 回到顶部