以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  窗口的两个:ComboBox,ValueChanged发生变化后:筛选table  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=79238)

--  作者:yancheng
--  发布时间:2015/12/27 13:37:00
--  窗口的两个:ComboBox,ValueChanged发生变化后:筛选table
窗口的两个:ComboBox,ValueChanged发生变化后:筛选table
这个窗口中有两个:ComboBox,分别为:执行情况(ComboBox4),单据状态ComboBox3)
当这两个:ComboBox的:ValueChanged发生变化时,怎么,联动切换?
我现在在:单据状态ComboBox3)的:ValueChanged写了如下代码:

Dim filter As String=""
With e.Form.Controls("ComboBox4")
    If .Value <> "所有" Then
        Filter = "执行情况 = \'" & .Value & "\'"
    End If
End With
With e.Form.Controls("ComboBox3")
    If filter > "" Then
        filter = filter & " and "
    End If
    If .Value <> "所有" Then
        Filter ="单据状态 =\'" & .Value & "\' "
    End If
End With

Tables("调单采购订单_table2").Filter=filter
执行情况ComboBox4)的:ValueChanged写了如下代码:
Dim filter As String=""
With e.Form.Controls("ComboBox3")
    If .Value <> "所有" Then
        Filter ="单据状态 =\'" & .Value & "\' "
    End If
End With

With e.Form.Controls("ComboBox4")
    If filter > "" Then
        filter = filter & " and "
    End If
    If .Value <> "所有" Then
        Filter = "执行情况 = \'" & .Value & "\'"
    End If
End With
Tables("调单采购订单_table2").Filter=filter

现在做出来的效果是: 改变ComboBox3,ComboBox4的值时,只执行自己的,别管另一个ComboBox的值。
图片点击可在新窗口打开查看此主题相关图片如下:55.jpg
图片点击可在新窗口打开查看
[此贴子已经被作者于2015/12/27 13:37:18编辑过]

--  作者:yancheng
--  发布时间:2015/12/27 13:38:00
--  

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

--  作者:大红袍
--  发布时间:2015/12/27 14:09:00
--  
写到textchanged事件。
--  作者:yancheng
--  发布时间:2015/12/27 14:16:00
--  
我原来就写在TEXTCHANGED里面的,感觉一样的。

选择:“所有”时,还报错。
图片点击可在新窗口打开查看此主题相关图片如下:77.jpg
图片点击可在新窗口打开查看
[此贴子已经被作者于2015/12/27 14:17:39编辑过]

--  作者:大红袍
--  发布时间:2015/12/27 14:22:00
--  
Dim filter As String=""
With e.Form.Controls("ComboBox4")
    If .Value > "" AndAlso .Value <> "所有" Then
        Filter = "执行情况 = \'" & .Value & "\'"
    End If
End With
With e.Form.Controls("ComboBox3")
    If filter > "" Then
        filter = filter & " and "
    End If
    If .Value > "" AndAlso .Value <> "所有" Then
        Filter ="单据状态 =\'" & .Value & "\' "
    End If
End With

--  作者:yancheng
--  发布时间:2015/12/27 15:54:00
--  
还是一样的情况。
--  作者:大红袍
--  发布时间:2015/12/27 16:00:00
--  
Dim filter As String=""
With e.Form.Controls("ComboBox4")
    If .Value > "" AndAlso .Value <> "所有" Then
        Filter = "执行情况 = \'" & .Value & "\'"
    End If
End With
With e.Form.Controls("ComboBox3")
    If .Value > "" AndAlso .Value <> "所有" Then
        If filter > "" Then
            filter = filter & " and "
        End If
        Filter ="单据状态 =\'" & .Value & "\' "
    End If
End With

 


--  作者:yancheng
--  发布时间:2015/12/27 16:25:00
--  
这样好像行了。

Dim filter As String=""
With e.Form.Controls("ComboBox3")
    If .Value > "" AndAlso .Value <> "所有" Then
        Filter ="单据状态 =\'" & .Value & "\' "
    End If
End With
With e.Form.Controls("ComboBox4")
    If .Value > "" AndAlso  .Value <> "所有" Then
        If filter > "" Then
            filter = filter & " and "
        End If
        Filter =filter & "执行情况 = \'" & .Value & "\'"
    End If
End With
Tables("调单采购订单_table2").Filter=filter