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

VB6错误:运行时错误3021。BOF或EOF为真或当前记录已被删除。请求的操作需要当前记录,vb6,Vb6,这是我的代码: Dim c As Integer Private Sub Command4_Click() c = InputBox("ENTER STAFF ID") Form6.Adodc1.Refresh Form6.Adodc1.Recordset.MoveFirst `ERROR While Form6.Adodc1.Recordset.EOF <> True If Form6.Adodc1.Recordset.Fields(0) = Val(c) Then Text1.T

这是我的代码:

Dim c As Integer
Private Sub Command4_Click()
c = InputBox("ENTER STAFF ID")
Form6.Adodc1.Refresh
Form6.Adodc1.Recordset.MoveFirst `ERROR
While Form6.Adodc1.Recordset.EOF <> True
If Form6.Adodc1.Recordset.Fields(0) = Val(c) Then
Text1.Text = Form6.Adodc1.Recordset.Fields(0)
Text1.Enabled = False
Text2.Text = Form6.Adodc1.Recordset.Fields(1)
Text3.Text = Form6.Adodc1.Recordset.Fields(2)
Text4.Text = Form6.Adodc1.Recordset.Fields(5)
DTPicker2.Enabled = False
DTPicker1.Enabled = False
MsgBox "AFTER EDITING CLICK ON UPDATE"
Command2.Enabled = True
Exit Sub
Else
Form6.Adodc1.Recordset.MoveNext
End If
Wend
MsgBox "ENTER CORRECT STAFF ID"
End Sub

我已经有了其他的问题,我还没有在解决的问题中得到答案,因为这是在VB6中。我还提到了当我点击debug时,我会在哪一个地方出现错误。TIA

如果返回任何新记录集,则新记录集将已位于第一条记录上。你不需要

Form6.Adodc1.Recordset.MoveFirst `ERROR

事实上,这可能是因为没有返回任何记录,因此没有要移动到的第一个记录。如果您在该行检查BOF,您会发现BOF和EOF都为真。

BOF或EOF为真,如果
Adodc1的源。记录集
没有记录。如果您提供了调试该问题所需的所有信息,那么会更容易提供帮助。@C-PoundGuru:嗨,我是Stackoverflow的新手。我可以知道你想要什么样的细节吗?所以我可以向前一步和大家分享。好吧,你还没有显示你的记录源的来源。您是否进行过任何调试以确认是否获得了任何记录?
Form6.Adodc1.Recordset.MoveFirst `ERROR