以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助]CheckedComboBox多值对表第一行多值筛选  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=151632)

--  作者:miaoqingqing
--  发布时间:2020/6/29 17:52:00
--  [求助]CheckedComboBox多值对表第一行多值筛选
表A  第一列  5行的值:
中国
中国,法国,美国
中国,法国
英国,中国
法国,美国

求助:
CheckedComboBox 值为中国时,筛选出
中国
中国,法国,美国
中国,法国
英国,中国

CheckedComboBox 值为中国,美国时,筛选出
中国,法国,美国

下面代码怎么修改实现,求助

Dim tbl As Table = Tables("表A")
If tbl.Filter.Contains("第一列") = False
    vars("filter") = tbl.Filter
End If

Dim txt As String = e.Form.Controls("第一列").Text
If txt = "" Then
    tbl.Filter = ""
Else
    
    Dim vals() As String =e.Form.Controls("第一列").Text.split(",")
    Dim s As String = "("
    For Each val As String In vals
        s = s & "\'" & val & "\',"
    Next
    s = s.trim(",") & ")"
    Tables("表A").Filter = "第一列 in " & s
   
    \'s = "\'%" & s & "%\'"
    \'If vars("filter") > "" Then
        \'tbl.Filter = vars("filter") & " and 第一列 Like " & s
    \'Else
        \'tbl.Filter = "第一列 Like " & s
    \'End If
End If

--  作者:y2287958
--  发布时间:2020/6/29 18:54:00
--  
第一列 in ()
--  作者:有点蓝
--  发布时间:2020/6/29 20:36:00
--  
Dim txt As String = e.Form.Controls("第一列").Text
If txt = "" Then
    tbl.Filter = ""
Else
    
    Dim vals() As String =e.Form.Controls("第一列").Text.split(",")
    Dim s As String = "1=1 "
    For Each val As String In vals
        s = s & " and \',\'+第一列+\',\' Like \'%," & val & ",%\' "
    Next
    Tables("表A").Filter = s
End If