学生信息管理系统模块问题篇

这个窗体可是出现了很多个问题,例如实时错误91错误,实时错误3021错误,这些就是比较常见的错误,下面对于这些错误有了一些认识,来分享一下
一、实时错误91错误
学生信息管理系统模块问题篇_第1张图片
1.引起的原因
1.ODBC连接没成功
2.VB模块中连接数据库的代码,用户名,密码和ODBC不同步
3.代码中语句出错,连接不到数据库中所要连接的表
2.具体的解决方法:
第一个原因在前面已经说过了,可以参照前一篇博客https://blog.csdn.net/TGB__15__ZYB/article/details/86599501;第二种原因就是检查VB模块中连接数据库的代码,用户名,密码,保证与ODBC上的同步;第三种原因检查查询表的代码是否写错,注意空格,之后检查代码中的表的名字和记录的名字是否与数据库中的一致。这样大致就可以解决了。
关于数据库查询语句空格的说明:
二、关于实时错误“-2147217887”
学生信息管理系统模块问题篇_第2张图片
1.引起的原因
大多数是输入的数据违反了数据库的约束条件、字段大小超过限制提交的数据个数、字段数据类型不匹配、自动编号指定了值、或者自动编号未作自动赋值、字段不允许为空值等。
2.解决方法
打开SQL Server2014软件,登录数据库,按照如图所示知道要编辑的属性右击,点击修改
学生信息管理系统模块问题篇_第3张图片
在弹出框的列属性中修改长度,是否空值,点击保存即可
学生信息管理系统模块问题篇_第4张图片
如果无法保存,找到菜单栏里的工具,点击工具,点击选项,找到设计器,将“阻止保存要求重新创建表的更改”前面的“✔”点掉,点击确定即可保存
学生信息管理系统模块问题篇_第5张图片
三、实时错误“3021”
学生信息管理系统模块问题篇_第6张图片
1.引起错误的原因:
由于没有考虑最后一条记录而删除了以及本来数据库中就没有记录而导致的错误。
2.解决方法:
1.加on error goto dataerr语句,编辑dataerr函数
2.在代码中对BOF、EOF进行说明和限制,具体用法如下:
If mrc.BOF Then
表示:当前指针的位置是在第一行记录之前,则…
If mrc.EOF Then
表示:当前指针的位置是在最后一行记录之后,则…
If Not mrc.EOF Then
表示:当前指针的位置没有到达最后一条记录
If Not mrc.BOF then
表示:当前指针的位置没有到达第一条记录
If Not (mrc.BOF AND mrc.EOF) Then
表示:指针位于RecordSet 的当中(并非是最后一条和第一条) ,说明一定有记录。
If mrc.BOF AND mrc.EOF Then
表示:没有任何记录
if mrc.EOF=true then = if mrc.EOF then
在这里插入图片描述
四、实时错误364
学生信息管理系统模块问题篇_第7张图片
1. 引起的原因:
由于对象已经删除,但是其他窗体仍然调用该对象,注意执行顺序,本窗体中在多文档界面中点击修改学籍信息在没有记录的情况下弹出3021错误,在修改学籍信息窗体中加入相关代码时,会弹出364错误
2.具体解决方式:
在多文档界面对修改学籍信息的菜单进行编辑,添加相关代码即可,本例中相关代码是当点击修改学籍信息时判断数据库中是否有记录如果没有弹出对话框警告,代码如下

Dim mrc As ADODB.Recordset
    Dim txtSQL As String
    Dim MsgText As String
    Dim strxueji As VbMsgBoxResult
    txtSQL = "select*from student_Info" 'SQL语句
    Set mrc = ExecuteSQL(txtSQL, MsgText) '执行查询操作
    If mrc.BOF And mrc.EOF Then
        strxueji = MsgBox("没有任何学籍信息!", vbOKOnly, "警告")
        If strxueji = vbOK Then
            Unload frmModifysinfo
        End If
    Else
        frmModifysinfo.Show
    End If

你可能感兴趣的:(VB)