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

 

获取到这些字段也可以做其他操作。本文档只是用于解释获取到单个字段的值用作判断等。

 

posted @   天城1324  阅读(286)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· Blazor Hybrid适配到HarmonyOS系统
· Obsidian + DeepSeek:免费 AI 助力你的知识管理,让你的笔记飞起来!
· 解决跨域问题的这6种方案,真香!
· 一套基于 Material Design 规范实现的 Blazor 和 Razor 通用组件库
· 数据并发安全校验处理工具类
点击右上角即可分享
微信分享提示