[英]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}
然后這段代碼將起作用
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
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.