可以使用以下代码在EXCEL上使用VBA连接MYSQL数据库 :
Dim strconnt As Stringstrconnt = ""
Set connt = New ADODB.Connection
Dim sevip, Db, user, pwd As String
'设服务器地址、所连数据,及登录用户密码
sevip = "localhost"
Db = “test"
user = "root"
pwd = "123456"
strconnt = "DRIVER={MySql ODBC 5.3 Unicode Driver}SERVER=" & sevip & "Database=" & Db & "Uid=" & user & "Pwd=" & pwd & "Stmt=set names GBK"
connt.ConnectionString = strconnt
connt.Open
编写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位的版本
下载上图中Windows(x86,32-bit),Zip Archive版本,在测试中,使用64位的版本无法连接到Mysql
把下载上述文件拷贝放到资源管理器里,放到合适位置,解压,点击里面的install.bat批处理文件。
从“控制面板”--->“管理工具”---->ODBC,打开以后,从这个里面无法看到Mysql的驱动,实际上使用的是下面32位的ODBC驱动
C:\Windows\SysWOW64\文件夹下的odbcca32.exe
3.连接示例
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=localhostPort=3306Database=db_hptmsUid=rootPwd=123456OPTION=3" conn.Open rs.Open "select fdEmpNo,fdEmpName from tbUser", conn With ThisWorkbook.Worksheets("MySqlData") .Visible = True .Range("a1:b1").Value = Array("EmpNo", "EmpName") .Range("A2").CopyFromRecordset rs .Activate End With rs.Close: Set rs = Nothing conn.Close: Set conn = Nothing MsgBox "处理完毕", vbOKOnly, "提示信息"End Sub
上述示例经过测试,可以正常连接到Mysql数据库,这里注意使用的ODBC连接的版本是32位,在测试中,使用64位的,始终无法正常打开连接。
VBA链接mysql数据库报错显示运行时错误有2个原因 第一:程序方面的错误,这个没什么好说的吧,捉“虫”即可 第二:也就是本文标题提到的错误实际上是由于MS Jet引擎没有对临时目录的写入权限,导致数据库创建失败。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)