今天在调试学生信息系统的时候出现了错误。
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所以要把查询的结果的记录集对象最后要赋值给我们的定义的函数名。并且函数返回的是记录集类型。
当调试修改密码的窗体时出现:
是因为再修改用户密码的窗体中只能是对当前用户的密码进行修改,并且在不同的窗体中要考虑到变量命名的一致性,所以要定一个全局变量来对一个控件的控制。
还出现了很多功能不完整的错误,是自己代码逻辑上的错误了。当然还会有很多的缺陷。打算把学生信息管理系统理解透彻了再去做机房收费系统,别人做的很虽然很快。但我要慢慢来。加油!