- VBA中的MySQL环境配置
- VBA连接MySQL数据库
- VBA读写MySQL数据
- 在Excel中连接MySQL数据库及数据读写
- (2019.11.07更新)常见问题答疑
- (2019.11.11更新)常见问题答疑
系统环境:
- Windows 7 64bit
- Excel 2016 32bit
- WAMP(3.0.6 32bit)集成的MySQL版本为5.7.14
- (2019.08.02更新) 本文章在windows10 企业版 64bit下测试通过
1. VBA连接MySQL前的环境配置如果想连接本地数据库,必须先安装MySQL服务。可以选择使用官方安装包,或者使用PHP集成环境中的数据库都可以(windows平台上的有wamp或者phpstudy)。
我这里使用的是内网其他电脑上的MySQL数据库,这就需要在数据库里开启远程访问。
1.1 启用MySQL的局域网访问想让局域网中的所有机器都能连接MySQL数据库,首先要给MySQL开启远程连接的功能,在MySQL服务器控制台上执行MySQL命令:
1 grant all privileges on *.* to root@"%" identified by 'abc' with grant option; 2 flush privileges;
其中上面两行代码的意思是给从任意ip地址连接的用户名为root,密码为abc的用户赋予所有的权限。其中的"%"为任意的ip地址,如果想设为特定的值也可以设定为特定的值(以通配符%的内容增加主机/IP地址,也可以直接增加IP地址)
例如:
1 grant all privileges on *.* to root@"192.168.1.1" identified by 'abc' with grant option; 2 flush privileges;
这里就是指 192.168.1.1这个IP的机器可以使用 root /abc 这个账户远程访问MySQL数据库
PS:数据连接工具推荐使用Navicat,可以同时连接不同的数据库,非常方便。
我常用的是11.0.16版本 下载地址 提取码: s5kt
1.2 启用脚本支持数据库配置好之后,在Excel这边,需要先在VBE中启动数据库连接支持。按下Alt+F11打开VBE,在菜单栏选择“工具”-“引用”,在弹出的引用窗口中,找到"Microsoft ActiveX Data Objects 6.1 Library"和"Microsoft ActiveX Data Objects Recordset 2.8 Library",把前面的框勾选上,点击确定即可。 (如果不是这两个版本,则选择一个版本号最高的勾选即可)
1.3 安装MySQLODBC 连接服务下载地址:Download Connector/ODBC
选择操作系统及系统版本,下载对应的MSI文件安装即可。
这里应当注意的是,在下载安装ODBC连接器时,要选择和你的数据库系统相同位数的版本,而不是系统版本,否则安装完后依然会提示找不到数据库驱动。
注意:在64bit的系统上装的32bit的connector,装完后在ODBC数据源里看不到MySQL Driver,这时需要把64位的也装上才能看到MySQL Driver
但是!如果在64bit的系统上安装64bit的connector,数据库版本32bit,虽然可以看到ODBC的数据源了,但是在excel中连接还是提示找不到驱动,这时装上32bit的connector才成功
所以说 数据库、操作系统、连接工具这些统一用一种位数的多么重要。。。
PS:如果安装的时候报错,你可能需要安装 VC++ 2015 Redistributable 微软官方下载地址 选择对应自己安装的ODBC连接器版本的下载即可
1.4 添加ODBC数据源打开“控制面板”-“管理工具”-“ODBC 数据源”
在弹出的窗口中的“用户DSN”选项卡右侧,选择“添加”,在新数据库源中会出现两个MySQL驱动,分别为“MySQL ODBC 8.0 ANSI Driver”及"MySQL ODBC 8.0 Unicode Driver",
很明显两者的区别在于编码标准。我选择的是Unicode版本。选中其中一个,点完成即可。
点击完成后弹出配置界面,关于界面的说明如下:
Data Source Name: 连接名称,会显示在之前的“ODBC数据源管理器“的列表中;
TCP/IP Server: 服务器地址,如果是内网/外网,需要填写对应的IP地址。如果是本机则填写 127.0.0.1;
User: 登录用户名,这里如同我在1.1中设置的,填写 root;
Password: 登录密码,这里如同我在1.1中设置的,填写 abc;
Database:这里需要选择 数据库(一个服务器上可能有多个数据库),根据自己的需要选择一个就可以。
填写完毕后,推荐点击【test】按钮测试一下连接是否正常,如果有问题的话,需要重新检查一下1.1中的局域网访问设置,如果是本地服务器的话,可能是数据库未启动。
1.2和1.3的配置顺序可以随意,但1.4必须在1.3之后,否则在ODBC数据源中添加新数据源时,是找不到MySQL选项的。