几次更新失败,我已经放弃在这里更新了,有需要可以到博客园看:
################################################################
本文主要涉及:
VBA中的MySQL环境配置
VBA连接MySQL数据库
VBA读写MySQL数据
在Excel中连接MySQL数据库及数据读写
系统环境:
Windows 10
Excel 2013
XAMPP。其中集成的数据库是MariaDB 10.1.13(如果不懂MariaDB为何物,可把它当成是MySQL。事实上它的使用和MySQL也几乎完全一致)
————————————————————————————————————————
1. VBA连接MySQL前的环境配置
系统中必须先安装有MySQL服务,这个就不多说了。可以选择使用官方安装包,或者使用PHP集成环境中的数据库都可以。
1.1 启用脚本支持
在使用前,需要先在VBE中启动数据库连接支持。按下Alt+F11打开VBE,在菜单栏选择“工具”-“引用”,在弹出的引用窗口中,找到”Microsoft ActiveX Data Objects 6.1 Library”和”Microsoft ActiveX Data Objects Recordset 6.0 Library”,把前面的框勾选上,点击确定即可。
1.2 安装MySQL ODBC 连接服务
选择操作系统及系统版本,下载对应的MSI文件安装即可
1.3 添加ODBC数据源
打开“控制面板”-“管理工具”-“ODBC 数据源”,在弹出的窗口中的“用户DSN”选项卡右侧,选择“添加”,在新数据库源中会出现两个MySQL驱动,分别为“MySQL ODBC 5.3 ANSI Driver”及”MySQL ODBC 5.3 Unicode Driver”,很明显两者的区别在于编码标准。我选择的是Unicode版本。选中其中一个,点完成即可
1.1和1.2的配置顺序可以随意,但1.3必须在1.2之后,否则在ODBC数据源中添加新数据源时,是找不到MySQL选项的。
2. VBA连接MySQL
在按照1.1步骤配置了环境支持后,就可以在VBA中使用代码连接MySQL了。
先定义连接对象
Dim conn as ADODB.Connection
Set conn = new ADODB.Connection
连接数据库
conn.ConnectionString = "Driver={MySQL ODBC 5.3 Unicode Driver};Server=localhost;DB=test;UID=root;PWD=root;OPTION=3;"
conn.Open
在这里可以看到,Driver变量的值是必须要和数据源中添加的新数据源一致的,否则会提示找不到数据源。
致此,数据库连接成功!
可以使用连接对象的State属性和Version属性查看数据库状态和版本(检查是否连接成功)
MsgBox("数据库状态:" & conn.State & vbCrLf & "数据库版本:" & conn.Version)
最后关闭数据库连接
conn.Close
Set conn = Nothing
3. VBA读写MySQL数据表
3.1 读取MySQL数据到Excel
代码如下: