以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- [求助]为什么有时统计不到31号 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=122084) |
-- 作者:js4222 -- 发布时间:2018/7/18 17:06:00 -- [求助]为什么有时统计不到31号 代码如下 If e.DataCol.Name = "姓名" Then If e.NewValue Is Nothing Then e.DataRow("抽成") = Nothing e.DataRow("借支") = Nothing Else Dim Filter As String = "[姓名] = \'" & e.NewValue & "\'" Dim m As Integer = e.DataRow("日期").Month Dim y As Integer = e.DataRow("日期").Year Dim dt1 As New Date(y, m, 1) Dim dt2 As New Date(y, m, Date.DaysInMonth(y, m)) Filter = filter & " and 日期 >= #" & dt1 & "# And 日期 <= #" & dt2 & "#" e.DataRow("抽成") = DataTables("抽成").Compute("Sum(抽成)",Filter) e.DataRow("借支") = DataTables("借支表").sqlCompute("Sum(金额)",Filter) End If End If 表测试的时候,这个代码没有问题,但是5月份的时候客户反映借支金额只能统计30号以内的,31号的完全统计不到,以我的能力,完全查不出问题出在哪里 各位大佬帮忙看看
|
-- 作者:有点甜 -- 发布时间:2018/7/18 17:56:00 -- 代码改成
Dim dt1 As New Date(y, m, 1)
Dim dt2 As Date = dt1.AddMonths(1)
Filter = filter & " and 日期 >= #" & dt1 & "# And 日期 < #" & dt2 & "#"
|
-- 作者:js4222 -- 发布时间:2018/7/18 19:57:00 -- 以下是引用有点甜在2018/7/18 17:56:00的发言:
代码改成
Dim dt1 As New Date(y, m, 1)
Dim dt2 As Date = dt1.AddMonths(1)
Filter = filter & " and 日期 >= #" & dt1 & "# And 日期 < #" & dt2 & "#" 这个的话是统计到下个月1号吧,那是不是下个月1号也会被统计下去? 有另外一个工资计算表,计算工资的时候,选择姓名,日期,自动统计出该日期的月份工资。 如果是下个月1号也统计下去,那就又有新的问题出现了
[此贴子已经被作者于2018/7/18 20:00:21编辑过]
|
-- 作者:js4222 -- 发布时间:2018/7/18 20:32:00 -- 有没有跟我碰到同样情况的,支招一下,最后是如何解决的 |
-- 作者:有点甜 -- 发布时间:2018/7/18 20:48:00 -- 以下是引用js4222在2018/7/18 20:32:00的发言:
有没有跟我碰到同样情况的,支招一下,最后是如何解决的
不会统计你1号的数据啊,改成2楼代码不可能有问题的。请认真理解逻辑。 |
-- 作者:js4222 -- 发布时间:2018/7/18 21:54:00 -- 以下是引用有点甜在2018/7/18 20:48:00的发言:
不会统计你1号的数据啊,改成2楼代码不可能有问题的。请认真理解逻辑。 额,看错了。我的是<= 你的是< 没注意看 |