|
全局声明变量
- Option Explicit
- Public cn As New ADODB.Connection
- Public RS As New ADODB.Recordset
- Public strSQL As String
- Public ZdC As String
- Public arr, brr
复制代码 数据库配置函数:我这里以MSSQL连接为示例
- '功能描述: '配置数据库信息
- '作者:池盛龙
- '日期:2020-11-09
- '个人网址:CHISHENGLONG.TOP
- Public Function strCn()
- strSQLServer = "IP地址"
- strSQLUser = "账号"
- strSQLPW = "密码"
- strSQLDB = "数据库名"
- strCn = "Provider=sqloledb;Server=" & strSQLServer & ";Database=" & strSQLDB & ";Uid=" & strSQLUser & ";Pwd=" & strSQLPW
- End Function
复制代码
查询函数
- '功能描述: '用于执行SQL 插入、更新、修改、语句
- '作者:池盛龙
- '日期:2020-11-09
- '个人网址:CHISHENGLONG.TOP
- '调用方法如下:
-
- 'If XSQL(CStr(SQL), True, [A5]) = False Then END
- '如果需要显示标题如下:
- ' For X = 0 To UBound(brr, 2)
- ' Cells(4, X + 1) = brr(0, X)
- ' Next
- 'If TypeName(arr) = "Nothing" Then MsgBox "暂无记录!", vbExclamation: Exit Sub
- '获取结果继续赋值方法:
- ' For X = 0 To UBound(arr, 2)
- ' Cells(1 "B") = arr(ZSQL("订单编号"), X)
- ' Cells(2 "C") = arr(ZSQL("物料名称"), X)
- ' Cells(3, "D") = arr(ZSQL("规格"), X)
- ' Cells(4 "E") = arr(ZSQL("单位"), X)
- ' Cells(5, "F") = arr(ZSQL("数量"), X)
- ' Cells(6, "G") = arr(ZSQL("单价"), X)
- ' Next
- '参数 [语句,是否需要,赋值位置]
- Public Function XSQL(SQL As String, S As Boolean, dx As Object)
- XSQL = False
- ZdC = ""
- On Error GoTo ErrHandler
- cn.Open strCn
- Set RS = cn.Execute(SQL)
- ReDim brr(0, RS.Fields.Count - 1)
- Dim F As Integer '获取标题
- For F = 0 To RS.Fields.Count - 1
- brr(0, F) = RS.Fields(F).Name
- ZdC = ZdC & "{" & F & "}" & RS.Fields(F).Name '用于识别字段列的位置
- Next
- If RS.BOF = False Then '有数据记录时执行
- arr = RS.GetRows '获取结果且装置成二维数据
- If S = True Then
- ' CopyFromRecordset 或GetRows后,记录集指针已经移到了EOF,这时如果想继续使用该记录集,应该把其指针再移回第一条
- RS.MoveFirst '指针移第一行 '
- dx.CopyFromRecordset RS
- End If
- Else
- Set arr = Nothing
- End If
- cn.Close ' 关闭连接
- XSQL = True
- Exit Function
- ErrHandler:
- If cn.State = adStateOpen Then cn.Close '如果断开连接重新连接
- If Err.Number = -2147467259 Then
- MsgBox " 与数据库失去链接!无法获取数据", vbExclamation
- Else
- MsgBox " 系统错误 " & Err.Number & " : " & Err.Description, vbExclamation
- End If
- Exit Function
- End Function
复制代码 更新/修改/删除的函数
- 更新、修改、删除函数
- '功能描述: '用于执行SQL 插入、更新、修改、语句
- '作者:池盛龙
- '日期:2020-11-09
- '个人网址:CHISHENGLONG.TOP
- '调用方法如下:
- 'If SSQL(CStr("DELETE FROM 表 ")) = False Then End
- '参数 [插入、更新、修改、语句]
- Public Function SSQL(SQL As String)
- SSQL = False
- On Error GoTo ErrHandler
- cn.Open strCn
- Set RS = cn.Execute(SQL)
- SSQL = True
- cn.Close
- Exit Function
- ErrHandler:
- If cn.State = adStateOpen Then cn.Close '如果断开连接重新连接
- If Err.Number = -2147467259 Then
- MsgBox " 与数据库失去链接!无法获取数据", vbExclamation
- Else
- MsgBox " 系统错误 " & Err.Number & " : " & Err.Description, vbExclamation
- End If
- Exit Function
- End Function
复制代码 使用效果:
查询操作:分2种,一种无结果赋值,一直有结果赋值{结果的意思是,不需要查询后把结果数据填到工作表}
图下方法为:无结果赋值
图下方法为:有结果赋值
更新/删除操作:
不明白使用的新手,可以留意下发提问。如果我的方法对你有帮助,麻烦你的小手送送小花,顶顶帖子。
我会定期发布帖子,想学更多技巧,继续关注
|
评分
-
1
查看全部评分
-
|