以下讲解以SQLite数据库为例
新手请注意,先引用ADO且将连接字符串改为你的
全局变量声明【自定义函数及变量声明代码放置模块中】- Public cn As New ADODB.Connection
- Public RS As New ADODB.Recordset
- Public strCn As String, strSQL As String
- Public arr, brr '用于查询结果存储数据arr,用于存储标题brr
复制代码
查询数据库
- Public Function XSQL(SQL As String, S As Boolean, dx As Object)
- '参数 [语句,是否,赋值位置]
- XSQL = False
- On Error GoTo ErrHandler
- ' 定义SQLite3连接字符串
- strCn = "Driver={SQLite3 ODBC Driver};Database=" & ThisWorkbook.Path & "\CHISHENGLONG.db"
- 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
- Next
- If RS.BOF = False Then '有数据记录时执行
- arr = RS.GetRows '获取结果且装置成二维数据
- 'arr = VBt.Transpose(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:
- cn.Close
- MsgBox " 系统错误 " & Err.Number & " : " & Err.Description
- Exit Function
- End Function
复制代码
插入、删除、更新数据库
- Public Function SSQL(SQL As String)
- '参数 [语句]
- SSQL = False
- On Error GoTo ErrHandler
- ' 定义连接字符串
- strCn = "Driver={SQLite3 ODBC Driver};Database=" & ThisWorkbook.Path & "\CHISHENGLONG.db"
- cn.Open strCn
- Set RS = cn.Execute(SQL)
- SSQL = True
- cn.Close
- Exit Function
- ErrHandler:
- cn.Close
- MsgBox " 系统错误 " & Err.Number & " : " & Err.Description
- Exit Function
- End Function
复制代码
字段转化函数
- Public Function ZSQL(Zd As String) As Integer '字段名转列数
- Dim Y As Integer
- For Y = 0 To UBound(brr, 2) '数组列数
- If brr(0, Y) = Zd Then
- ZSQL = Y
- End If
- Next
- End Function
复制代码
下面是使用例子
一、查询语句
- Sub 查询()
- If XSQL("SELECT * FROM 用户管理 ", False, Nothing) = False Then MsgBox "该操作未处理成功,请重新操作一次!", vbExclamation: Exit Sub
- If TypeName(arr) = "Nothing" Then MsgBox "查无数据!", vbExclamation: Exit Sub '判断数组是否为空
- MsgBox UBound(arr, 1) + 1 '总行数
- MsgBox UBound(arr, 2) + 1 '总列数
- MsgBox arr(ZSQL("用户名"), 0) '获取查询出的结果,字段为用户名的第一行信息。参数【字段名,行数】
- End Sub
复制代码
一、插入删除更新语句(下面只列出插入示例,删除,更新语句雷同,这里不做其他说明)
- Sub 插入()
- '删除,更新语句雷同,这里不做其他说明
- If SSQL("INSERT INTO 用户管理 (用户名,密码)VALUES ('用户名','密码')") = False Then MsgBox "该操作未处理成功,请重新操作一次!", vbExclamation: Exit Sub
- End Sub
复制代码
注:大伙觉得不错请帮忙顶帖谢谢,创作不易。
WPS仓库出入库管理软件表格 EXCEL仓库出入库管理软件表格 池盛龙
|