Excel、VBA與MySQL交互

幾次更新失敗,我已經放棄在這裡更新了,有需要可以到博客園看:

Excel、VBA與MySQL交互 - 吳志 - 博客園

################################################################

本文主要涉及:

  1. VBA中的MySQL環境配置
  2. VBA連接MySQL資料庫
  3. VBA讀寫MySQL數據
  4. 在Excel中連接MySQL資料庫及數據讀寫

系統環境:

  • Windows 10
  • Excel 2013
  • XAMPP。其中集成的資料庫是MariaDB 10.1.13(如果不懂MariaDB為何物,可把它當成是MySQL。事實上它的使用和MySQL也幾乎完全一致)

------------------------------------------------------------------------------------------------------------------------

1. VBA連接MySQL前的環境配置

系統中必須先安裝有MySQL服務,這個就不多說了。可以選擇使用官方安裝包,或者使用PHP集成環境中的資料庫都可以。

1.1 啟用腳本支持

在使用前,需要先在VBE中啟動資料庫連接支持。按下Alt+F11打開VBE,在菜單欄選擇「工具」-「引用」,在彈出的引用窗口中,找到"Microsoft ActiveX Data Objects 6.1 Library"和"Microsoft ActiveX Data Objects Recordset 6.0 Library",把前面的框勾選上,點擊確定即可。

1.2 安裝MySQL ODBC 連接服務

下載地址:Download Connector/ODBC

選擇操作系統及系統版本,下載對應的MSI文件安裝即可

1.3 添加ODBC數據源

打開「控制面板」-「管理工具」-「ODBC 數據源」,在彈出的窗口中的「用戶DSN」選項卡右側,選擇「添加」,在新資料庫源中會出現兩個MySQL驅動,分別為「MySQL ODBC 5.3 ANSI Driver」及"MySQL ODBC 5.3 Unicode Driver",很明顯兩者的區別在於編碼標準。我選擇的是Unicode版本。選中其中一個,點完成即可

1.1和1.2的配置順序可以隨意,但1.3必須在1.2之後,否則在ODBC數據源中添加新數據源時,是找不到MySQL選項的。

2. VBA連接MySQL

在按照1.1步驟配置了環境支持後,就可以在VBA中使用代碼連接MySQL了。

先定義連接對象

Dim conn as ADODB.ConnectionnSet conn = new ADODB.Connectionn

連接資料庫

conn.ConnectionString = "Driver={MySQL ODBC 5.3 Unicode Driver};Server=localhost;DB=test;UID=root;PWD=root;OPTION=3;"nconn.Openn

在這裡可以看到,Driver變數的值是必須要和數據源中添加的新數據源一致的,否則會提示找不到數據源。

致此,資料庫連接成功!

可以使用連接對象的State屬性和Version屬性查看資料庫狀態和版本(檢查是否連接成功)

MsgBox("資料庫狀態:" & conn.State & vbCrLf & "資料庫版本:" & conn.Version)n

最後關閉資料庫連接

conn.ClosenSet conn = Nothingn

3. VBA讀寫MySQL數據表

3.1 讀取MySQL數據到Excel

代碼如下:


推薦閱讀:

Excel+VBA製作小遊戲:俄羅斯方塊
為什麼excel表格里數字設置為文本格式後,需要使用滑鼠單個點擊才會轉換成文本格式?
datanitro的實用性如何,真的可以完全替代VBA了么?

TAG:MicrosoftExcel | VBA | MySQL |