VBA和MySQL的交互

环境

  1. Office 2016, 32bit(注意这里的版本问题)
  2. MySQL 8.x

安装教程略过, 但是在安装驱动时需要注意安装对应的驱动和安装的office版本相对应, 32位的office安装32为, 64位office安装64为位.

(注: 建议使用MySQL installer来安装和管理MySQL, 方便配置和调整.)

odbc

VBA和MySQL的连接主要依赖组件

VBA端: 依赖于Microsoft ActiveX Data Object

(注: 或者可以补充勾选Microsoft ActiveX Data Objects Recordset 2.8 Library)

ado

中间件: ODBC(Open Database Connectivity)

配置连接

在Windows中需要配置

ODBC

注意配置需要区分开32位和64位和安装的office, ODBC一致)

打开后添加驱动

driver

unicode即可

配置数据库的连接

cofigs

填写完参数, 务必测试连接是否可用.

VBA连接测试

Option Explicit
        
Sub test()
    Dim con As New ADODB.Connection
    
    con.ConnectionString = "Driver={MySQL ODBC 8.0 Unicode Driver};Server=localhost;DB=test_db;UID=root;PWD=123456;OPTION=3;"
    con.Open
    MsgBox ("connect" & vbCrLf & "mysql" & con.State & vbCrLf & "mysql version" & con.Version)
    con.Close
    Set con = Nothing
End Sub

参数解析

"Driver={MySQL ODBC 8.0 Unicode Driver};Server=localhost;DB=test_db;UID=root;PWD=123456;OPTION=3;"

Driver: 驱动名称

Server: 数据库地址

DB: 需要连接的数据库具体名称

UID: 用户名称

PWD: 登录密码

OPTION: 取自官方文档, 和驱动的工作方式有关, 但是这个参数=3没有查到具体的含义, 在文档中没有提及3的含义

在局域网中访问

  1. 确保Windows防火墙(假如处于开启状态)的进站规则当中包含MySQL的端口处于开放的状态(默认端口3306/33060), 使用前可以先ping对应的主机是否可用.
  2. 配置数据库的权限, 允许局域网访问.