Aceess 是微軟出品的桌面關(guān)系型數(shù)據(jù)庫(kù),也是在 Office 大禮包中的套件之一,和大名鼎鼎的 Excel 不同;Access 主要承擔(dān)了數(shù)據(jù)存儲(chǔ)和 SQL 查詢的功能,需要的數(shù)據(jù)技能要更為結(jié)構(gòu)化與進(jìn)階;總體來(lái)說(shuō),Excel 的強(qiáng)項(xiàng)在于靈活的分析數(shù)據(jù),它的基本對(duì)象的單元格Cell ;而 Access 的基本對(duì)象是Record ,是一種結(jié)構(gòu)化的數(shù)據(jù)形式,可以方便的存儲(chǔ)及查詢數(shù)十萬(wàn)級(jí)別的數(shù)據(jù)。 下面和大家分享一下,如何使用 VBA 將 Excel 和 Access 進(jìn)行連接,并將數(shù)據(jù)寫到 Access 數(shù)據(jù)庫(kù)中;
01 引入 Microsoft ActiveX Data Objects 6.0 Library在菜單欄 工具->引入->找到Microsoft ActiveX Data Objects 6.0 Library ,勾選引入
02 在 Access 新建一個(gè)表- 右鍵 左側(cè) 表名稱 -> 設(shè)計(jì)視圖
03 在 Excel VBA 內(nèi)寫連接代碼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 "連接數(shù)據(jù)庫(kù)成功!"
End Sub
我們需要先聲明數(shù)據(jù)庫(kù)連接對(duì)象ADODB.Connection ;然后設(shè)置數(shù)據(jù)庫(kù)路徑:ThisWorkbook.Path 是表明是當(dāng)前文件夾路徑,然后使用連字符& 連接"\Demo.accdb" 形成完整的數(shù)據(jù)庫(kù)文件路徑;點(diǎn)擊運(yùn)行,連接成功:
04 在 Excel VBA 內(nèi)寫 SQL 代碼我們可以將工作表的B1 和B2 單元格的內(nèi)容,作為變量傳入 SQL 語(yǔ)句 我們需要向數(shù)據(jù)庫(kù)寫入數(shù)據(jù),需要使用 SQL 代碼:Insert Into 語(yǔ)句 Sql = "Insert Into Demo(姓名,年齡) Values('" & Sheet1.Cells(2, 1).Value & "','" & Sheet1.Cells(2, 2).Value & "')"
其中第一段字符串,使用連字符將變量連接起來(lái)時(shí),中間有個(gè)英文逗號(hào)'
05 完整示例代碼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 "連接數(shù)據(jù)庫(kù)成功!"
Sql = "Insert Into Demo(姓名,年齡) Values('" & Sheet1.Cells(2, 1).Value & "','" & Sheet1.Cells(2, 2).Value & "')"
conn.Execute (Sql)
End Sub
今天的教程,主要學(xué)習(xí)了:如何從Excel連接Access數(shù)據(jù)庫(kù),并寫入數(shù)據(jù);大家都學(xué)會(huì)了嗎?
|