以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  如何根据ComboBox的内容筛选数据?ComboBox里的选项是一些区间,但是要求筛选后得到的数据是在这个范围内的数据。  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=88727)

--  作者:文刀土山羊
--  发布时间:2016/8/8 16:19:00
--  如何根据ComboBox的内容筛选数据?ComboBox里的选项是一些区间,但是要求筛选后得到的数据是在这个范围内的数据。

如题:如何根据ComboBox的内容筛选数据?

ComboBox里的选项是如下的一些区间,

-30℃ ~ -29℃
-29℃ ~ -28℃
-28℃ ~ -27℃
-27℃ ~ -26℃
-26℃ ~ -25℃
-25℃ ~ -24℃
-24℃ ~ -23℃
-23℃ ~ -22℃
-22℃ ~ -21℃
-21℃ ~ -20℃
-20℃ ~ -19℃
-19℃ ~ -18℃
-18℃ ~ -17℃
-17℃ ~ -16℃
-16℃ ~ -15℃
-15℃ ~ -14℃
-14℃ ~ -13℃
-13℃ ~ -12℃
-12℃ ~ -11℃
-11℃ ~ -10℃
-10℃ ~ -9℃
-9℃ ~ -8℃
-8℃ ~ -7℃
-7℃ ~ -6℃
-6℃ ~ -5℃
-5℃ ~ -4℃
-4℃ ~ -3℃
-3℃ ~ -2℃
-2℃ ~ -1℃
-1℃ ~ 0℃
0℃ ~ 1℃
1℃ ~ 2℃
2℃ ~ 3℃
3℃ ~ 4℃
4℃ ~ 5℃
5℃ ~ 6℃
6℃ ~ 7℃
7℃ ~ 8℃
8℃ ~ 9℃
9℃ ~ 10℃

但是提供的表格数据是一个个的数据个体,比如说2.7℃,-12.3摄氏度

 

要求是,一旦ComboBox的内容一改变,就会将相应的数据行显示出来。

比如说,我现在将ComboBox的内容选为“4℃~5℃”,那么相对应的表格就会自动筛选出这个范围内的温度的行。。

 


--  作者:文刀土山羊
--  发布时间:2016/8/8 16:21:00
--  
貌似有些难度,但是求大神指点,我必须要能实现这一个功能!!@大红袍 @Bin 求助   非常感谢!
--  作者:大红袍
--  发布时间:2016/8/8 16:26:00
--  

1、先把你的表数据,处理成数值类型 2.7、12.3 之类的。

 

2、上传实例具体说明


--  作者:文刀土山羊
--  发布时间:2016/8/12 10:37:00
--  回复:(大红袍)1、先把你的表数据,处理成数值类型 ...
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:区间筛选例子.table

大红袍兄,上面是我的例子,有几个ComboBox里面的自定义项目是需要筛选出某一个范围内的数值的。我真的不会这样子操作的代码。求红袍兄指点,你只要举其中一个例子就好了!感激不尽!
--  作者:大红袍
--  发布时间:2016/8/12 10:55:00
--  

Dim Filter As String
With e.Form.Controls("ComboBox1")
    If .Value IsNot Nothing Then
        Filter = "地区 = \'" & .Value & "\'"
    End If
End With

With e.Form.Controls("ComboBox2")
    If .Value IsNot Nothing Then
        If Filter > "" Then
            Filter = Filter & " And "
        End If
        Dim ary() As String = .Value.split("-")
        Filter = Filter & "室外温度 >= " & val(ary(0)) & " and 室外温度 <= " & val(ary(1))

    End If
End With

If Filter > "" Then
    Tables("模拟广州天气分析").Filter = Filter
End If


--  作者:文刀土山羊
--  发布时间:2016/8/12 11:12:00
--  

OK了,谢谢大神指点,真的感激不尽!


--  作者:文刀土山羊
--  发布时间:2016/8/12 17:02:00
--  

问题解决了,所以我把我的例子调整了一下,因为不能重复上传。所以将调整后的代码贴出来了。代码如下,有需要者自取。如果需要调试的话将以下代码放进上面那个文件的筛选窗口里的“筛选”按钮里即可。

 

 

Dim Filter As String


With e.Form.Controls("DateTimePicker1")
    If .Value IsNot Nothing Then
        If Filter >"" Then
            Filter = Filter & " And "
        End If
        Filter = Filter & "日期=\'" & .Value & "\'"
    End If
End With


With e.Form.Controls("ComboBox1")
    If .Value IsNot Nothing Then
        Filter = "地区 = \'" & .Value & "\'"
    End If
End With

 

With e.Form.Controls("ComboBox2")
    If .Value IsNot Nothing Then
        If Filter > "" Then
            Filter = Filter & " And "
        End If
        Dim ary() As String = .Value.split("-")   
        Filter = Filter & "室外温度 >= " & val(ary(0)) & " and 室外温度 <= " & val(ary(1))
    End If
End With

 

With e.Form.Controls("ComboBox3")
    If .Value IsNot Nothing Then
        If Filter > "" Then
            Filter = Filter & " And "
        End If
        Dim ary() As String = .Value.split("-")
        Filter = Filter & "风力 >= " & val(ary(0)) & " and 风力 <= " & val(ary(1))
    End If
End With

With e.Form.Controls("ComboBox4")
    If .Value IsNot Nothing Then
        Filter = "天气 = \'" & .Value & "\'"
    End If
End With

With e.Form.Controls("ComboBox5")
    If .Value IsNot Nothing Then
        If Filter > "" Then
            Filter = Filter & " And "
        End If
        Dim ary() As String = .Value.split("-")
        Filter = Filter & "降雨量 >= " & val(ary(0)) & " and 降雨量 <= " & val(ary(1))
    End If
End With

With e.Form.Controls("ComboBox6")
    If .Value IsNot Nothing Then
        If Filter > "" Then
            Filter = Filter & " And "
        End If
        Dim ary() As String = .Value.split("-")
        Filter = Filter & "PM2点5 >= " & val(ary(0)) & " And PM2点5 <= " & val(ary(1))
    End If
End With

With e.Form.Controls("ComboBox7")
    If .Value IsNot Nothing Then
        If Filter > "" Then
            Filter = Filter & " And "
        End If
        Dim ary() As String = .Value.split("-")
        Filter = Filter & "空气湿度 >= " & val(ary(0)) & " and 空气湿度 <= " & val(ary(1))
    End If
End With

With e.Form.Controls("ComboBox8")
    If .Value IsNot Nothing Then
       Filter = "外出建议 = \'" & .Value & "\'"
    End If
End With

If Filter > "" Then
    Tables("模拟广州天气分析").Filter = Filter
End If