用excelvba、odbc连接查询mysql表

irlmq6kh  于 2021-06-18  发布在  Mysql
关注(0)|答案(1)|浏览(397)

当我试图从mysql 8.0表中获取值时,microsoftexcel有点问题。我有一些代码(以下)我从网上得到,但我不断得到一个错误消息。
我是个新手,所以我需要一些帮助。
我用的是64位的Windows10。
时间线:
→ 我一周前下载了mysql,得到了8.0工作台版本,并安装了连接器(connector/odbc8.0.12-x64)。
→ 我在mysql工作台中创建了一个名为sap的模式
→ 我在sap中创建了一个名为variance filled with data的表
到目前为止,还不错。
然后,我加载excel,获取“microsoft activex data objects 6.1 library”和“microsoft forms 2.0 object library”,创建一个模块并插入以下代码:

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
我使用的用户是根用户
密码就是密码(不是真的,但我不是说真的)
应该有用吧?然后,致命的部分:
“[microsoft][odbc驱动程序管理器]找不到数据源名称,也没有指定设备驱动程序”
debug突出显示“conn.open…”行。。。。
我做错什么了?

2w3kk1z5

2w3kk1z51#

如果您的excel是64位的,则需要mysql odbc 64位。如果您的excel是32位,则需要odbc 32位(即使您的windows也是64位)。
要知道您的excel是32位还是64位,请打开excel和任务管理器。在processus选项卡中,查看excel是否有(32位)后缀。

相关问题