没有区别,您将始终使用.Update提交当前光标所指向的更改.AddNew在ADODB记录集的末尾分配新行
ADODB记录集是一个基于游标的数据集,当您将行加载到记录集中时,游标会自动在第一行,因此您在记录集的列上执行任何操作,它将在记录集游标当前指向的任何位置进行修改.例如:
dim rs as new adodb.recordset
rs.Open _
" select emp_id, lastname, firstname, middlename, age from emp " & _
" where location = 'LIVERPOOL'" & _
" ORDER BY emp_id", connectionVariableHere
Run Code Online (Sandbox Code Playgroud)
这将更新第一行:
rs!middlename = "Ono"
rs.Update
Run Code Online (Sandbox Code Playgroud)
这将更新下一行:
rs.MoveNext
rs!middlename = "Eastman"
rs.Update
Run Code Online (Sandbox Code Playgroud)
添加记录(光标将移动到最后一条记录)
rs.AddNew
rs!lastname = "Ono"
rs!firstname = "Yoko"
rs!middlename = "Yasuda"
rs.Update
Run Code Online (Sandbox Code Playgroud)
执行上述步骤后,这将更新上次添加的记录:
rs!lastname = "Lennon"
rs.Update
Run Code Online (Sandbox Code Playgroud)
如果我没记错的话,MoveNext,MoveFirst等会在移动到新的光标位置之前隐式调用.Update,所以如果你在第一行......
rs.MoveFirst
Run Code Online (Sandbox Code Playgroud)
...然后你这样做:
rs!age = 70 ' lennon's age of 2010
rs.MoveNext
Run Code Online (Sandbox Code Playgroud)
......在转移到Paul McCartney之前,这将会调用.Update.无论如何,不要依赖它,只需要在行上提交更改时调用.Update