我从数据库查出了一条我要的数据,然后我就点删除进行删除操作,因为数据集里只有这么一条数据,就提示错误“运行时错误’3021‘:BOF或EOF中有一个是“真”,或者是当前的记录已被删除,所需的操作要求一个当前的记录” 程序代码如下: Private Sub CmdSelect_Click() '查询数据库,并让text显示第一条的值 Call OpenConn sql = "select * from 日报数据 where 时间 = '" & Trim(DTPicker1.Value) & "'" rs.CursorLocation = adUseClient rs.Open sql, cn, adOpenKeyset, adLockPessimistic Set DataGrid1.DataSource = rs '赋值给DAtagrid DataGrid1.Refresh If Not rs.EOF Then <-----这块出错? Text1(0).Text = rs.Fields(0).Value Text1(1).Text = rs.Fields(1).Value Text1(2).Text = rs.Fields(2).Value Text1(3).Text = rs.Fields(3).Value end if
Private Sub CmdDel_Click() '删除 On Error Resume Next Dim answer As String answer = MsgBox("确定要删除吗?", vbYesNo, "") If answer = vbYes Then rs.Delete DataGrid1.Refresh MsgBox "成功删除!", vbOKOnly + vbExclamation, "" End If End Sub
'****************** '在此处增加的代码 if rs.RecordCount>0 then rs.MoveFirst else '记录是空的,下面的就不要再执行了. Exit sub end if
'******************* If Not rs.EOF Then <-----这块出错? Text1(0).Text = rs.Fields(0).Value Text1(1).Text = rs.Fields(1).Value Text1(2).Text = rs.Fields(2).Value Text1(3).Text = rs.Fields(3).Value end if
DataGrid1.Refresh if rs.recordcount <> 0 and rs.recordcount <> -1 then If Not rs.EOF Then <-----这块出错? Text1(0).Text = rs.Fields(0).Value Text1(1).Text = rs.Fields(1).Value Text1(2).Text = rs.Fields(2).Value Text1(3).Text = rs.Fields(3).Value end if else msgbox "库中已无数据,请与管理员联系!" end if
自己解决了,谢谢各位 Private Sub CmdDel_Click() '删除 On Error Resume Next
Dim answer As String answer = MsgBox("确定要删除吗?", vbYesNo, "") If answer = vbYes Then MsgBox "成功删除!", vbOKOnly + vbExclamation, "" DataGrid1.AllowDelete = True rs.Delete DataGrid1.Refresh If rs.RecordCount = 0 Then For j = 0 To 20 Text1(j).Text = "" Text1(j).Locked = True Text1(j).BackColor = &H8000000F Next j End If DataGrid1.AllowDelete = False CmdDel.Enabled = False Else Exit Sub CmdDel.Enabled = False End If 'End If End Sub