1、配置Windows連接驅動ODBC
因為是訪問MySQL,則對應的ODBC驅動由MySQL廠商發布
https://dev.mysql.com/downloads/connector/odbc/
這里系統位數有個坑,要下載32位版
安裝64位版后執行VBA腳本卻告訴我找不到ODBC驅動,想半天才知道系統位數原因
https://yebd1h.smartapps.cn/pages/blog/index?blogId=108721206&_swebfr=1&_swebFromHost=baiduboxapp
又或者因為連接參數不對
安裝ODBC驅動之后,找到【管理工具】
把下面這個地址粘貼的【資源管理器】的地址欄上直接訪問
控制面板\系統和安全\管理工具
分為64位和32位,雙擊32位
可以看到驅動列表中有了MySQL的驅動
可以新建一個【用戶DSN】來測試
2、Excel的VBA配置
找到VBA開發工具,引用菜單
追加VBA的數據庫訪問對象
追加兩項引用:
Mircosoft ActiveX Data Objects 6.1 Library Mircosoft ActiveX Data RecordSet 6.0 Library
3、編寫VBA執行腳本
然后可以在VBA中編寫數據庫訪問腳本:
Sub 連接本地Mysql() '///1. 引用ADO類庫:前期或者后期綁定 Dim conn As ADODB.connection Set conn = New ADODB.connection '以上兩句可簡寫Dim con As New ADODB.Connection
Dim rs As ADODB.Recordset Set rs = New ADODB.Recordset '以上兩句可簡寫Dim rs As New ADODB.Connection '///2. ADO建立對數據源的鏈接 '可簡寫con.Open "Driver={MySQL ODBC 8.0 Unicode Driver};Server=192.168.1.139;DB=test;UID=root;PWD=abc;OPTION=3;" conn.ConnectionString = "Driver={MySQL ODBC 8.0 Unicode Driver};Server=127.0.0.1;Port=3308;DB=my-info;UID=root;PWD=123456;OPTION=3;" conn.Open '///3. ADO執行SQL語言。 rs.Open "select * from application_website", conn '使用結果集對象執行sql語句 Range("A2").CopyFromRecordset rs '將數據輸出到工作表,不包含字段名 MsgBox ("連接成功!" & vbCrLf & "數據庫狀態:" & conn.State & vbCrLf & "數據庫版本:" & conn.Version) conn.Close Set conn = Nothing End Sub
腳本執行結果