VBA完整版


下面開始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的內容咯


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM