VB的模块

来源:百度知道 编辑:UC知道 时间:2024/06/22 17:05:01
详细说明一下代码(每行语句尽量说明)
Option Explicit
Public username As String, userpwd As String, userdes As String
Public Function connstring() As String
connstring = "provider=microsoft.jet.oledb.4.0;data source=" & App.Path & "/学生管理系统.mdb"
End Function
Public Function executesql(ByVal sql As String) As ADODB.Recordset
Dim mycon As ADODB.Connection
Dim rst As ADODB.Recordset
Set mycon = New ADODB.Connection
mycon.ConnectionString = connstring
mycon.Open
Dim s() As String
On Error GoTo executesql_error
s() = Split(sql)
If InStr("INSERT,DELETE,UPDATE", UCase(s(0))) Then
mycon.Execute sql
Else
Set rst = New ADODB.Recordset
rst.Open Trim(sql), mycon, adOpenKeyset, adLockOptimistic
Set executesql = rst
End If
executesql_exit:
Set rst = Nothing
Set mycon = Nothing

Option Explicit
Public username As String, userpwd As String, userdes As String '定义三个字符变量
Public Function connstring() As String 定义一个connstring函数
connstring = "provider=microsoft.jet.oledb.4.0;data source=" & App.Path & "/学生管理系统.mdb" 定义一个字符串变量,实际上他是数据库连接字段
End Function
Public Function executesql(ByVal sql As String) As ADODB.Recordset 定义一个数据库打开执行函数,返回的结果是记录集
Dim mycon As ADODB.Connection 定义一个ADODB连接
Dim rst As ADODB.Recordset 定义返回集合
Set mycon = New ADODB.Connection
mycon.ConnectionString = connstring 连接数据库
mycon.Open 打开数据库
Dim s() As String 定义个数组
On Error GoTo executesql_error 错误捕获
s() = Split(sql) 分组,但是这好像有问题,应该是split(sql," ")
If InStr("INSERT,DELETE,UPDATE", UCase(s(0))) Then 判断刚分组出来的第一个内容是否属于instrt delete update之内,这三个不需要返回结果集的
mycon.Execute sql 直接执行<