1. 程式人生 > 其它 >【Excel】VBA程式設計 02 訪問MySQL資料庫

【Excel】VBA程式設計 02 訪問MySQL資料庫

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

指令碼執行結果