VBA和SQLite数据库交互
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
VBA和SQLite数据库交互
SQLite是一个轻量级的数据库,对于单机的用户还是不错的。
要在excel VBA里使用SQLite,首先肯定是需要相关的驱动的。
熟悉ADO的人应该知道。
我也不多说了。
首先安装驱动:下载。
在里面的Current Version(也就是最新的稳定版).注意驱动跟软件版本走。
32位的office就下载sqliteodbc.exe,64位的office就下载sqliteodbc_w64.exe。
由于没有gui.我们无法查看数据文件。
这样我们还需要一个图形化的界面来看一下数据结果,这里我推荐一下SQLiteSpy.下载地址:。
点击网页右边的Download Win32或者win64版本下载吧。
SQLiteSpy的界面如下:
可以新建SQLite数据库,也可以打开已有的数据库查看数据文件。
这对我们使用vba的人就够了。
主要是查看vba是否得到想要的数据
结果。
下面看一下相关代码:
Sub 创建数据库()
Dim conn As New ADODB.Connection '引用ADO
Dim Connstr As String
Connstr = "Driver={SQLite3 ODBC Driver};Database=" & ThisWorkbook.Path & "\用户数据.db"
conn.Open Connstr
conn.Close
End Sub
上面的代码会打开用”户数据”这个数据库文件,如果不存在会在这个路径上创建一个同名文件。
下面的代码用于在数据库文件里创建一个表。
Sub 创建表()
Dim conn As New ADODB.Connection '引用ADO
Dim Connstr As String
Connstr = "Driver={SQLite3 ODBC Driver};Database=" & ThisWorkbook.Path & "\用户数据.db"
conn.Open Connstr
conn.Execute "Create table 用户清单(用户编号,用户姓名,用户地址,联系电话)" '在用户数据库文件下创建用户清单表,并创建4个字段名
conn.Close
End Sub
用SQLiteSpy查看效果如下图:
下面的代码是插入excel数据到清单数据表。
Sub 更新数据到DB()
Dim conn As New ADODB.Connection '引用ADO
Dim Connstr As String
Connstr = "Driver={SQLite3 ODBC Driver};Database=" & ThisWorkbook.Path & "\用户数据.db"
conn.Open Connstr
conn.Execute "Create table 用户清单(ID,NAME,AGE,ADDRESS,SALARY)" '在用户数据库文件下创建用户清单表,并创建5个字段名,如果表已存在会报错
arr = [A1].CurrentRegion
For i = 2 To UBound(arr)
conn.Execute "Insert into 用户清单values('" & Join(Application.Rept(Application.Index(arr, i, 0), 1), "','") & "')"
Next
conn.Close
End Sub
运行结果如下图:。