簡體   English   中英

使用 Excel VBA、ODBC 連接查詢 MySQL 表

[英]Query MySQL Table with Excel VBA, ODBC Connection

我在嘗試從 MySQL 8.0 表中獲取值時遇到了 Microsoft Excel 的一些問題。 我有一些從網上得到的代碼(如下),但我不斷收到錯誤消息。
我在這方面很新,所以我需要一些幫助。

我在 Windows 10 上使用 64 位計算機。
時間線:
→ 我一周前下載了 MySQL,獲得了 8.0 工作台版本並安裝了連接器 (Connector/ODBC 8.0.12 - X64)。
→ 我在 MySQL Workbench 中創建了一個名為sap的架構
→ 我在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 用戶
密碼是密碼(不是真的,但我不是說真的)

應該工作,不是嗎? 然后,致命的部分:

“[Microsoft][ODBC 驅動程序管理器] 未找到數據源名稱且未指定設備驅動程序”

調試突出顯示行 'conn.Open ....

我究竟做錯了什么 ?

如果您的 Excel 是 64 位,則需要 MySQL odbc 64 位。 如果您的 Excel 是 32 位,則您需要 ODBC 32 位(即使您的 Windows 是 64 位)。

了解您的 Excel 是 32 位還是 64 位的簡單方法,打開 Excel 和任務管理器。 在 processus 選項卡中,查看 Excel 是否具有(32 位)后綴。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM