excel vba mysql ado连接

des*_*uho 3 mysql excel vba ado

我正在尝试在我的本地计算机上的excel和我的服务器上的MySQL数据库之间建立ADO连接.

在我看过的例子中(例如这里这里)有一个表单的驱动程序MySQL ODBC 5.x Driver.似乎在安装了最新的mysql 连接器/ odbc下载(32位,以匹配我的msexcel)之后,相关的注册表驱动程序文件HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBCINST.INI\ODBC Driver\现在被命名为"SQL Server"和"SQL Server Native Client 11.0".我没有成功建立与MySQL的连接.

我的VBA

Sub connect()
Dim Password As String
Dim SQLStr As String
Dim Server_Name As String
Dim User_ID As String
Dim Database_Name As String

Set rs = CreateObject("ADODB.Recordset") 'EBGen-Daily
Server_Name = "184.154.225.243"
Database_Name = "*******" ' Name of database
User_ID = "********" 'id user or username
Password = "*******" 'Password
Port = "3306"

SQLStr = "SELECT * FROM *******"

Set Cn = CreateObject("ADODB.Connection")
Cn.Open "Driver={SQL Server};Server=" & _
        Server_Name & ";Port=" & Port & ";Database=" & Database_Name & _
        ";Uid=" & User_ID & ";Pwd=" & Password & ";"

rs.Open SQLStr, Cn, adOpenStatic
Run Code Online (Sandbox Code Playgroud)

运行上面的操作后,我收到错误[Microsoft][ODBC SQL Server Drive][DBNETLIB]SQL Server does not exist or access denied."本机客户端11.0"驱动程序的错误是Could not open a connection to SQL Server[53].

我已经在MySQL工作台中测试了连接参数,所有这些都是有用的.这是怎么回事?

sla*_*oah 9

  1. 检查您使用的是32位还是64位版本的Microsoft Office.

  2. 基于以上所述,从下载链接下载并安装相应的MySQL驱动程序

  3. 完成ODBC驱动程序安装后,请检查ODBC管理单元以查看驱动程序是否已列为已安装.

如果您使用的是32位操作系统,那么一切都是32位.使用Run - > odbcad32.exe - > Drivers选项卡.

如果您使用的是64位操作系统,而Microsoft Office是32位,请使用c:\​​ windows\syswow64\odbcad32.exe - >驱动程序选项卡.

如果您使用的是64位操作系统,而Microsoft Office是64位,则使用"运行" - >"odbcad32.exe" - >"驱动程序"选项卡.

ODBC驱动程序

如果正确安装了MySQL驱动程序,它们应如上所示

  1. 使用ODBC snap in和上面列出的MySQL驱动程序创建系统DSN并测试连接以查看它是否有效.

  2. 尝试从VBA中创建ODBC时使用相同的参数.

例:

Driver={MySQL ODBC 5.3 ANSI Driver};Server=localhost;Database=myDataBase;
User=myUsername;Password=myPassword;Option=3;
Run Code Online (Sandbox Code Playgroud)
  1. 一旦确定您可以成功创建与MySQL服务器的连接,然后更改注册表中的驱动程序名称(确保更新两个注册表项)并尝试使用您提供的新名称,如SQL Server.

请记住:在用于x32位驱动程序的x64位系统上:

HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\ODBC\ODBCINST.INI\ODBC Drivers
Run Code Online (Sandbox Code Playgroud)

更改驱动程序名称后可能需要重新启动.