使用Excel VBA,ODBC连接查询MySQL表

阿斯特拉沙尔

尝试从MySQL 8.0表获取值时,Microsoft Excel出现了一些问题。我有一些从网上得到的代码(如下),但我不断收到错误消息。
我对此很陌生,所以我需要一些帮助。

我在使用64位计算机的Windows 10上。
时间轴:
→我一周前下载了MySQL,获得8.0工作台版本并安装了连接器(Connector / ODBC 8.0.12-X64)。
在MySQL Workbench中创建了一个名为sap的Schema
→在sap中创建了一个名为方差的表,其中填充了数据
到目前为止,一切都很好。
然后,我加载Excel,获取“ Microsoft ActiveX数据对象6.1库”和“ Microsoft Forms 2.0对象库”,然后创建一个模块并插入以下代码:

Sub MySQL()

Dim conn As New ADODB.Connection
Dim SQL As String
Dim rs As ADODB.Recordset

Set conn = New ADODB.Connection

conn.Open "DRIVER={MySQL ODBC 8.0 Driver}" _
& ";SERVER=" & "localhost" _
& ";DATABASE=" & "sap" _
& ";USER=" & "root" _
& ";PASSWORD=" & "password" _
& ";OPTION=3"

Set rs = New ADODB.Recordset

SQL = "SELECT * FROM sap.variance;"
rs.Open SQL, conn

ThisWorkbook.Sheets(1).Range("A1").CopyFromRecordset rs

rs.Close
Set rs = Nothing

End Sub

该文件在我的计算机上,因此localhost可以为我工作,我也尝试使用“ 127.0.0.1”
将该数据库(MySQL的模式)称为sap
。我正在使用的用户是root用户,
而密码是password(不是真的,但我不是说实话)

应该工作,不是吗?然后,致命部分:

“找不到[Microsoft] [ODBC驱动程序管理器]数据源名称,也未指定设备驱动程序”

调试突出显示行'conn.Open ....

我究竟做错了什么 ?

如果您的Excel是64位,则需要MySQL odbc 64位。如果您的Excel是32位,则需要ODBC 32位(甚至Windows是64位)。

一种简单的方法来知道您的Excel是32位还是64位,请打开Excel和任务管理器。在“进程”选项卡中,查看Excel是否具有(32位)后缀。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章