注册 登录
编程论坛 VB6论坛

实时错误“3021”BOF或EOF中有一个是“真”,或者当前的记录已被删除

lijun337 发布于 2014-12-12 16:41, 388 次点击
请看如下代码:

Option Explicit
   
Private conn As ADODB.Connection

Private Rst As New ADODB.Recordset
Private Sub Combo1_Click()
If Combo1.Text = "支出" Then
         Rst.Fields("b") = Combo1.Text
         Combo2.Clear
         Combo2.AddItem "日常支出"
         Combo2.AddItem "其他支出"

         Combo2.Text = Combo2.List(0)
End If

If Combo1.Text = "收入" Then
Rst.Fields("a") = Combo1.Text
Combo2.Clear
Combo2.AddItem "上班收入"
Combo2.AddItem "其他收入"

Combo2.Text = Combo2.List(0)

执行后,出现如下对话框:

实时错误“3021”

BOF或EOF中有一个是“真”,或者当前的记录已被删除。。。。。。。
2 回复
#2
xzlxzlxzl2014-12-12 16:46
你给出的代码和错误提示没毛关系。
#3
lijun3372014-12-12 17:07
可能是我的db1.mdb里面的db01里面的没有数据

我试着在form_load()里面添加如下代码:

Private Sub Form_Load()


    Dim ConString As String
    ConString = "Provider=Microsoft.Jet.OleDb.4.0;Persist Security Info = False;" _
               & "Data Source =" & App.Path & "\db1.mdb;Jet OleDb:"

   
    Set conn = CreateObject("ADODB.Connection")
    With conn
        .ConnectionString = ConString
        .Open
    End With
   
    Label1.Caption = Now
Text3.Text = Year(Date)
Text4.Text = Month(Date)
Text5.Text = Day(Date)


    Rst.CursorLocation = adUseClient
    Rst.Open "Select * From db01", conn, adOpenKeyset, adLockPessimistic, adCmdText
   
    If Rst.RecordCount > 0 Then
   
    Text1.Text = Rst.Fields("jr").Value & ""
    Text2.Text = Rst.Fields("bz").Value & ""
Rst.Fields("n") = Text3.Text
Rst.Fields("y") = Text4.Text
Rst.Fields("r") = Text5.Text


    Else
   
   
End If
Text4.ForeColor = RGB(0, 0, 150)
Text5.ForeColor = RGB(0, 0, 150)
End Sub
1