VB 查找问题

来源:百度知道 编辑:UC知道 时间:2024/05/27 02:32:25
一个MSFlexGrid表与ACCESS数据库的第一个字段比较程序,如下:
For jt = 1 To MSFlexGrid1.Rows - 2
For ffind = 0 To Data1.Recordset.RecordCount - 1
Data1.Recordset.Move ffind
If MSFlexGrid1.TextMatrix(jt, 0) = Data1.Recordset![编号] Then
Data1.Recordset.Edit
Data1.Recordset![结题] = 1
Data1.Recordset.Update

End If

Next
Data1.Recordset.MoveFirst
Next

数据库有30要记录,为什么执行到第9条就出错了。提示“无当前记录”
我已经用MSGBOX Recordsetcount查过了,是30条记录。

看看这个Data1.Recordset.RecordCount返回值就知道有几条记录了,
另外,用这个方法试试看:

For jt = 1 To MSFlexGrid1.Rows - 2
With Data1
If .Recordset.RecordCount > 0 Then
Do While Not .Recordset.EOF()
If MSFlexGrid1.TextMatrix(jt, 0) = .Recordset![编号] Then
.Recordset.Edit
.Recordset![结题] = 1
.Recordset.Update
End If
If Not .Recordset.EOF() Then .Recordset.MoveNext
Loop
End If
End With
Data1.Recordset.MoveFirst
Next

数据库有30条,可能你查出来的记录集只是其中一部分,Recordset并没有30条,见车你的sql语句。