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的内容咯

posted @ 2021-11-30 16:58  冬天里的狐狸  阅读(2546)  评论(0编辑  收藏  举报