学生信息管理系统的Bug

今天在调试学生信息系统的时候出现了错误。

Public Function ExecuteSQL(ByVal SQL As String, MsgString As String) As ADODB.Recordset
    Dim cnn As ADODB.Connection
    Dim rst As ADODB.Recordset
    Dim sTocken() As String
    
    On Error GoTo Executesql_Error
    
    sTocken = Split(SQL)
    Set cnn = New ADODB.Connection
    cnn.Open ConnectionString
    
    '如果是简单的插入更新删除操作,则直接执行
    If InStr("INSERT,UPDATE,DELETE", UCase$(SQL)) Then
        cnn.Execute SQL
       MsgString = sTocken(0) & "执行成功"
    Else '如果是查询语句查询的记录量大所以要保存到记录集中。
        Set rst = New ADODB.Recordset
        rst.Open Trim$(SQL), cnn, adOpenKeyset, adLockOptimistic
        Set ExecuteSQL = rst
        MsgString = "查询到" & rst.RecordCount & "条记录"
    End If
    
ExecuteSQL_Exit:
    Set cnn = Nothing
    Set rst = Nothing
Exit Function

Executesql_Error: '错误跳转
    MsgString = "查询到错误:" & Err.Description
    Resume ExecuteSQL_Exit
End Function

一是在模块中把set ExecuteSQL=rst 写成了set rst=executeSQL 当时人为函数的名字就是函数的返回值,所以正好把函数名赋值给我们定义的记录集对象,但到后来发现这样的话就是把返回值个rst记录集对象了。但事实上,函数的返回值是ExectuteSQL所以要把查询的结果的记录集对象最后要赋值给我们的定义的函数名。并且函数返回的是记录集类型。

当调试修改密码的窗体时出现:

学生信息管理系统的Bug_第1张图片

是因为再修改用户密码的窗体中只能是对当前用户的密码进行修改,并且在不同的窗体中要考虑到变量命名的一致性,所以要定一个全局变量来对一个控件的控制。

还出现了很多功能不完整的错误,是自己代码逻辑上的错误了。当然还会有很多的缺陷。打算把学生信息管理系统理解透彻了再去做机房收费系统,别人做的很虽然很快。但我要慢慢来。加油!

你可能感兴趣的:(sql,function,String,delete,insert)