实时错误’-2147217887(80040e21)’:
多步OLE DB 操作产生错误。如果可能,请检查每个 OLE DB 状态值。没有工作被完成。
这个错误是因为没连接数据库吗?那位可以帮忙一下,谢谢!!!
代码如下:
'Option Explicit
Dim mrc As ADODB.Recordset
Dim myBook As Variant
Dim mcclean As BooleanPrivate Sub cancelCommand_Click()
    If Not mcclean Then
        Frame2.Enabled = True
        firstCommand.Enabled = True
        previousCommand.Enabled = True
        nextCommand.Enabled = True
        lastCommand.Enabled = True
        
        txtClassno.Enabled = False
        comboGrade.Enabled = False
        txtDirector.Enabled = False
        txtClassroom.Enabled = False
        
        mrc.Book = myBook
        Call viewData
    Else
        MsgBox "为什么都没有修改,有什么好取肖的!", vbOKOnly + vbExclamation, "警告"
    End If
    
    mcclean = True
End SubPrivate Sub deleteCommand_Click()
    myBook = mrc.Book
    str2$ = MsgBox("是否删除当前记录?", vbOKCancel, "删除当前记录")
    If str2$ = vbOK Then
            mrc.MoveNext
            If mrc.EOF Then
                mrc.MoveFirst
                myBook = mrc.Book
                mrc.MoveLast
                mrc.Delete
                mrc.Book = myBook
                Call viewData
            Else
                myBook = mrc.Book
                mrc.MovePrevious
                mrc.Delete         '删除记录后,游标的位置不能确定??
                mrc.Book = myBook
                Call viewData
            End If
        Else
            mrc.Book = myBook
            Call viewData
        End If
End SubPrivate Sub editCommand_Click()
    mcclean = False
    Frame1.Enabled = False
    firstCommand.Enabled = False
    previousCommand.Enabled = False
    nextCommand.Enabled = False
    lastCommand.Enabled = False
    
    txtClassno.Enabled = True
    comboGrade.Enabled = True
    txtDirector.Enabled = True
    txtClassroom.Enabled = True
    
    comboGrade.AddItem "初中一年级"
    comboGrade.AddItem "初中二年级"
    comboGrade.AddItem "初中三年级"
    comboGrade.AddItem "高中一年级"
    comboGrade.AddItem "高中二年级"
    comboGrade.AddItem "高中三年级"
    
    myBook = mrc.Book
End SubPrivate Sub firstCommand_Click()
    mrc.MoveFirst
    Call viewData
End SubPrivate Sub Form_Load()
    Dim txtSQL As String
    Dim MsgText As String
    
    txtClassno.Enabled = False
    comboGrade.Enabled = False
    txtDirector.Enabled = False
    txtClassroom.Enabled = False
    
    txtSQL = "select*from class_info "
    Set mrc = ExecuteSQL(txtSQL, MsgText)      '为什么括号中没有大写
    mrc.MoveFirst
    Call viewData
    myBook = mrc.Book
    mcclean = True
    
End SubPublic Sub viewData()
    txtClassno.Text = mrc.Fields(0)
    comboGrade.Text = mrc.Fields(1)
    txtDirector.Text = mrc.Fields(2)
    txtClassroom.Text = mrc.Fields(3)
End SubPrivate Sub lastCommand_Click()
    mrc.MoveLast
    If mrc.EOF Then
        mrc.MoveFirst
    End If
    Call viewData
End SubPrivate Sub nextCommand_Click()
    mrc.MoveNext
    If mrc.EOF Then
        mrc.MoveFirst
    End If
        Call viewData
End SubPrivate Sub previousCommand_Click()
    mrc.MovePrevious
    If mrc.BOF Then
        mrc.MoveLast
    End If
    Call viewData
End SubPrivate Sub updateCommand_Click()
    Dim txtSQL As String
    Dim MsgText As String
    Dim mrcc As ADODB.Recordset
    
    If mcclean Then
        MsgBox "请先修改班级信息", vbOKOnly + vbExclamation, "警告"
        Exit Sub
    End If
    
    If Not Testtxt(txtClassno.Text) Then
        MsgBox "请输入班号!", vbOKOnly + vbExclamation, "警告"
        txtClassno.SetFocus
        Exit Sub
    End If
    
    If Not IsNumeric(Trim(txtClassno.Text)) Then
        MsgBox "请输入数字!", vbOKOnly + vbExclamation, "警告"
        Exit Sub
        txtClassno.SetFocus
    End If
    
    If Not Testtxt(comboGrade.Text) Then
        MsgBox "请选择年级!", vbOKOnly + vbExclamation, "警告"
        comboGrade.SetFocus
        Exit Sub
    End If
    
    If Not Testtxt(txtDirector.Text) Then
        MsgBox "请输入班主任姓名!", vbOKOnly + vbExclamation, "警告"
        txtDirector.SetFocus
        Exit Sub
    End If
    
    If Not Testtxt(txtClassroom.Text) Then
        MsgBox "请输入教室号码!", vbOKOnly + vbExclamation, "警告"
        txtClassroom.SetFocus
        Exit Sub
    End If
    
    mrc.Delete
    txtSQL = "select*from class_info where class_No='" & Trim(txtClassno.Text) & "'"
    Set mrcc = ExecuteSQL(txtSQL, MsgText)
    If mrcc.EOF = False Then
        MsgBox "班号重复,请重新输入!", vbOKOnly + vbExclamation, "警告"
        mrcc.Close
        txtClassno.SetFocus
    Else
        mrcc.Close  '关闭连接
        
        mrc.AddNew
        mrc.Fields(0) = Trim(txtClassno.Text)
        mrc.Fields(1) = Trim(comboGrade.Text)
        mrc.Fields(2) = Trim(txtDirector.Text)
        mrc.Fields(3) = Trim(txtClassroom.Text)
        mrc.Update
        MsgBox "修改班级信息成功!", vbOKOnly + vbExclamation, "警告"
        
        mrc.Book = myBook
        Call viewData
        Frame1.Enabled = True
        firstCommand.Enabled = True
        previousCommand.Enabled = True
        nextCommand.Enabled = True
        lastCommand.Enabled = True
        
        txtClassno.Enabled = False
        comboGrade.Enabled = False
        txtDirector.Enabled = False
        txtClassroom.Enabled = False
        
        mcclean = True
    End If
End Sub