以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  表的汇总并写入问题  (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=125996)

--  作者:skyerlin
--  发布时间:2018/10/11 17:08:00
--  表的汇总并写入问题
以下代码加在“收费明细表”的datacolchanged事件上,要实现当收费明细表有数据变化时,学年收费名单表根据学号和学年自动对收费明细表的各项收费进行求和汇总。

Dim dr As  Row=Tables("学年收费名单").Current
Dim sum1,sum2,sum3,sum4 As Integer
sum1 =  DataTables("收费明细").Compute("sum(实收学费)", "学号=\'" & dr("学号") & "\' And 学年=\'" & dr("学年") & "\'")
dr("实收学费") = sum1
sum2 =  DataTables("收费明细").Compute("sum(实收住宿费)", "学号=\'" & dr("学号") & "\'And 学年=\'" & dr("学年") & "\'")
dr("实收住宿费") = sum2
sum3 =  DataTables("收费明细").Compute("sum(实收书本费)", "学号=\'" & dr("学号") & "\'And 学年=\'" & dr("学年") & "\'")
dr("实收书本费") = sum3
sum4 =  DataTables("收费明细").Compute("sum(实收保险费)", "学号=\'" & dr("学号") & "\'And 学年=\'" & dr("学年") & "\'")
dr("实收保险费") = sum4

请问代码错在那,如何修改?

--  作者:有点甜
--  发布时间:2018/10/11 17:11:00
--  
Dim dr As DataRow = e.DataRow
Dim fdr As DataRow = DataTables("学年收费名单").find("学号=\'" & dr("学号") & "\' And 学年=\'" & dr("学年") & "\'")
If fdr IsNot Nothing Then
    Dim sum1,sum2,sum3,sum4 As Integer
    sum1 =  DataTables("收费明细").Compute("sum(实收学费)", "学号=\'" & dr("学号") & "\' And 学年=\'" & dr("学年") & "\'")
    fdr("实收学费") = sum1
    sum2 =  DataTables("收费明细").Compute("sum(实收住宿费)", "学号=\'" & dr("学号") & "\'And 学年=\'" & dr("学年") & "\'")
    fdr("实收住宿费") = sum2
    sum3 =  DataTables("收费明细").Compute("sum(实收书本费)", "学号=\'" & dr("学号") & "\'And 学年=\'" & dr("学年") & "\'")
    fdr("实收书本费") = sum3
    sum4 =  DataTables("收费明细").Compute("sum(实收保险费)", "学号=\'" & dr("学号") & "\'And 学年=\'" & dr("学年") & "\'")
    fdr("实收保险费") = sum4
End If

--  作者:skyerlin
--  发布时间:2018/10/11 17:35:00
--  
谢谢。