Excel VBA操作Access數據庫有什麼優勢呢?
首先,對于數據庫要有一點了解,數據庫就是一個庫房,裡面存放的不是糧食,也不是商品,而是數據,數據這個東西有點虛幻,看得見摸不着。
但通過對數據的應用和處理之後,就變成了某些實體。從基本理論上來講,數據就是物質世界的本源,一切的存在實體都可以用數據來描述。
所以,未來世界也許就隻是一個虛拟的數據世界,而我們的身體或看到或看不到的一切實體将變得可有可無,也就是意識和世界全部數字化了。
本節介紹一下,如何用VBA和Access數據庫建立聯系,然後讀取數據庫裡的記錄,顯示到Excel工作表當中。
為什麼要這麼做呢?
因為數據庫可保存的數據是Excel無法比較的,體量和應用完全不在一個層級上級。
上圖表格,就是從數據庫讀取的信息,并不是在Excel中創建的,具體方法,慢慢講來。
下圖為Access數據新建的表格内容,和上圖對比就明白了。
不會Access建表操作,需要補一下數據庫操作學習,當然了,如果對SQL語句也沒有基礎,感覺下面的内容也沒必要看了,因為涉及數據庫操作的方法,是用一些SQL數據庫語句完成的。
重點看一下,關鍵代碼
'查詢Access數據庫
Private Sub CommandButton1_Click()
Dim uADO, rsADO As Object
Dim strPath, strSql As String
Dim i As Integer, ri As Integer
Set uADO = CreateObject("ADODB.Connection") '新建數據庫連接對象
Set rsADO = CreateObject("ADODB.RecordSet") '新建記錄集對象
strPath = ThisWorkbook.Path & "\udata.accdb " '設置數據庫地址
uADO.Open "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & strPath '打開數據庫
strSql = "Select * From UserInfo WHERE 部門='辦公室' " '設置查詢語句
rsADO.Open strSql, uADO, 1, 3 '執行查詢
Dim R As Range
Set R = ActiveSheet.Range("B2")
ActiveSheet.UsedRange.Clear
For i = 0 To rsADO.Fields.Count - 1
R.Offset(0, i).Value = rsADO.Fields(i).Name '輸出字段名
Next i
Set R = R.Offset(1, 0)
Do Until rsADO.EOF '循環查詢到數據 直到記錄最後一條
For i = 0 To rsADO.Fields.Count - 1
R.Offset(ri, i).Value = rsADO.Fields(i).Value '輸出數據表内容
Next i
ri = ri 1
rsADO.movenext '指向下一條記錄
DoEvents
Loop
rsADO.Close '關閉記錄集
Set uADO = Nothing
Set rsADO = Nothing
End Sub
代碼中有注釋,不做詳細介紹。
下面是否主要代碼說明:
首先,新建數據庫連接對象 uADO,這個對象實現和數據庫建立連接
Set uADO = CreateObject("ADODB.Connection")
建立連接後用下面語句是打開數據庫并建立連接 uADO.Open
uADO.Open "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & strPath '打開數據庫
Open方法中用了兩個參數,一個是Provider,一個Source
Provider是連接字符串,根據Excel應用版本不同這個字符串也不同,本示例應用Microsoft.ACE.OLEDB.12.0,Excel 2016。
Source參數表示數據源地址,也就是數據庫文件地址。
strPath是存放數據庫文件的路徑和文件名字符串變量,根據你的文件地址進行修改。
strPath = ThisWorkbook.Path & "\udata.accdb " '設置數據庫地址
上面代碼執行之後來就建立了Excel和Access連接,接下來新建個一記錄集對象rsADO
對于數據庫的操作,将用到rsADO記錄集。
Set rsADO = CreateObject("ADODB.RecordSet")
同樣也使用Open方法打開記錄集。
參數有5個,下面使用了4個,當然了參數是可以忽略的。
如果下示例:
strSql = "Select * From UserInfo WHERE 部門='辦公室' " '設置查詢語句
rsADO.Open strSql, uADO, 1, 3 '執行查詢
strSql是查詢語句,也就是通過這樣一個查詢,返回我們想要的數據,保存到rsADO記錄集當中。
uADO是之前打開的數據庫連接對象。
ADO是微軟的 ActiveX 數據對象(ActiveX Data Objects),應用十分廣泛,在對數據進行操作的過程當中,除Excel之外,可以更加方便快捷地提高數據處理能力。
歡迎關注、收藏
---END---
,更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!