以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  筛选统计问题  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=157812)

--  作者:qazlinle6
--  发布时间:2020/10/29 23:45:00
--  筛选统计问题
Dim Filter As String = ""
If e.Node.Name <> "显示所有行" Then \'要用Name属性,不能用Text属性
    Dim d1 As Date
    Dim d2 As Date
    Dim d3 As Date
    Dim Year As Integer = e.Node.DataRow("年")
    Dim Month As Integer = e.Node.DataRow("月")
    Dim Day As Integer = e.Node.DataRow("日")
    Dim a1 As String = e.Node.DataRow("商品备注")
    Dim a2 As String = e.Node.DataRow("是否可用")
    
    Select Case e.Node.Level
        Case 0
            d1 = New Date(Year,1,1) \'取得该年的第一天
            d2 = new Date(Year,12,31) \'取得该年的最后一天
            d3 = new Date(Year,1,31) \'取得该年的最后一天
            Filter ="登记时间 >= #" & d1 & "# And 登记时间 <= #" & d2 & "# And 登记时间 <= #" & d3 & "#"
        Case 1
            d1 = New Date(Year, Month, 1) \'取得该月的第一天
            d2 = new Date(Year, Month, Date.DaysInMonth(Year,Month)) \'取得该月的最后一天
            d3 = new Date(Year, Month, Day, Date.DaysInMonth(Year,Month,Day)) \'取得该月的最后一天
            Filter ="登记时间 >= #" & d1 & "# And 登记时间 <= #" & d2 & "# And 登记时间 <= #" & d3 & "#"
        Case 2  
            d1 = New Date(Year, Month, 1) \'取得该月的第一天
            d2 = new Date(Year, Month, Date.DaysInMonth(Year,Month)) \'取得该月的最后一天
            d3 = new Date(Year, Month,Day, Date.DaysInMonth(Year,Month,Day)) \'取得该月的最后一天
            Filter ="登记时间 >= #" & d1 & "# And 登记时间 <= #" & d2 & "# And 登记时间 <= #" & d3 & "#"
        Case 3

            d1 = New Date(Year, Month, 1) \'取得该月的第一天
            d2 = new Date(Year, Month, Date.DaysInMonth(Year,Month)) \'取得该月的最后一天
            d3 = new Date(Year, Month,Day, Date.DaysInMonth(Year,Month,Day)) \'取得该月的最后一天
            Filter ="登记时间 >= #" & d1 & "# And 登记时间 <= #" & d2 & "# And 登记时间 <= #" & d3 & "# And 商品备注 = \'" & a1 & "\'"
        Case 4
            d1 = New Date(Year, Month, 1) \'取得该月的第一天
            d2 = new Date(Year, Month, Date.DaysInMonth(Year,Month)) \'取得该月的最后一天
            d3 = new Date(Year, Month,Day, Date.DaysInMonth(Year,Month,Day)) \'取得该月的最后一天
            Filter ="登记时间 >= #" & d1 & "# And 登记时间 <= #" & d2 & "# And 登记时间 <= #" & d3 & "# And 商品备注 = \'" & a1 & " And 是否可用 = \'" & a2 & "\'"
    End Select
End If
Tables("FRID标签").Filter = Filter

哪有问題吗

--  作者:有点蓝
--  发布时间:2020/10/30 8:43:00
--  
至少应该告诉别人,这个代码测试有什么问题,有什么错误提示?预期和结果差异在哪里?

把d3这个变量和相关的条件去掉

--  作者:qazlinle6
--  发布时间:2020/10/30 9:10:00
--  
统计筛选,我加了日,好像哪里有错误,代码用不了
--  作者:qazlinle6
--  发布时间:2020/10/30 9:22:00
--  

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

这个不可以用日吗

--  作者:有点蓝
--  发布时间:2020/10/30 9:23:00
--  
目录树展开截图看看
--  作者:qazlinle6
--  发布时间:2020/10/30 9:28:00
--  

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

--  作者:有点蓝
--  发布时间:2020/10/30 9:33:00
--  
    Select Case e.Node.Level
        Case 0
            d1 = New Date(Year,1,1) \'取得该年的第一天
            d2 = new Date(Year,12,31) \'取得该年的最后一天
            Filter ="登记时间 >= #" & d1 & "# And 登记时间 <= #" & d2 & "#"
        Case 1
            d1 = New Date(Year, Month, 1) \'取得该月的第一天
            d2 = new Date(Year, Month, Date.DaysInMonth(Year,Month)) \'取得该月的最后一天
            Filter ="登记时间 >= #" & d1 & "# And 登记时间 <= #" & d2 & "#"
        Case 2  
            d1 = New Date(Year, Month, Day)
            Filter ="登记时间 = #" & d1 & "#"
        Case 3
            d1 = New Date(Year, Month, Day)
            Filter ="登记时间 = #" & d1 & "# And 商品备注 = \'" & a1 & "\'"
……

--  作者:qazlinle6
--  发布时间:2020/10/30 9:59:00
--  
可以了  谢谢