Access交流中心

北京 | 上海 | 天津 | 重庆 | 广州 | 深圳 | 珠海 | 汕头 | 佛山 | 中山 | 东莞 | 南京 | 苏州 | 无锡 | 常州 | 南通 | 扬州 | 徐州 | 杭州 | 温州 | 宁波 | 台州 | 福州 | 厦门 | 泉州 | 龙岩 | 合肥 | 芜湖 | 成都 | 遂宁 | 长沙 | 株洲 | 湘潭 | 武汉 | 南昌 | 济南 | 青岛 | 烟台 | 潍坊 | 淄博 | 济宁 | 太原 | 郑州 | 石家庄 | 保定 | 唐山 | 西安 | 大连 | 沈阳 | 长春 | 昆明 | 兰州 | 哈尔滨 | 佳木斯 | 南宁 | 桂林 | 海口 | 贵阳 | 西宁 | 乌鲁木齐 | 包头 |

[5分]怎样做到按顺序、按金额来填充实际还款金额?

kuiblue  发表于:2018-08-10 15:37:00  
复制

各位老师好,问题如下,详见附件,谢谢!问题附件

 

 

 

Top
Tom and Jerry 发表于:2018-08-10 16:18:24
Sub test()
Dim rst As Object
Dim rst1 As Object
Dim a  As Double
Set rst = CurrentDb.OpenRecordset("SELECT tbl到账表.合同号, tbl到账表.客户名, Sum(tbl到账表.到账金额) AS 到账金额之合计 " _
& " FROM tbl到账表 GROUP BY tbl到账表.合同号, tbl到账表.客户名;")
Do Until rst.EOF
a = rst!到账金额之合计
Set rst1 = CurrentDb.OpenRecordset("select * from tbl还款表 where  合同号 = '" & rst!合同号 & "' AND  客户名 = '" & rst!客户名 & "'  order by 还款期数 ", dbOpenDynaset)
Do Until rst1.EOF
rst1.Edit
If a > rst1!应还款金额 Then
rst1!实际还款金额 = rst1!应还款金额
a = a - rst1!应还款金额
Else
rst1!实际还款金额 = a
a = 0
End If
rst1.Update
rst1.MoveNext
Loop
rst.MoveNext
Loop


rst.Close
rst1.Close
Set rst = Nothing
Set rst1 = Nothing
End Sub



测试数据一样 

因为考虑到账金额可能同一合同号有多笔 所以这里是汇总

"SELECT tbl到账表.合同号, tbl到账表.客户名, Sum(tbl到账表.到账金额) AS 到账金额之合计 " _
& " FROM tbl到账表 GROUP BY tbl到账表.合同号, tbl到账表.客户名;


自己视情况更改代码把 



KevinFan 发表于:2018-08-10 16:46:29
版主的思路很好,学习了。

kuiblue 发表于:2018-08-10 17:06:18
谢谢Tom and Jerry 老师!解决问题!

总记录:3篇  页次:1/1 9 1 :