下面開始vba連接mysql啦
一、ADO是啥
ADO (ActiveX Data Objects,ActiveX數據對象)是Microsoft提出的應用程序接口(API)用以實現訪問關系或非關系數據庫中的數據。
大概意思ADO就是一個工具,可以連接數據庫,可以處理數據。
二、VBA連接mysql
(1)准備工作
①使用前咱們先導入ADO對象庫。
打開VBE工作環境——選擇“工具”——“引用”——找到最新版本的Microsoft ActiveX Data Objects勾選上,不清楚哪個就多勾幾個,也不礙事~
②安裝mysql Connector/ODBC
以為勾選了對象庫就完事了?想多啦,還要安裝mysql Connector/ODBC ,安裝完了才可以用(注意要和自己的EXCEL位數一樣,都是32位或都是64位才行,這里埋個伏筆,待會我沒注意,就給翻車了)下載地址:
https://dev.mysql.com/downloads/connector/odbc
下載完傻瓜式安裝~
安裝完后,如果不是win10系統的話,需要在“控制面板”-“管理工具”-“ODBC 數據源”進行配置,我用的win10,在C:\Windows\system32\odbcad32.exe(64位)或者C:\Windows\SysWOW64\odbcad32.exe(32位)進行配置。
③ ODBC配置
Unicode driver 版本提供了更多字符集的支持,也就是提供了多語言的支持。而ANSI driver 版本是只針對有限的字符集的范圍。所以選擇Unicode看起來更好喲~
最后把自己設置的mysql信息填上去,點一下右下角的test,彈出連接成功,完成咯!
odbc其他具體操作可以到下面的鏈接下載文檔進行查看
https://dev.mysql.com/doc/
(2)連接mysql
Sub mysql_conn()
Dim conn As ADODB.Connection
Set conn = New ADODB.Connection
conn.ConnectionString = "Driver={MySQL ODBC 8.0 Unicode Driver};Server=127.0.0.1;Port=3306;Database=demo;Uid=yxq;Pwd=123456;OPTION=3;"
conn.Open
End Sub
反正記住這么配置就可以啦~也簡單易懂。
Driver就是ODBC剛設置的,Server=127.0.0.1;Port=3306;Database=demo;Uid=yxq;Pwd=123456都是自己的mysql的信息,至於OPTION=3,反正默認3就是。
然后以為一帆風順,還是報錯了(就是前面提到的,EXCEL是32位的,但是呢ODBC又是安裝的64位的):
三、VBA獲取mysql數據
經過一頓操作,重新安裝32位的ODBC,總算連接成功
①獲取數據庫demo中表user里面的所有信信息
Sub mysql_conn()
Dim conn As ADODB.Connection
Set conn = New ADODB.Connection
Dim rs As ADODB.Recordset
Set rs = New ADODB.Recordset
conn.ConnectionString = "Driver={MySQL ODBC 8.0 Unicode Driver};Server=127.0.0.1;Port=3306;Database=demo;Uid=yxq;Pwd=123456;OPTION=3;"
conn.Open
Sql = "SELECT * FROM `user`"
rs.Open Sql, conn
Sheets(1).range("C3").CopyFromRecordset rs
End Sub
通過rs將查找到的數據直接在sheet1的A1列中進行粘貼,搞定!
② 同理,把上面第10行的代碼改一下就可以獲取所有數據庫名
Sql = "SELECT SCHEMA_NAME AS `Database` FROM INFORMATION_SCHEMA.SCHEMATA;"
獲取數據庫demo下的所有表:
Sql = "show tables from demo;"
最后:VBA讀取mysql相對來說還是簡單,但是前期的配置工作需要特別仔細,一不小心出錯了蠻費時間和精力。
今天就到這里啦~再下去就是mysql的內容咯