以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助]筛选 条件不起作用  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=184649)

--  作者:zcgmxf
--  发布时间:2022/12/20 10:48:00
--  [求助]筛选 条件不起作用
老师,我下面标黄的字符串了,筛选条件没起作用。想要将组合框为 nothing 时 检查类别 = 复查 的过滤掉。学艺不精。谢谢!

        With e.Form.Controls("ComboBox2")
            If .Value IsNot Nothing Then
                If Filter > "" Then
                    Filter = Filter & " And "
                End If
                Filter = Filter & "检查类别 = \'" & .Value & "\'"
            Else
                If Filter > "" Then
                    Filter = Filter & " And "
                End If
                Filter = Filter & "检查类别 <> \'复查\'"
            End If
        End With
[此贴子已经被作者于2022/12/20 10:48:07编辑过]

--  作者:有点蓝
--  发布时间:2022/12/20 10:52:00
--  
代码没有问题,弹出最终的条件看看

msgbox(Filter )

--  作者:zcgmxf
--  发布时间:2022/12/20 11:07:00
--  
老师是后面还有筛选条件,如果后面的条件为空没问题,否则 "检查类别 <> \'复查\'"和前面的筛选条件 就没了。不知为何。 我把1楼的代码防最后就没问题了。


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


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




[此贴子已经被作者于2022/12/20 11:20:53编辑过]

--  作者:有点蓝
--  发布时间:2022/12/20 11:09:00
--  
完整代码?
--  作者:zcgmxf
--  发布时间:2022/12/20 11:22: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
                Filter = Filter & "检查类别 = \'" & .Value & "\'"
            Else
                If Filter > "" Then
                    Filter = Filter & " And "
                End If
                Filter = Filter & "检查类别 <> \'复查\'"
            End If
        End With
        With e.Form.Controls("CheckedComboBox1")
            If .value IsNot Nothing Then
                Dim Ft As String
                Dim Vals() As String = .Value.Split(",")
                For Val As Integer = 0 To Vals.Length - 1
                    Ft + = ",\'" & Vals(Val) & "\'"
                Next
                If ft > "" Then
                    Filter = "车间 In (" & Ft.Trim(",") & ")"
                End If
            End If
        End With
        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("DateTimePicker2")
            If .Value IsNot Nothing Then
                If Filter > "" Then
                    Filter = Filter & " And "
                End If
                Filter = Filter & "体检日期 <= \'" & .Value & "\'"
            End If
        End With


[此贴子已经被作者于2022/12/20 11:22:54编辑过]

--  作者:有点蓝
--  发布时间:2022/12/20 11:24:00
--  
Filter = Filter & "车间 In (" & Ft.Trim(",") & ")"
--  作者:zcgmxf
--  发布时间:2022/12/20 11:30:00
--  
老师,如果车间为空没问题,否则就出现错误提示


图片点击可在新窗口打开查看此主题相关图片如下:qq图片20221220112949.png
图片点击可在新窗口打开查看
[此贴子已经被作者于2022/12/20 11:34:10编辑过]

--  作者:有点蓝
--  发布时间:2022/12/20 11:32:00
--  
补上下面判断

                If Filter > "" Then
                    Filter = Filter & " And "
                End If

--  作者:zcgmxf
--  发布时间:2022/12/20 11:37:00
--  
行了,谢谢!