VBA可以連線mysql資料庫
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---