表名:档案表
卡号 |
建档余额 |
当前余额 |
状态 |
111 |
100.0 |
|
可用 |
222 |
200.0 |
|
可用 |
333 |
300.0 |
|
停用 |
表名:收款表
卡 号 |
收款时间 |
收款金额 |
111 |
2013-05-05 |
100.0 |
222 |
2013-05-06 |
200.0 |
111 |
2013-05-07 |
300.0 |
222 |
2013-05-08 |
400.0 |
表名:扣款表
卡 号 |
扣款日期 |
扣款金额 |
111 |
2013-06-01 |
50 |
222 |
2013-06-02 |
50 |
111 |
2013-06-03 |
50 |
222 |
2013-06-04 |
50 |
如上所示:有三张表。其中“档案表”中的【当前余额】应该为【建档余额】+【收款金额】再-【扣款金额】。我想做到的就是不论什么时间收款、扣款,相应卡号的当前余额都应该及时自动更新 并自动填充到“档案表”的【当前余额】中。
我能力有限,只能做到目前这种地步:
在“档案表”中的DataColChanged 事件中写代码,
For Each r As DataRow In DataTables("档案表").DataRows
If e.DataCol.Name="卡号" And r("状态")="正常" Then
For Each dr As DataRow In DataTables("收款表").DataRows
For Each dr1 As DataRow In DataTables("扣款表").DataRows
If r("卡号")=e.NewValue Then
r("当前余额")=r("建档余额")+dr("收款金额")-dr1("扣款金额")
End If
Next
Next
End If
Next
而且就是写出来了,也有错,这段代码在调用“收款金额”“扣款金额”的时候,只调用相同卡号的最后一条记录。求狐爸帮忙。谢谢