Aceess 是微软出品的桌面关系型数据库,也是在 Office 大礼包中的套件之一,和大名鼎鼎的 Excel 不同;Access 主要承担了数据存储和 SQL 查询的功能,需要的数据技能要更为结构化与进阶;总体来说,Excel 的强项在于灵活的分析数据,它的基本对象的单元格Cell
;而 Access 的基本对象是Record
,是一种结构化的数据形式,可以方便的存储及查询数十万级别的数据。
下面和大家分享一下,如何使用 VBA 将 Excel 和 Access 进行连接,并将数据写到 Access 数据库中;
在菜单栏 工具->引入->找到Microsoft ActiveX Data Objects 6.0 Library
,勾选引入
Sub Demo()
Dim conn As ADODB.Connection
Set conn = New ADODB.Connection
datapath = ThisWorkbook.Path & "\Demo.accdb"
With conn
.Provider = "microsoft.ace.oledb.12.0"
.Open datapath
End With
MsgBox "连接数据库成功!"
End Sub
我们需要先声明数据库连接对象ADODB.Connection
;然后设置数据库路径:ThisWorkbook.Path
是表明是当前文件夹路径,然后使用连字符&
连接"\Demo.accdb"
形成完整的数据库文件路径;点击运行,连接成功:
我们可以将工作表的B1
和B2
单元格的内容,作为变量传入 SQL 语句
我们需要向数据库写入数据,需要使用 SQL 代码:Insert Into
语句
Sql = "Insert Into Demo(姓名,年龄) Values('" & Sheet1.Cells(2, 1).Value & "','" & Sheet1.Cells(2, 2).Value & "')"
其中第一段字符串,使用连字符将变量连接起来时,中间有个英文逗号'
Sub Demo()
Dim conn As ADODB.Connection
Set conn = New ADODB.Connection
datapath = ThisWorkbook.Path & "\Demo.accdb"
With conn
.Provider = "microsoft.ace.oledb.12.0"
.Open datapath
End With
'MsgBox "连接数据库成功!"
Sql = "Insert Into Demo(姓名,年龄) Values('" & Sheet1.Cells(2, 1).Value & "','" & Sheet1.Cells(2, 2).Value & "')"
conn.Execute (Sql)
End Sub
今天的教程,主要学习了:如何从Excel连接Access数据库,并写入数据;大家都学会了吗?
联系客服