簡體   English   中英

將MySQL(多個實例)數據庫與Excel VBA連接

[英]Connect MySQL(multiple instances) Database with Excel VBA

我的電腦中安裝了多個MySQL實例,分別是instance1和instance2 ...

  • 第一個實例數據目錄為“ C:\\ MYSQL2 \\ Data”,地址為:localhost,端口= 3306;

  • 第二個實例數據目錄為“ C:\\ ProgramData \\ MySQL \\ MySQL Server 5.7 \\ Data”,地址為:localhost,端口= 3308;


server_name = "localhost"
port = "3308" 
database_name = "test2" 
user_id = "root" 
password = "xxxx" 

Set conn = New ADODB.Connection
conn.Open "DRIVER={MySQL ODBC 3.51 Driver}" _
& ";Data Source=localhost" _
& ";SERVER=" & server_name _
& ";PORT=" & port _
& ";DATABASE=" & database_name _
& ";UID=" & user_id _
& ";PWD=" & password _
& ";OPTION=16427" 

當我運行以上代碼以連接第二實例數據庫時,它向我顯示錯誤:

運行時錯誤“ -2147467259(80004005)”:[Microsoft] [ODBC驅動程序管理器]找不到數據源名稱,未指定默認驅動程序

此代碼還顯示了我的第一個實例的錯誤,該實例的服務器名稱為localhost並且端口為= 3306

僅安裝默認實例的地方,此代碼運行良好。

在連接字符串中,如果

Driver={MySQL ODBC 8.0 Unicode Driver}

那么如果您打開ODBC數據源(32位)而不是ODBC數據源(64位)

在此處輸入圖片說明

看到相同的名字

在此處輸入圖片說明

然后這段代碼將起作用

Public Sub ask_sql1()
    Dim SQL As String
    SQL = "SELECT * FROM Users"

    Dim Conn As ADODB.Connection
    Set Conn = New ADODB.Connection
    Conn.ConnectionString = "Driver={MySQL ODBC 8.0 Unicode Driver};Server=127.0.0.1;Database=test;UID=root;PWD=*********"
    Conn.Open

    Dim recordSet As ADODB.recordSet
    Dim Field As ADODB.Field

    Set recordSet = New ADODB.recordSet
    recordSet.Open SQL, Conn, adOpenStatic, adLockReadOnly, adCmdText

    If recordSet.State Then
        For Each Field In recordSet.Fields
            MsgBox Field.Name
        Next Field
        Set recordSet = Nothing
    End If

        Conn.Close

End Sub

還是64或32的辦公室

在此處輸入圖片說明

您可以添加ODBC數據源(32位) / 驅動程序的屏幕截圖嗎?

暫無
暫無

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

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