VBA 连接MySQL数据库

编写Excel VBA工具,连接并操作Mysql 数据库。
     系统环境:
        OS:Win7 64位 英文版

        Office 2010 32位 英文版

1、VBA连接MySql前的准备
        Tools--->References..---->引用
        勾选Microsoft ActiveX Data Objects 2.8 Librarys 和Microsoft ActiveX Data Objects Recordset 2.8 Librarys

      如下图所示:

      

2、安装Mysql ODBC连接服务
        下载连接:https://dev.mysql.com/downloads/connector/odbc
        注意:这里使用32位的版本

     如下图所示:

     

3、下载上图中Windows(x86,32-bit),Zip Archive版本,在测试中,使用64位的版本无法连接到Mysql
        把下载上述文件拷贝放到资源管理器里,放到合适位置,解压,点击里面的install.bat批处理文件。
        从“控制面板”--->“管理工具”---->ODBC,打开以后,从这个里面无法看到Mysql的驱动,实际上使用的是下面32位的ODBC驱动
        C:\Windows\SysWOW64\文件夹下的odbcad32.exe

4、VBA 代码如下:

 

Sub TestConnectTodb()
    Dim conn As ADODB.Connection
    Dim rs As ADODB.Recordset
    Set conn = New ADODB.Connection
    Set rs = New ADODB.Recordset
    conn.ConnectionString = "Driver={MySQL ODBC 5.3 Unicode Driver};Server=localhost;Port=3306;Database=test;Uid=root;Pwd=123456;OPTION=3;"
    conn.Open
    rs.Open "select * from employee", conn
    With ThisWorkbook.Worksheets("Sheet1")
        .Range("B2").CopyFromRecordset rs  '从B2位置开始复制到Sheet1页面中
    End With
   
'     Sheet1.Cells(1, 1) = rs(0)   'rs(i):第i个字段的数据,i为0至rs.Fields.Count-1
'     Sheet1.Cells(1, 2) = rs(1)   
   
    rs.Close: Set rs = Nothing
    conn.Close: Set conn = Nothing
    MsgBox "处理完毕!"
End Sub

代码演示结果如下:

     数据库数据有两条

    

    将数据全部取出:

     

关于 Set rs = New ADODB.Recordset  中的“rs” 参考函数:

       在RecordSet组件中,常用的属性和方法有:
  rs.Fields.Count:RecordSet对象字段数。
  rs(i).Name:第i个字段的名称,i为0至rs.Fields.Count-1
  rs(i):第i个字段的数据,i为0至rs.Fields.Count-1
  rs("字段名"):指定字段的数据。
  rs.Record.Count:数据记录总数。
  rs.EOF:是否最后一条记录。
  rs.MoveFirst:指向第一条记录。
  rs.MoveLast:指向最后一条记录。
  rs.MovePrev:指向上一条记录。
  rs.MoveNext:指向下一条记录。
  rs.GetRows:将数据放入数组中。
  rs.Properties.Count:ADO的ResultSet或Connection的属性个数。
  rs.Properties(item).Name:ADO的ResultSet或Connection的名称。
  rs.Properties:ADO的ResultSet或Connection的值。

 

  • 1
    点赞
  • 46
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值