Office中国论坛/Access中国论坛

标题: 关于.MoveNext的一点疑惑 [打印本页]

作者: olderdream2007@    时间: 2015-9-27 11:57
标题: 关于.MoveNext的一点疑惑


用下面的代码将表中的NULL值可以全部替换为0, 不过不理解为何要用LOOP?
个人理解,.MoveNext作用就是移动到下一条记录。(但是不加LOOP,只会对第一行起作用)


请高人指点下,非常感谢!



原帖链接:
http://www.office-cn.net/forum.p ... mp;page=1#pid732029

代码:
Sub test()
Dim res As ADODB.Recordset
Dim i   As Integer
Set res = New ADODB.Recordset
res.Open "Data", CurrentProject.Connection, adOpenDynamic, adLockOptimistic
res.MoveFirst
Do While Not res.EOF
With res
For i = 1 To 10
   If IsNull(.Fields(i & "月")) Then
      .Fields(i & "月") = 0
   End If
Next i
.MoveNext
End With
Loop
End Sub

作者: roych    时间: 2015-9-29 17:16
怎么说呢?
其实像这个,应该加上update的。
加上loop只代表光标移动到下一行。
假定没有loop,那么就是修改了第一行,并将光标移动到下一行,仅此而已。当然不会对全部记录进行修改了。


作者: olderdream2007@    时间: 2015-10-4 19:53
roych 发表于 2015-9-29 17:16
怎么说呢?
其实像这个,应该加上update的。
加上loop只代表光标移动到下一行。

谢谢版主指点,明白了。

我的理解是:MOVENEXT每次调用就会下移动一行,类似于放了个指针。LOOP就是负责调用它的。


非常感谢!

作者: weed543    时间: 2015-12-13 21:11
不错了学习学习
作者: wuwu20022    时间: 2019-2-12 16:22
不错学习




欢迎光临 Office中国论坛/Access中国论坛 (http://www.office-cn.net/) Powered by Discuz! X3.3