vba-访问mysql
1 需要安装mysql-odbc驱动。比如:mysql-connector-odbc-8.0.28-winx64.msi 。
2 安装之后,打开windows的【控制面板】,找到【管理工具】菜单。
3 双击【管理工具】,会打开一个新界面。如果电脑内存大于4G就双击打开【ODBC 数据源(64 位)】,小于4G就双击打开【ODBC Data Sources (32-bit)】,下面以64位为例。
4 下图中如果没有建立数据源就需要点击【添加】按钮。
保存之后,就可以看到【用户数据源】多了一个数据源。
配置驱动
Function mysqlDriver() As String
Dim mysqldriver As String
mysqldriver = "Driver={MySQL ODBC 8.0 Unicode Driver};Server=localhost;DB=dbName;UID=root;PWD=12345678;OPTION=3;"
mysqlDriver = mysqldriver
End Function
说明:MySQL ODBC 8.0 Unicode Driver就是【管理工具】里面的名称。
server就是ip或者域名。
db就是数据库名称。
uid数据库用户名。
PWD数据库密码
公共方法:
' 通用方法,需要提供mysql驱动信息,返回mysql查询所有记录保存再str中 ,每列用 ^分割,每行用|分割
Function getMySQL_Data_Str(myqldriver As String, sql1 As String) As String
' 统一用count(1) 来判断
Dim allContent As String
allContent = ""
If myqldriver <> "" Then
' 准备驱动
Dim conn As ADODB.Connection
Dim rs As ADODB.Recordset
Set conn = New ADODB.Connection
Set rs = New ADODB.Recordset
'配置连接串
conn.ConnectionString = myqldriver
conn.Open
' a = InputBox(1, 1, sql1)
'从test数据库的YGXM表中取出所有数据
rs.Open sql1, conn
' 开始访问
If Not rs.EOF Then
rs.MoveFirst
Do While Not rs.EOF
' 依次拼接 ,这里就是获取到select语句中的每个字段,然后拼接。网络上获取每个字段方式很少。特此记录。
For j = 0 To rs.Fields.count - 1
allContent = allContent & rs.Fields(j) & "^"
Next
allContent = allContent & "|"
rs.MoveNext
Loop
Else
' 说明查询结果是空的
allContent = ""
End If
'关闭连接
rs.Close: Set rs = Nothing
conn.Close: Set conn = Nothing
End If
getMySQL_Data_Str = allContent
End Function
获取到这些字段也可以做其他操作。本文档只是用于解释获取到单个字段的值用作判断等。
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Blazor Hybrid适配到HarmonyOS系统
· Obsidian + DeepSeek:免费 AI 助力你的知识管理,让你的笔记飞起来!
· 解决跨域问题的这6种方案,真香!
· 一套基于 Material Design 规范实现的 Blazor 和 Razor 通用组件库
· 数据并发安全校验处理工具类