学生信息管理系统系列博客二

学生信息管理系统今天是第一次验收,虽然前面自己敲的时候遇到很多问题,也解决了许多,还看了别人的系统验收,自己也当了一次用户,把该改的细节改了,会出的错误也解决了解决……但是,系统还是没有逃出师傅的魔爪呀!就一个字——崩!!

本来带着高兴,等着被表扬的心情通知师傅来验收我,但是师傅突然说要打包好,我一下就晕了,师傅给了我一下午的时间,让我好好的打包。打包,这个作品展的时候用到了,本以为挺简单的,就用vb自带的打包打了,但是出来的东西真的是不敢恭维呀……打包后的程序总是在没有出错的地方出错,由于晚上要验收,时间有点紧,所以就验收的没有打包的系统。

错误1、

学生信息管理系统系列博客二_第1张图片

看一眼,能看出有什么错吗?我反正开始的时候没有注意到。是窗体的名字没有改。师傅上来一眼就看见了,他说这是一个职业人士的基础。唉,看来我离着“职业”还有点距离呀!!

错误2、

学生信息管理系统系列博客二_第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、

学生信息管理系统系列博客二_第3张图片

这是因为在数据库设计时,把born_date字段的数据类型设置成datetime类型了,如图:

学生信息管理系统系列博客二_第4张图片


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、

学生信息管理系统系列博客二_第5张图片

相信这个问题,大家都遇到了吧。就是在修改学籍、课程和成绩的时候,如果删除记录的话,删到最后一条都会弹出这个错误。这是因为当把最后一条记录删掉之后,游标不知道指向哪里,所以会报错。

解决方法:

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

把代码中加上几句,就不会报错啦……

请继续关注学生信息管理系统之错误二!!!!




你可能感兴趣的:(数据库)