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...
本提问关闭
展开
 我来答
149005501
2012-09-28 · TA获得超过8.6万个赞
知道顶级答主
回答量:7.9万
采纳率:90%
帮助的人:1.4亿
展开全部
改成:
Do Until rs.EOF<>TRUE
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
SUKIYOU
2012-09-28 · TA获得超过995个赞
知道小有建树答主
回答量:1505
采纳率:0%
帮助的人:1260万
展开全部
Do Until rs.EOF之前加一句

rs.next()
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式