网上大多数有关VBA连接、操作SQL Server数据库的教程,大多是把连接字串、SQL语句、执行过程全写在一个过程中了,当一个VBA项目需要做大量的查询、更新数据时,显然这种方法并不合适,以下代码是把连接、执行过程封装成函数,只要在其他地方用SQL语句作为参数调用查询或者执行的函数就可以了:
Option Explicit
'数据源信息常量
Public Const conn As String = ""
Private IsConnect As Boolean '标记数据库是否连接
Public Const CONNECT_LOOP_MAX = 10 '一次执行connect操作,可以访问数据库的次数
Private Connect_Num As Integer '标记执行Connect()函数后访问数据的次数
Private cnn As Object '连接数据库的 Connection 对象,后期绑定法必须定义为object或者Variant类型
Private rst As Object '用来保存结果集的Recordset对象
Private cmd As Object '执行数据库操作的Command对象
Public Sub Connect() '连接数据库
IsConnect = False '如果连接标记为假,标明已经断开连接,则直接返回
If IsConnect = True Then
Exit Sub
End If
Set cnn = CreateObject("Adodb.Connection") '创建Connection对象cnn
cnn.ConnectionString = GetConn(conn) '获取数据库的连接字串
'On Error Resume Ne