学生信息管理系统今天是第一次验收,虽然前面自己敲的时候遇到很多问题,也解决了许多,还看了别人的系统验收,自己也当了一次用户,把该改的细节改了,会出的错误也解决了解决……但是,系统还是没有逃出师傅的魔爪呀!就一个字——崩!!
本来带着高兴,等着被表扬的心情通知师傅来验收我,但是师傅突然说要打包好,我一下就晕了,师傅给了我一下午的时间,让我好好的打包。打包,这个作品展的时候用到了,本以为挺简单的,就用vb自带的打包打了,但是出来的东西真的是不敢恭维呀……打包后的程序总是在没有出错的地方出错,由于晚上要验收,时间有点紧,所以就验收的没有打包的系统。
错误1、
看一眼,能看出有什么错吗?我反正开始的时候没有注意到。是窗体的名字没有改。师傅上来一眼就看见了,他说这是一个职业人士的基础。唉,看来我离着“职业”还有点距离呀!!
错误2、
这个问题在验收之前遇到过,是因为表中限制了每个字段的数据类型,也就是每个字段下的内容的输入位数是有限制的,不能无限输入。因为师傅就是想试试我设了限制没有,所以就输了很多,导致错误。我们只要把表中的数据类型改的够了就不会出错了。但是如果你不修改text的maxlenth属性,那么用户怎么知道你这个框是限制位数的,所以我们不光要治根,表面也要让人家明白。
解决方法:1、治根:先将数据库表中的数据类型改了。
2、治表:
1、将文本框的maxlength属性改为最大的位数限制
或者2、Private SubText1_KeyPress(KeyAscii As Integer)
If Len(Text1.Text) = 5 Then
If KeyAscii <> 8 Then 'ASCII码为8的是 退格删除键
KeyAscii = 0
End If
End If
End Sub
错误3、
这是因为在数据库设计时,把born_date字段的数据类型设置成datetime类型了,如图:
Datetime表示的日期范围从公元1753年1月1日00:00:00.000到9999年12月31日23:59:59.997 ,精确到3.33毫秒,它需要8个字节的存储空间。
date是SQL Server 2008新引进的数据类型。它表示一个日子,不包含时间部分,可以表示的日期范围从公元元年1月1日到9999年12月31日。
所以输入的日期在1753-1-1之前就会出现如上错误!
解决方法:
如果使用的是SQL server 2008,直接把数据类型由datetime改成date就行了。但是date是SQL server 2008新引进的数据类型。如果使用的是SQL server 2000,就得用代码实现了。
我用的是DateDiff()函数
If DateDiff("d",CDate(txtBorndate.Text), "1753-01-01") > 0 Then
MsgBox "出生日期请输入1753年以后的年份!", vbOKOnly + vbExclamation, "警告"
txtBorndate.SetFocus
Exit Sub
EndIf
错误4、
相信这个问题,大家都遇到了吧。就是在修改学籍、课程和成绩的时候,如果删除记录的话,删到最后一条都会弹出这个错误。这是因为当把最后一条记录删掉之后,游标不知道指向哪里,所以会报错。
解决方法:
Private Sub deleteCommand_Click()
OnError GoTo gpError
myBookmark = mrc.Bookmark
str2$ = MsgBox("是否删除当前记录?", vbOKCancel, "删除当前记录")
'将msgbox()的返回值给str2$
If str2$ = vbOK Then
'如果选择了删除
mrc.MoveNext
'将游标移动到下一个
If mrc.EOF Then
'如果是最后一个
'移动到第一个做标记
mrc.MoveFirst
myBookmark = mrc.Bookmark
mrc.MoveLast
'移动回到要删除的记录
mrc.Delete
mrc.Bookmark = myBookmark '将刚才存储的位置指定游标
Call viewData '调出数据
Else
myBookmark = mrc.Bookmark
mrc.MovePrevious
mrc.Delete '删除记录后,游标的位置不能确定
mrc.Bookmark = myBookmark '将标记的内容赋值给标签
Call viewData
End If
Else
'如果取消删除,则还原到刚才指定的记录
mrc.Bookmark = myBookmark
Call viewData
End If
Exit Sub
gpError:
MsgBox " 已经没有记录了,窗口即将关闭!", vbInformation, "提示"
txtCourseno = ""
txtCoursename= ""
comboCourset = ""
txtCoursedes = ""
Unload Me
End Sub
把代码中加上几句,就不会报错啦……
请继续关注学生信息管理系统之错误二!!!!