
vb 中的 实时错误'3021',BOF或EOF中有一个是"真",或者当前的记录以被删除,在"Do Until EOF"之后出现,怪 15
代码如下:DoUntilrs.EOFDoWhileINO=rs.Fields("商品编号").ValueDR1=rs.Fields("DR数量").ValueDR2=rs...
代码如下:
Do Until rs.EOF
Do While INO = rs.Fields("商品编号").Value
DR1 = rs.Fields("DR数量").Value
DR2 = rs.Fields("DR金额").Value
CR1 = rs.Fields("CR数量").Value
CR2 = rs.Fields("CR金额").Value
If AMT1 + DR1 - CR1 > 0 Then
A = (DR2 + AMT2) / (DR1 + AMT1)
CR2 = CR1 * A
AMT1 = AMT1 * 1 + DR1 - CR1
AMT2 = A * AMT1
rs.Fields("单价").Value = A
rs.Fields("CR金额").Value = CR2
rs.Fields("期末数量").Value = AMT1
rs.Fields("期末金额").Value = AMT2
rs.MoveNext
Else
MsgBox "存货" & INO & "先出库后入库,出现负库存的逻辑错误,请先修改", vbOKOnly, ""
GoTo 出错退出
End If
Loop
INO = rs.Fields("商品编号").Value
AMT1 = rs.Fields("期末数量").Value
AMT2 = rs.Fields("期末金额").Value
Loop
问题怪在出错发生在“Do Until rs.EOF”后面的第一句也就是“Do While INO = rs.Fields("商品编号").Value”上面,而且EOF也TRUE了,那么为什么不跳出循环而是报错呢?
谢谢大家的热心帮助,问题找到了,是循环逻辑错误,俺自己改了,楼下两条回答不正确o(∩_∩)o...
本提问关闭 展开
Do Until rs.EOF
Do While INO = rs.Fields("商品编号").Value
DR1 = rs.Fields("DR数量").Value
DR2 = rs.Fields("DR金额").Value
CR1 = rs.Fields("CR数量").Value
CR2 = rs.Fields("CR金额").Value
If AMT1 + DR1 - CR1 > 0 Then
A = (DR2 + AMT2) / (DR1 + AMT1)
CR2 = CR1 * A
AMT1 = AMT1 * 1 + DR1 - CR1
AMT2 = A * AMT1
rs.Fields("单价").Value = A
rs.Fields("CR金额").Value = CR2
rs.Fields("期末数量").Value = AMT1
rs.Fields("期末金额").Value = AMT2
rs.MoveNext
Else
MsgBox "存货" & INO & "先出库后入库,出现负库存的逻辑错误,请先修改", vbOKOnly, ""
GoTo 出错退出
End If
Loop
INO = rs.Fields("商品编号").Value
AMT1 = rs.Fields("期末数量").Value
AMT2 = rs.Fields("期末金额").Value
Loop
问题怪在出错发生在“Do Until rs.EOF”后面的第一句也就是“Do While INO = rs.Fields("商品编号").Value”上面,而且EOF也TRUE了,那么为什么不跳出循环而是报错呢?
谢谢大家的热心帮助,问题找到了,是循环逻辑错误,俺自己改了,楼下两条回答不正确o(∩_∩)o...
本提问关闭 展开
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询