VB6 ADODB记录集更新

gda*_*cid 2 vb6 ado

所以我是Visual Basic的新手,并继承了我现在需要处理的VB6代码.现在,我正在尝试使用ADODB.RecordSet更新SQL数据库.我有一个Select SQL语句,它将数据库中的正确数据提取到ADODB.RecordSet中,但是我在更新所有行时遇到了问题.我想要做的是为每行更新相同的列具有相同的值.现在,它更新了一些记录,但是我弹出一个错误.我得到的错误是:

运行时错误3021:BOF或EOF为True或当前记录已被删除.请求的操作需要当前记录.

当我点击调试时,它需要我rsUpdate.fields(TargetFieldName)= value

项目本身庞大而且太大而无法发布,但我现在正在处理的部分代码是:

If rsUpdate.State = adStateOpen Then
  If rsUpdate.EOF Then
   rsUpdate.Close
   Exit Function
  End If
rsUpdate.MoveFirst
Dim i as Integer
For i = 0 To rsUpdate.recordCount
 rsUpdate.fields(TargetFieldName) = value
 rsUpdate.MoveNext
Next i
On Error GoTo canupdaterecord
rsUpdate.Update
On Error GoTo 0
rsUpdate.Close
End If
Exit function
Run Code Online (Sandbox Code Playgroud)

所以你们给我的任何帮助都将不胜感激.就像我说的那样,我对VB很陌生,而且在我去的时候,我有点学习这一切.

And*_*ahl 6

我猜这个问题是一个错误的错误:

For i = 0 To rsUpdate.recordCount
   rsUpdate.fields(TargetFieldName) = value       
   rsUpdate.MoveNext
Next i
Run Code Online (Sandbox Code Playgroud)

如果recordcount返回5,则此循环将进行6次运行:0,1,2,3,4,5.

我写的是这样的:

while not rsUpdate.EOF do
   rsUpdate.fields(TargetFieldName) = value       
   rsUpdate.MoveNext
wend
Run Code Online (Sandbox Code Playgroud)