以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助]有点甜老师,组合筛选框的问题  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=173717)

--  作者:lsjzgyt
--  发布时间:2021/12/13 14:45:00
--  [求助]有点甜老师,组合筛选框的问题

图片点击可在新窗口打开查看此主题相关图片如下:1.jpg
图片点击可在新窗口打开查看
老师你好。有点蓝老师给的代码,我的水平有限不懂。
如果选中语文和英语,把优势科目列中符合”全部“,”语文\',""英语“”语文或理综“给筛选出来。如果选中语文和理综,把优势科目列中符合”全部“,”语文\',""理综“”语文或理综“”语文和理综给筛选出来。能完成这个功能么?谢谢!

--  作者:lsjzgyt
--  发布时间:2021/12/13 14:51:00
--  
Dim Filter As String = "1=1"
With e.Form.Controls("CheckedComboBox")
    If .Value <> Nothing Then
        Filter &= " and 优势科目 in (\'" & .Value.replace(",", "\',\'") & "\')"
    End If
End With
Tables("考生成绩表").Filter = Filter
有点甜老师,以上代码应该怎么改才可能!

--  作者:jialihaha
--  发布时间:2021/12/13 15:06:00
--  
Dim s As String = e.Form.Controls("CheckedComboBox1").text
Dim Filter As String = "1=1"
If s.Contains("语文") AndAlso s.Contains("英语") Then
    Filter = " 优势科目 in (\'全部\',\'语文\',\'英语\',\'语文或理综\') "
End If

If s.Contains("语文") AndAlso s.Contains("理综") Then
    Filter = " 优势科目 in (\'全部\',\'语文\',\'理综\',\'语文或理综\',\'语文和理综\') "
End If

Tables("考生成绩表").Filter = Filter

--  作者:lsjzgyt
--  发布时间:2021/12/13 15:32:00
--  
非常感谢。我又加了一个组合框班级


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

Dim Filter As String = "1=1"
With e.Form.Controls("combobox1")
    If .Value IsNot Nothing Then        
        Filter = Filter & " and 班级 like  \'%" & .Value &   "%\'"
    End If
End With


Dim s As String = e.Form.Controls("CheckedComboBox1").text
Dim Filter2 As String= "1=1"
If s.Contains("语文") AndAlso s.Contains("英语") Then
    Filter2 = " 优势科目 in (\'全部\',\'语文\',\'英语\',\'语文或理综\') "
End If

If s.Contains("语文") AndAlso s.Contains("理综") Then
    Filter2 = " 优势科目 in (\'全部\',\'语文\',\'理综\',\'语文或理综\',\'语文和理综\') "
End If

Tables("考生成绩表").Filter = Filter

这个代码应该怎么改,才能组合使用,非常感谢!

--  作者:jialihaha
--  发布时间:2021/12/13 15:53:00
--  
麻烦自己依样画葫芦,自己学着写
--  作者:lsjzgyt
--  发布时间:2021/12/13 15:58:00
--  
Dim Filter As String = "1=1"
With e.Form.Controls("combobox1")
    If .Value IsNot Nothing Then        
        Filter = Filter & " and 班级 like  \'%" & .Value &   "%\'"
    End If
End With
Dim s As String = e.Form.Controls("CheckedComboBox1").text

If s.Contains("语文") AndAlso s.Contains("英语") Then
    Filter = " 优势科目 in (\'全部\',\'语文\',\'英语\',\'语文或理综\') "
End If

If s.Contains("语文") AndAlso s.Contains("理综") Then
    Filter = " 优势科目 in (\'全部\',\'语文\',\'理综\',\'语文或理综\',\'语文和理综\') "
End If

Tables("考生成绩表").Filter = Filter

在学啊,可以自己太菜了,不知所以,还望指点。多谢啦

--  作者:jialihaha
--  发布时间:2021/12/13 16:00:00
--  
Dim Filter As String = " 1=1 "
With e.Form.Controls("combobox1")
    If .Value IsNot Nothing Then        
        Filter = Filter & " and 班级 like  \'%" & .Value &   "%\'"
    End If
End With
Dim s As String = e.Form.Controls("CheckedComboBox1").text

If s.Contains("语文") AndAlso s.Contains("英语") Then
    Filter = Filter & and 优势科目 in (\'全部\',\'语文\',\'英语\',\'语文或理综\') "
End If

If s.Contains("语文") AndAlso s.Contains("理综") Then
    Filter = Filter & and 优势科目 in (\'全部\',\'语文\',\'理综\',\'语文或理综\',\'语文和理综\') "
End If

Tables("考生成绩表").Filter = Filter
[此贴子已经被作者于2021/12/13 16:55:17编辑过]

--  作者:lsjzgyt
--  发布时间:2021/12/13 16:15:00
--  
你太厉害啦!
Dim Filter As String = "1=1"
Dim Filter As String = ""
这两个有区别么,以前我都用Dim Filter As String = "1=1",就可以完成一系列条件的筛选,不懂啦,以后多向你请教吧。太谢谢你啦!

--  作者:lsjzgyt
--  发布时间:2021/12/13 16:46:00
--  
如果班级这个组合框没有选择,会出错

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


--  作者:jialihaha
--  发布时间:2021/12/13 16:56:00
--  
看七楼