01 没设置好rst.NoMatch条件,“DoCmd.GoToRecord”要么不执行,要么总执行,请各位帮忙!
Set dbf1 = mydb.CreateQueryDef("qs1", sqltxt1)
Set rst = mydb.OpenRecordset("qs1", dbOpenDynaset) '定义biao表为rst
rzjy_tem1 = 0 '定义初始数额
rst.FindFirst RZBH = "& i &"
While rst.NoMatch
Me.RZJY = rzjy_tem1 + Me.RZZJ - Me.CHBJ '上一个融资结余+本次融资增加-偿还本金=本次融资结余
rzjy_tem1 = Me.RZJY '将上一次融资结余赋值给变量,为计算下一次融资结余作准备
rst.FindNext RZBH = "& i &" '记录下移一次,为判断是否到表尾提供依据。
If rst.NoMatch Then
DoCmd.GoToRecord , , acNext '将下一个记录作为当前记录,以便使计算结果赋值成功。
End If
Wend
搞明白了,是rst.FindFirst RZBH = "& i &"写错了,应为rst.FindFirst “RZBH = "& i &"”
Set dbf1 = mydb.CreateQueryDef("qs1", sqltxt1)
Set rst = mydb.OpenRecordset("qs1", dbOpenDynaset) '定义biao表为rst
rzjy_tem1 = 0 '定义初始数额
rst.FindFirst "RZBH = " & i & ""
While rst.NoMatch <> True
Me.RZJY = rzjy_tem1 + Me.RZZJ - Me.CHBJ '上一个融资结余+本次融资增加-偿还本金=本次融资结余
rzjy_tem1 = Me.RZJY '将上一次融资结余赋值给变量,为计算下一次融资结余作准备
rst.FindNext "RZBH = " & i & "" '记录下移一次,为判断是否到表尾提供依据。
If rst.NoMatch <> True Then
DoCmd.GoToRecord , , acNext '将下一个记录作为当前记录,以便使计算结果赋值成功。
End If
Wend
DoCmd.DeleteObject acQuery, "qs1 "
rst.Close
总记录:1篇 页次:1/1 9 1 :