以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助]复选组合框多选查询  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=104636)

--  作者:cd_tdh
--  发布时间:2017/8/2 11:53:00
--  [求助]复选组合框多选查询

老师,我之前用的组合框查询代码如下没问题,现在专业名称改用复选组合框,代码应该怎么改?

Dim Filter As String
With e.Form.Controls("证件名称")
    If .Value IsNot Nothing Then
        Filter = "证件名称 = \'" & .Value & "\'"
    End If
End With

With e.Form.Controls("专业名称")
    If .Value IsNot Nothing Then
        If Filter > "" Then
            Filter = Filter & " And "
        End If
        Filter = Filter & "专业 like \'%" & .Value & "%\'"
    End If
End With

With e.Form.Controls("姓名")
    If .Value IsNot Nothing Then
        If Filter > "" Then
            Filter = Filter & " And "
        End If
        Filter = Filter & "姓名 like \'%" & .Value & "%\'"
    End If
End With

If Filter > "" Then
    Tables("人员证件").Filter = Filter
End If


--  作者:cd_tdh
--  发布时间:2017/8/2 12:30:00
--  

老师现在代码如下:专业名称哪儿不能模糊查询,怎么修改呢?

比如我专业名称列专业有:公路,  公路、市政,   公路、市政、水利,当选择公路查询时,这三个专业的都显示出来。

Dim Filter As String = "1=1"

With e.Form.Controls("姓名")
    If .Value IsNot Nothing Then
        Filter = "姓名 = \'" & .Value & "\'"
    End If
End With

With e.Form.Controls("证件名称")
    If .Value IsNot Nothing Then
        If Filter > "" Then
            Filter = Filter & " And "
        End If
        Filter = Filter & "证件名称 like \'%" & .Value & "%\'"
    End If
End With

With e.Form.Controls("专业名称")
    If .Value IsNot Nothing Then
        Filter &= " and 专业 in (\'" & .Text.Replace(",", "\',\'") & "\')"
    End If
End With

If Filter > "" Then
    Tables("人员证件").Filter = Filter
End If

 

[此贴子已经被作者于2017/8/2 12:43:31编辑过]

--  作者:有点甜
--  发布时间:2017/8/2 13:27:00
--  

参考

 

http://foxtable.com/bbs/dispbbs.asp?BoardID=2&ID=103946&skin=0

 


--  作者:cd_tdh
--  发布时间:2017/8/2 13:38:00
--  
搞定了图片点击可在新窗口打开查看