Foxtable(狐表)用户栏目专家坐堂 → 如何根据ComboBox的内容筛选数据?ComboBox里的选项是一些区间,但是要求筛选后得到的数据是在这个范围内的数据。


  共有2876人关注过本帖树形打印复制链接

主题:如何根据ComboBox的内容筛选数据?ComboBox里的选项是一些区间,但是要求筛选后得到的数据是在这个范围内的数据。

美女呀,离线,留言给我吧!
文刀土山羊
  1楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:婴狐 帖子:25 积分:274 威望:0 精华:0 注册:2016/7/29 15:47:00
如何根据ComboBox的内容筛选数据?ComboBox里的选项是一些区间,但是要求筛选后得到的数据是在这个范围内的数据。  发帖心情 Post By:2016/8/8 16:19:00 [只看该作者]

如题:如何根据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℃”,那么相对应的表格就会自动筛选出这个范围内的温度的行。。

 


 回到顶部
美女呀,离线,留言给我吧!
文刀土山羊
  2楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:婴狐 帖子:25 积分:274 威望:0 精华:0 注册:2016/7/29 15:47:00
  发帖心情 Post By:2016/8/8 16:21:00 [只看该作者]

貌似有些难度,但是求大神指点,我必须要能实现这一个功能!!@大红袍 @Bin 求助   非常感谢!

 回到顶部
帅哥哟,离线,有人找我吗?
大红袍
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2016/8/8 16:26:00 [只看该作者]

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

 

2、上传实例具体说明


 回到顶部
美女呀,离线,留言给我吧!
文刀土山羊
  4楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:婴狐 帖子:25 积分:274 威望:0 精华:0 注册:2016/7/29 15:47:00
回复:(大红袍)1、先把你的表数据,处理成数值类型 ...  发帖心情 Post By:2016/8/12 10:37:00 [只看该作者]

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:区间筛选例子.table

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

 回到顶部
帅哥哟,离线,有人找我吗?
大红袍
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By: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


 回到顶部
美女呀,离线,留言给我吧!
文刀土山羊
  6楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:婴狐 帖子:25 积分:274 威望:0 精华:0 注册:2016/7/29 15:47:00
  发帖心情 Post By:2016/8/12 11:12:00 [只看该作者]

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


 回到顶部
美女呀,离线,留言给我吧!
文刀土山羊
  7楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:婴狐 帖子:25 积分:274 威望:0 精华:0 注册:2016/7/29 15:47:00
  发帖心情 Post By: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


 回到顶部