【Excel】VBA编程 02 访问MySQL数据库
1、配置Windows连接驱动ODBC
因为是访问MySQL,则对应的ODBC驱动由MySQL厂商发布
https://dev.mysql.com/downloads/connector/odbc/
这里系统位数有个坑,要下载32位版
安装64位版后执行VBA脚本却告诉我找不到ODBC驱动,想半天才知道系统位数原因
https://yebd1h.smartapps.cn/pages/blog/index?blogId=108721206&_swebfr=1&_swebFromHost=baiduboxapp
又或者因为连接参数不对
安装ODBC驱动之后,找到【管理工具】
把下面这个地址粘贴的【资源管理器】的地址栏上直接访问
控制面板\系统和安全\管理工具
分为64位和32位,双击32位
可以看到驱动列表中有了MySQL的驱动
可以新建一个【用户DSN】来测试
2、Excel的VBA配置
找到VBA开发工具,引用菜单
追加VBA的数据库访问对象
追加两项引用:
Mircosoft ActiveX Data Objects 6.1 Library
Mircosoft ActiveX Data RecordSet 6.0 Library
3、编写VBA执行脚本
然后可以在VBA中编写数据库访问脚本:
Sub 连接本地Mysql() '///1. 引用ADO类库:前期或者后期绑定 Dim conn As ADODB.connection Set conn = New ADODB.connection '以上两句可简写Dim con As New ADODB.Connection
Dim rs As ADODB.Recordset Set rs = New ADODB.Recordset '以上两句可简写Dim rs As New ADODB.Connection '///2. ADO建立对数据源的链接 '可简写con.Open "Driver={MySQL ODBC 8.0 Unicode Driver};Server=192.168.1.139;DB=test;UID=root;PWD=abc;OPTION=3;" conn.ConnectionString = "Driver={MySQL ODBC 8.0 Unicode Driver};Server=127.0.0.1;Port=3308;DB=my-info;UID=root;PWD=123456;OPTION=3;" conn.Open '///3. ADO执行SQL语言。 rs.Open "select * from application_website", conn '使用结果集对象执行sql语句 Range("A2").CopyFromRecordset rs '将数据输出到工作表,不包含字段名 MsgBox ("连接成功!" & vbCrLf & "数据库状态:" & conn.State & vbCrLf & "数据库版本:" & conn.Version) conn.Close Set conn = Nothing End Sub
脚本执行结果