学生信息管理系统总算是暂时敲完了,错误也用了将近三天的时间才弄完,尽管这几天学英语占据了我大部分时间吧,这里就和大家分享我的敲代码是犯的错误和改正办法吧
修改学籍信息时的时候出现
1.实时错误‘3021’:BOF或EOF中有一个是“真”,或者当前的记录已被删除,所需的操作要求一个当前的记录。
2.修改学籍信息时就会出现: 实时错误‘-2147217887(8004e21)’:多步OLE DB 操作产生错误。如果可能,请检查每个OLE DB状态值。没有工作被完成。点击调试按钮,mrc.Fields(5) = Trim(txtTel.Text)。并且在文本框输入信息大于10个字符的时候也会出现该错误
3实时错误‘3251’:当前记录集不支持书签。这可能是提供程序或选定的游标类型的限定。
myBookmark = mrc.Bookmark
还有错误,当设置年级课程,选择年级时弹出
4.实时错误‘91’:对象变量或With块变量未设置。调试会指到if Not mrc.EOF Then
下面是我对上面几个问题的解决方法
1.实时错误‘91’:对象变量或With块变量未设置
原因:没有查询出数据库结果,查询语句出问题了。
Private Sub comboGrade_Click()
Dim mrc As ADODB.Recordset
Dim txtSQL As String
Dim MsgText As String
Dim i As Integer
listSelectcourse.Clear
txtSQL = "select * from gradecourse_Info where grade='" & comboGrade.Text & "'"
Set mrc = ExecuteSQL(txtSQL, MsgText) (错误原因,这条语句缺少)
If Not mrc.EOF Then '遍历记录方法1 (调试)
For i = 1 To mrc.RecordCount
listSelectcourse.AddItem mrc.Fields(1)
mrc.MoveNext
Next i
End If
mrc.Close
End Sub
txtSQL = "select * from result_Info where " '注意where与"之间的空格, '如果没有空格,也会出现上述错误
但是txtSQL = "select * from student_Info",有没有空格好像没影响。
Do While Not mrc.EOF(调试)
2. 然后我将电话号码从11位数字改为7位,就可以了,或者将textbox中的maxlength属性设置一下,改成多大就只能输入多少个字符,
还有一中办法就是改变数据库中表的char属性,具体办法可以详见改地址http://blog.csdn.net/guolimin1992/article/details/9749501
3.实时错误‘3021’:BOF或EOF中有一个是“真”,或者当前的记录已被删除,所需的操作要求一个当前的记录。
原因:数据库里没有数据,EOF和BOF重合了,添加几条数据就可以了。
4 .实时错误‘3251’:当前记录集不支持书签。这可能是提供程序或选定的游标类型的限定。
解决:在类模块中将这条蓝色语句替换绿色语句。
Public Function ConnectString() As String
ConnectString = "FileDSN=student.dsn;UID=sa;PWD=123456"
'链接字符串ConnectString为 "FileDSN=student.dsn;UID=sa;PWD=123456"
'ConnectString = "provider=SQLOLEDB;server=(local);database=student;integrated security =SSPI"
End Function