VBA连接mysql数据库查询操作
今天主要说说VBA连接mysql数据库
如果连接其他数据库,可以在打开EXCEL后,点击数据选项卡——获取外部数据即可。
因为excel⾃带没有mysql数据库,所以呢,今天主要是利⽤ADO操作mysql数据。
mysql安装后的基本设置可以参考昨天mysql的内容。
blog.csdn/Di77HaoWenMing/article/details/108700531
下⾯开始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位才⾏,这⾥埋个伏笔,待会我没注意,就给翻车了)下载地址:
sql/downloads/connector/odbc
下载完傻⽠式安装~
安装完后,如果不是win10系统的话,需要在“控制⾯板”-“管理⼯具”-“ODBC 数据源”进⾏配置,我⽤的win10,在
C:\Windows\(64位)或者C:\Windows\(32位)进⾏配置。
③ ODBC配置
Unicode driver 版本提供了更多字符集的⽀持,也就是提供了多语⾔的⽀持。⽽ANSI driver 版本是只针对有限的字符集的范围。所以选择Unicode看起来更好哟~
最后把⾃⼰设置的mysql信息填上去,点⼀下右下⾓的test,弹出连接成功,完成咯!
odbc其他具体操作可以到下⾯的链接下载⽂档进⾏查看
sql/doc/
(2)连接mysql
Sub mysql_conn()
Dim conn As ADODB.Connection
Set conn = New ADODB.Connectionmysql下载odbc失败
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的内容咯

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。