学生基本上调得差不多了,我发现我遇到了了很多错误,在这里做一下总结。
1.3021
这个错误几乎是我遇到最多的错误,只要一没有数据,就会蹦出来这个错误。誒,看到了吗?我这句话点出了这个错误的症结所在,就是没有数据,数据库查询不到数据,所谓,”万变不离其宗“,只要知道了这一点,我们就能很快的解决这个错误。
在学生里,这个错误经常在那里出现呢?
- 在点了修改学籍信息窗体,但是数据库里还没有学生信息时,这个错误就出现了,或者你将所有的记录删除了,
- 那,我们该如何应对呢?
Dim mrc As ADODB.Recordset
Dim txtsql As String
Dim msgtext As String
txtsql = "select * from class_Info "
Set mrc = ExecuteSQL(txtsql, msgtext)
If mrc.EOF And mrc.BOF Then
MsgBox "没有数据,请添加!", 0 + 48, 提示
frmaddclassinfo.Show
Exit Sub
Else
frmmodifyclassinfo.Show
End If
我几乎用这段代码吃遍了天下,只要我出现3021,我就会首先想到用这段代码来解决。
其二:是在删除数据的时候,删除两条以上的记录时不会出现错误,但在删除最后一条记录时便会发生错误。
法1、利用错误处理语句,(前提:虽然点击删除按钮后出错,但是重新打开时记录已经被删除了)
On Error GoTo 1
1:
If Err = 3021 Then
MsgBox "已经没有数据了,请添加数据", vbOKOnly + vbExclamation, "提示"
Unload Me
frmaddclassinfo.Show
End If
Else
mrc.Bookmark = mybookmark
Call viewdata
End If
法2、编写判断语句判断是否为最后一条记录
Private Sub deleteCommand_Click()
myBookmark = mrc.Bookmark
str2$ = MsgBox("是否删除当前记录?", vbOKCancel, "删除当前记录")If str2$ = vbOK Then mrc.MoveNext
’判断是否为最后一条记录If mrc.EOF Then
mrc.MovePrevious
If mrc.BOF Then '若是,则删除,避免执行语句call viewdata
mrc.MoveNext
mrc.Delete
Msgbox "记录已经为空," vbokonly + vbexclamation, "警告"
unload me
else
mrc.movefirst
mybookmark=mrc.bookmark
mrc.movelast
mrc.delete
mrc.bookmark=mybookmark
mrc.close
2.91
这个错误我早有耳闻了,果然,我还是遇见了,这个错误大多数与自己是否细心有关,比如SQL语句引号不完整,SQL语句有误,多了空格,少了空格,都会出现这个错误。
我这里出错,就是因为我写的SQL语句不完整,正确的应该是
txtSQL = "select * from student_Info where student_ID = '" & comboSID.Text & "'"
3.3265
这个错误倒是不常见,
不过,我在这里出错,完全是自己不细心,grade年级的信息怎么能在添加成绩信息的窗体中出现呢。删掉就可以了。
4.越界问题
当你输入的数据大于或超过数据库所要求的范围时,比如说,字符串限制为10的情况下打入了11个数字,就会出现这个错误。