学生信息管理系统——错误集锦(二)
一年又一年,一天又一天,时间真是如白驹过隙,忽然而已,不知不觉中又到了周末,个人感觉这只能说是太充实了吧!虽然这一周并没有调试多少,但是遇到的问题不少,今天就来归纳总结一下:
错误一:
问题原因:定义的变量代码敲错。
错误二:
这个问题也是老生常谈的了,解决方法如下:
一、进行错误处理
错误处理的本质就是当遇到错误时,可以跳过该错误,直接进行下一步,以便于程序顺利进行。那么,我们可以根据这个原理在代码中添加错误处理:
Private Sub Form_Load()
Dim txtSQL As String
Dim msgText As String
txtSQL = "SELECT * FROM student_Info "
Set mrc = ExecuteSQL(txtSQL, msgText) '得到临时表
On Error GoTo 1:
mrc.MoveFirst
Call viewData
myBookmark = mrc.Bookmark '对当前记录进行标记
mcclean = True '可编辑状态
1:
If Err = 3021 Then
MsgBox "无记录!"
End If
end sub
二、根据上述原理,那么我们也可以将代码稍作修改,不做错误处理,而是把程序运行的错误考虑在内,当遇到这种情况时,用一个if 语句让程序直接进行下一步即可。
Private Sub Form_Load()
Dim txtSQL As String
Dim msgText As String
txtSQL = "SELECT * FROM student_Info "
Set mrc = ExecuteSQL(txtSQL, msgText) '得到临时表
'考虑无记录情况
If mrc.EOF And mrc.BOF Then '一条IF语句充当错误处理,当无记录时,mrc.eof=true
'和mrc.bof=true两个条件同时满足!
MsgBox "无记录!"
frmModifysinfo.Show ’直接进行下一步,显示窗体
Else
mrc.MoveFirst
Call viewData
myBookmark = mrc.Bookmark '对当前记录进行标记
mcclean = True '可编辑状态
End If
需要注意的是,因为错误处理默认直接进行下一行,而下一步就是显示本窗体,用If语句可以直接可以将显示本窗体这一行代码改成显示添加记录窗体。
经过上述方法处理后,程序一旦遇到类似情况,便会提示“无记录”,继续运行下一步。
错误三:
错误原因:代码敲错。
修改:把”Files“改为”Fields“。
错误四:
Private Sub cmdInquire_Click()
Dim txtSQL As String
Dim MsgText As String
Dim dd(4) As Boolean
Dim mrc As ADODB.Recordset
'组合SQL语句
txtSQL = "select*from student_Info where"
'判断是否选择学号查询方式
If Check1(0).Value Then
If Trim(txtSID.Text) Then
sMeg = "学号不能为空"
MsgBox sMeg, vbOKOnly + vbExclamation, "警告"
txtSID.SetFocus
Exit Sub
显示sMeg未定义
修改方法:
(1)可将sMeg定义为字符串String
(2)直接将:
sMeg = "学号不能为空"
MsgBox sMeg, vbOKOnly + vbExclamation, "警告"
改为:
MsgBox "学号不能为空", vbOKOnly + vbExclamation, "警告"
错误五:
错误原因:代码敲错
修改:应为“IsNumeric”。
反馈,总结,成长,今天就到这里了,还没有结束哦,接下来继续加油,敬请期待吧!