以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  新人刚学,筛选窗口,急急,求大神指点  (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=65919)

--  作者:simve_seven
--  发布时间:2015/3/25 17:15:00
--  新人刚学,筛选窗口,急急,求大神指点
 临时急用,非常急,刚学要做个简单的筛选功能,如下图所示
图片点击可在新窗口打开查看
我是照抄教程里的,用ComboBox程序如下
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 & "器件代码= \'" & .Value & "\'"
    End If
End With
With e.Form.Controls("器件名称列表")
    If .Value IsNot Nothing Then
        If Filter >"" Then
            Filter = Filter & " And "
        End If
        Filter = Filter & "器件名称 = \'" & .Value & "\'"
    End If
End With
If Filter > "" Then
    Tables("机型数据总表").Filter = Filter
End If

--  作者:有点甜
--  发布时间:2015/3/25 17:17:00
--  

 看不到图,图片上传请参考 http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&Id=78

 


--  作者:狐狸爸爸
--  发布时间:2015/3/25 17:19:00
--  

With e.Form.Controls("机型列表")
    If .Value IsNot Nothing Then
        Filter =" 机型 = \'" & .Value & "\'"
    End If
End With

 

改为:

 

With e.Form.Controls("机型列表")
    If .Value IsNot Nothing Then
        Filter =" 机型 in (\'" & .Value.Replace(",","\',\'") & "\')"
    End If
End With

 

[此贴子已经被作者于2015/3/25 17:22:12编辑过]

--  作者:simve_seven
--  发布时间:2015/3/25 17:21:00
--  
 图片点击可在新窗口打开查看
--  作者:simve_seven
--  发布时间:2015/3/25 17:22:00
--  
 谢谢


--  作者:狐狸爸爸
--  发布时间:2015/3/25 17:22:00
--  

三楼有答案,看一下in运算符的语法,就知道为啥要这样处理了:

 

http://www.foxtable.com/help/topics/0102.htm

 

[此贴子已经被作者于2015/3/25 17:22:54编辑过]

--  作者:simve_seven
--  发布时间:2015/3/25 17:30:00
--  
图片点击可在新窗口打开查看
可能格式不对,我是一点不懂,主要是急用,以后我再仔细认真学,大神先帮我解决目前的问题

--  作者:有点甜
--  发布时间:2015/3/25 17:33:00
--  
 直接用1楼的代码,报什么错。
--  作者:狐狸爸爸
--  发布时间:2015/3/25 17:36:00
--  

我测试编译OK:

 

Dim Filter As String
With e.Form.Controls("机型列表")
    If .Value IsNot Nothing Then
        Filter =" 机型 in (\'" & .Value.Replace(",","\',\'") & "\')"
    End If
End With

With e.Form.Controls("器件代码列表")
    If .Value IsNot Nothing Then
        If Filter > "" Then
            Filter = Filter & " And "
        End If
        Filter = 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 & "器件名称 = \'" & .Value & "\'"
    End If
End With
If Filter > "" Then
    Tables("机型数据总表").Filter = Filter
End If


--  作者:simve_seven
--  发布时间:2015/3/25 17:40:00
--  
可以了,谢谢,非常感谢