您的位置:首页 > 编程语言

学生信息管理系统 模块代码总结

2017-09-17 23:20 453 查看

公共模块

另一位博主的模块代码

添加函数executeSQL——执行SQL语句

Public Function(功能) ExecuteSQL(ByVal SQL As String, msgstring As String) As ADODB.Recordset(记录集)

'两个参数:SQL用来存放需要执行的SQL语句,msgstring用来返回执行的提示信息。对这两个参数进行数据类型定义,定义为字符串型。
ByVal——按值传递关键字。在定义通用过程时,如果形参前面有关键字ByVal,则该参数用传值方式传送,否则即以引用(即按地址)方式传递。
'传递参数SQL传递查询语句,MsgString传递查询信息
'自身以一个数据集对象的形式返回

Dim cnn As ADODB.Connection
' 定义cnn 为数据库链接的形式,配合connectstring()函数链接并打开数据库

Dim rst As ADODB.Recordset
'定义一个临时表(记录集),来存放数据库中取出的数据源

Dim sTokens() As String
'定义一个字符串数组sTokens(),将SQL语句按数组的形式存放,在程序中要使用变量,这些是数组变量,要先定义

On Error GoTo ExecuteSQL_error
'如果出错,进行的应急处理。执行时发生错误,将转到executeSQL语句处继续执行

'用Split函数产生一个包含各个字符串的数组(通过split函数将sql 语句按单词存入数组,例:如果sql语句是 select * from student ,那么运行的结果就是——stokens(0)= "select",stokents(1)="*" ,stokens(2)="from",stokens(3)="student"  )
sTokens = Split(SQL)——split分歧,分裂

'创建链接
Set cnn = New ADODB.Connection

'通过connectstring将数据库链接,并且打开
cnn.Open ConnectString

'判断数组字符串中是否含有指定内容(Ucase$-将字符串全部转换成大写后判断是否存在)
If InStr("INSERT,DELETE,UPDATE", UCase$(sTokens(0))) Then

'执行查询语句
cnn.Execute SQL

'返回查询信息
msgstring = sTokens(0) & "query successful"
Else

'创建数据集对象
Set rst = New ADODB.Recordset

'返回查询结果(rst临时表记录并打开trim记录的SQL操作字符串在数据库中的查询结果,以cnn的字符串表达式打开方式打开ODBC数据源,adOpenKeyset确定游标类型(查找方式)为键集游标(不能访问其他用户删除的记录,但除无法查看其他用户添加的记录外,它和动态游标相似。其他用户所做的数据更改依然可见),adlockoptimistic确定加锁类型(当数据源正在更新时,系统并不会锁住其他用户的动作,其他用户可以对数据进行增、删、改的操作)
rst.Open Trim$(SQL), cnn, _
adOpenKeyset, _
adLockOptimistic
'rst.MoveLast  'get recordcount

'返回记录集对象(将得到的临时列表赋值给executeSQL函数,由他传回并进一步赋值给mrc)
Set ExecuteSQL = rst
msgstring = "查询到" & rst.RecordCount & _
"条记录"
End If

函数退出前的一个清空临时列表的操作
ExecuteSQL_Exit:
'清空数据集对象
Set rst = Nothing
'中断连接
Set cnn = Nothing
Exit Function

'错误类型判断,错误出现时的处理
ExecuteSQL_error:
msgstring = "查询错误:" & _
Err.Description
Resume ExecuteSQL_Exit
End Function
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  string 管理 函数 数据