Foxtable(狐表)用户栏目专家坐堂 → [求助]有关CheckedComboBox复选框问题


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

主题:[求助]有关CheckedComboBox复选框问题

帅哥哟,离线,有人找我吗?
lsjzgyt
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:婴狐 帖子:20 积分:230 威望:0 精华:0 注册:2021/12/12 17:28:00
[求助]有关CheckedComboBox复选框问题  发帖心情 Post By:2021/12/12 18:42:00 [只看该作者]

老师你好,我想做一个CheckedComboBox条件筛选。

图片点击可在新窗口打开查看此主题相关图片如下:123.jpg
图片点击可在新窗口打开查看
比如我在CheckedComboBox里选中语文和英语,那么列名"三大科优势"里符合条件的是全部,语文,英语,语文或数学,数学或英语,关键是语文和数学不要筛选出来(这两科都是优秀才行),只有在CheckedComboBox里选中语文和数学,那么除了全部,语文,数学,语文或数学,数学或英语,这个时候语文和数学才符合条件一起筛选出学生名单来。按钮的代码按照示例
Dim Filter As String = "1=1"
With e.Form.Controls("CheckedComboBox1")
    If .Value <> Nothing Then
        Filter &= " and 三大科优势 in ('" & .Value.replace(",", "','") & "')"
    End If
End With

Tables("三大科学生名单表").Filter = Filter
不知道怎么改了,请老师帮忙,谢谢!

 回到顶部
帅哥,在线噢!
有点蓝
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:105957 积分:538860 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/12/12 20:58:00 [只看该作者]

没有办法做这种筛选。不如换种方式,先界定一下,语文或数学、语文和数学这2个定义是怎么来的?然后根据定义来判断

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


加好友 发短信
等级:婴狐 帖子:20 积分:230 威望:0 精华:0 注册:2021/12/12 17:28:00
  发帖心情 Post By:2021/12/12 21:01:00 [只看该作者]

好的,谢谢!

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


加好友 发短信
等级:婴狐 帖子:20 积分:230 威望:0 精华:0 注册:2021/12/12 17:28:00
  发帖心情 Post By:2021/12/12 21:10:00 [只看该作者]

先界定一下,语文或数学、语文和数学这2个定义是怎么来的?然后根据定义来判断?


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


加好友 发短信
等级:婴狐 帖子:20 积分:230 威望:0 精华:0 注册:2021/12/12 17:28:00
  发帖心情 Post By:2021/12/12 21:48:00 [只看该作者]

CheckedComboBox里选中语文和英语,三大科里语文和英语只要有一科是优势,就符合条件,所以“全部”,”语文“,“英语”,“语文或数学,数学或英语”,这些都符合,而语文和数学必须是两科都优势才可以。也就是如果是选中语文和数学,那以上就都符合了。真的没有办法筛选了吗?

 回到顶部
帅哥,在线噢!
有点蓝
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:105957 积分:538860 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/12/12 22:34:00 [只看该作者]

人脑可以理解,但是程序无法理解这种文字游戏。程序只能判断确定性的东西。

怎么样算是优势?假设100分以上算是优势,那么可以这样判断:

dim ss as string = "语文,英语" '可以改为CheckedComboBox的值
dim filter as string = "1=2"
for each s as string in ss.split(",")
filter = filter & "or " & s & " > 100"
next
Tables("三大科学生名单表").Filter = Filter

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


加好友 发短信
等级:婴狐 帖子:20 积分:230 威望:0 精华:0 注册:2021/12/12 17:28:00
  发帖心情 Post By:2021/12/13 8:23:00 [只看该作者]

谢谢老师!
程序不需要理解这种文字游戏啊。只要CheckedComboBox选中语文和英语,就把符合三大科优势这列中文本字符串“全部”,”语文“,“英语”,“语文或数学,数学或英语”的学生找出来就可以,这是固定的啊,不需要程序按分数去判断优势!

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


加好友 发短信
等级:婴狐 帖子:20 积分:230 威望:0 精华:0 注册:2021/12/12 17:28:00
  发帖心情 Post By:2021/12/13 8:51:00 [只看该作者]

老师你好!
这个不能定义吗。如果CheckedComboBox选中语文和英语,就把符合三大科优势这列中文本字符串“全部”,”语文“,“英语”,“语文或数学,数学或英语”的学生找出来。如果CheckedComboBox选中语文和数学。那么就把三大科优势这列中文本字符串“全部”,”语文“,“数学”,“语文或数学,数学或英语”“语文和数学的学生找出来!文本字符串是固定的,不是根据分数算出来的。谢谢老师!

 回到顶部
帅哥,在线噢!
有点蓝
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:105957 积分:538860 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/12/13 9:14:00 [只看该作者]

Dim ss As String = "语文,英语" '可以改为CheckedComboBox的值
Dim filter As String
Dim sr() As String = ss.split(",")
Dim aa() As String = {"语文","数学","英语"}
Dim s1 As String
If sr.Length = 2 Then
s1 = ",'" & sr(0) & "和" & sr(1) & "','" & sr(1) & "和" & sr(0) & "'"
End If
For Each s3 As String In sr
    For Each s2 As String In aa
        If s2 <> s3 Then
            s1 = s1 & ",'" & s3 & "或" & s2 & "','" & s2 & "或" & s3 & "'"
        End If
    Next
Next
filter = "三大科优势 in ('全部','" & sr(0) & "','" & sr(1) & "'" & s1 & ")"

msgbox(filter)

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


加好友 发短信
等级:婴狐 帖子:20 积分:230 威望:0 精华:0 注册:2021/12/12 17:28:00
  发帖心情 Post By:2021/12/13 10:28:00 [只看该作者]

谢谢有点蓝老师
我的表述可能不清楚。是这样的。

图片点击可在新窗口打开查看此主题相关图片如下:2.jpg
图片点击可在新窗口打开查看
如果我选中语文和英语(就选两个科目吧),点查询就筛选出优势科目列中”全部,语文,英语,语文或英语“所有学生名单,如果选中语文和理综,就筛选出全部,语文,理综,语文和理综。优势科目中文本内容是固定的几个字符,这个不能定义吗?

图片点击可在新窗口打开查看此主题相关图片如下:1.jpg
图片点击可在新窗口打开查看
麻烦老师啦

 回到顶部
总数 12 1 2 下一页