sqlserver

mysql

ActiveX 数据对象(ADO,ActiveX Data Object)是一种用来连接数据库的工具,可以连接多种数据库类型,如Mysql、Pgsql等。

添加引用

安装ODBC驱动:

下载地址:https://dev.mysql.com/downloads/connector/odbc/
建议32位与64位都下载,安装后配置DSN数据源(excel直连数据源踩坑太多)

配置DSN数据源

odbcconf.exe /A {CONFIGDSN "MYSQL ODBC 8.1 Unicode Driver" "DSN=mysqlinklexcel;UID=root;PWD=Zhupo222;SERVER=192.168.122.105 ;PORT=3306;Database=reportdata;"}

UID:数据库用户名
PWD:数据库密码
SERVER:数据库IP地址
PORT:数据库的端口
Database:数据库的名称

前期绑定方式:添加引用Microsoft ActiveX Data Objects Library,勾选最新的一个版本。
VBA连接MySql前的准备
Tools--->References..---->引用
勾选以下两个引用

Microsoft ActiveX Data Objects 2.8 Librarys
Microsoft ActiveX Data Objects Recordset 2.8 Librarys

连接对象Connection

定义:Dim conn As ADODB.Connection
实例化:Set conn = New ADODB.Connection '创建一个连接
连接信息:conn.ConnectionString = "Driver={MySQL ODBC 8.0 Unicode Driver};Server="";Port="";Database="";Uid="";Pwd="";OPTION=3;"Driver是连接的数据库类型。
打开连接:conn.Open
关闭连接:conn.Close
释放资源:Set conn = Nothing

记录集对象Recordset

定义:Dim rs As ADODB.Recordset
实例化:Set rs = New ADODB.Recordset '创建一个记录集,用来存放查寻结果
执行sql:rs.Open mysql, conn
sql结果字段数:rs.Fields.Count
sql结果字段名:rs.Fields(i).Name 0表示第一个字段
将数据读取到单元格:ActiveSheet.Cells(2,1).CopyFromRecordset rs
记录移动:取数后记录定位在第一条,rst.movenext可以移动到下一条。当rst.eof = true表示已经到最后一条。

最后修改:2023 年 08 月 08 日
如果觉得我的文章对你有用,请随意赞赏