excel vba mysql 废话少说

excel vba mysql ado connection

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

在我看到的示例中(here and here, for instance) there's a driver of the form MySQL ODBC 5.x Driver. It seems that after installing the latest mysql connector / odbc download(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

在 运行 上面,我收到错误 [Microsoft][ODBC SQL Server Drive][DBNETLIB]SQL Server does not exist or access denied。 'native client 11.0' 驱动程序的错误是 Could not open a connection to SQL Server[53].

我已经测试了 MySQL workbench 中的连接参数,一切正常。怎么回事?

  1. Check if you are using the 32 bit or the 64 bit version of Microsoft Office.

  2. 基于以上,从download link

  3. 下载并安装合适的MySQL驱动
  4. ODBC 驱动程序安装完成后,检查 ODBC 管理单元以查看驱动程序是否已安装。

如果您使用的是 32 位 OS,那么一切都是 32 位的。使用 运行 -> odbcad32.exe -> 驱动程序选项卡。

如果您使用的是 64 位 OS,而 Microsoft Office 是 32 位,则使用 c:\windows\syswow64\odbcad32.exe -> 驱动程序选项卡。

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

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

  1. Create a System DSN 将 ODBC 管理单元与上面列出的 MySQL 驱动程序结合使用,并测试连接是否有效。

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

示例:

Driver={MySQL ODBC 5.3 ANSI Driver};Server=localhost;Database=myDataBase;
User=myUsername;Password=myPassword;Option=3;
  1. 一旦确定您可以成功创建到 MySQL 服务器的连接,然后 change the driver name in the registry (make sure to update both the registry keys) 并尝试使用您提供的新名称,例如 SQL Server.

记住:对于 x32 位驱动程序的 x64 位系统:

HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\ODBC\ODBCINST.INI\ODBC Drivers

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