Excel是一個非常強大的電子表格處理工具,而MySQL是一個高性能的開源關系數據庫管理系統。
當我們需要把Excel中的數據與MySQL數據庫中的數據進行匹配時,可以用以下方法:
Sub MatchData() ' 定義Excel對象 Dim excelApp As Excel.Application Dim mainWorkbook As Workbook Set excelApp = CreateObject("Excel.Application") ' 定義MySQL連接對象 Dim conn As ADODB.Connection Set conn = CreateObject("ADODB.Connection") ' 定義MySQL記錄集對象 Dim rst As ADODB.Recordset Set rst = CreateObject("ADODB.Recordset") ' 打開Excel文件 Set mainWorkbook = excelApp.Workbooks.Open("C:\matchdata.xlsx") ' 連接MySQL數據庫 conn.Open "Provider=MSDASQL;DRIVER={MySQL ODBC 5.1 Driver};SERVER=localhost;DATABASE=mydb;UID=root;PWD=password" ' 準備執行SQL語句 Dim sql As String sql = "SELECT `id`, `name`, `tel` FROM `mytable`" rst.Open sql, conn, adOpenStatic, adLockOptimistic ' 遍歷Excel中的數據 For i = 1 To mainWorkbook.Sheets(1).UsedRange.Rows.Count Dim name As String Dim tel As String name = mainWorkbook.Sheets(1).Cells(i, 1).Value tel = mainWorkbook.Sheets(1).Cells(i, 2).Value ' 查找匹配的MySQL記錄 rst.MoveFirst While Not rst.EOF If rst.Fields("name").Value = name And rst.Fields("tel").Value = tel Then ' 找到匹配的記錄,更新Excel中的數據 mainWorkbook.Sheets(1).Cells(i, 3).Value = rst.Fields("id").Value Exit While End If rst.MoveNext Wend Next ' 關閉所有對象 rst.Close conn.Close mainWorkbook.Close SaveChanges:=True excelApp.Quit Set rst = Nothing Set conn = Nothing Set mainWorkbook = Nothing Set excelApp = Nothing End Sub
上面的VBA代碼可以實現把Excel中的姓名和電話號碼與MySQL數據庫中的姓名和電話號碼進行匹配,找到匹配的記錄后將MySQL的id記錄到Excel中。
當然,前提是必須先安裝MySQL ODBC驅動程序才能連接MySQL數據庫,另外需要修改連接字符串中的服務器名、數據庫名、用戶名和密碼等參數。