实时错误’-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
多步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
txtSQL = "select * from class_info where class_No='" & Trim(txtClassno.Text) & "'"
等这些sql语句*号前后要有空格。ExecuteSQL函数没看到,注意连接窜中的分号等。