因工作需要, 最近才在接觸Excel的VBA, 基本的語法網路上都很多教學,
這次因為要弄個報表, 所以需要連接到資料庫
英文版教學: http://www.heritage-tech.net/908/inserting-data-into-mysql-from-excel-using-vba/
1. 先到MySQL官往下載 Connector/ODBC 的 Driver, 並安裝
http://dev.mysql.com/downloads/connector/odbc/
2. 在Excel中Visual Basic編輯器中找到工具(Tools) -> 設定引用項目(Reference Setting)
將 MicroSoft ActiveX Data Objects 2.8 Library,
MicroSoft ActiveX Data Objects Recordset 2.8 Library
勾選起來
3. 開始寫個function來連線吧:
Sub ConnetMySQL()
Set conn = New ADODB.Connection
'定義DB連線參數
conn.ConnectionString = "DRIVER = MySQL ODBC {Driver版本, 我是5.1} Driver;" & _
"SERVER = {你的SQL Server的IP}; " & _
"PORT = {連SQL的Port, 通常是3306}" & _
"DATABASE = {DB的Table的名稱};" & _
"UID = {帳號}; PASSWORD = {密碼}; OPTION=3"
conn.Open
End Sub
4. 執行MySQL的命令
Private Sub SQLTest()
'連接資料庫
Connect2Mysql
'定義SQl語法並執行
Set rs = New ADODB.Recordset
strSQL = "SELECT * FROM portal_service"
rs.Open strSQL, oConn, adOpenDynamic, adLockOptimistic
'一筆一筆的拿資料
Do Until rs.EOF
'選擇要貼上的欄位
Range("A1").Select
ActiveCell = rs.Fields("{資料表欄位}")
strOutput = rs.Fields("id")
rs.MoveNext
Loop
rs.Close
'MsgBox strOutput
oConn.Close
Set oConn = Nothing
Set rs = Nothing
End Sub
PS: 一開始弄得時候出現這個錯誤, "執行階段錯誤 '-2147467259 (80004005)', Automation錯誤, 無法指出的錯誤"
因為網路上找到的都是滿舊的教學, Driver版本都是3.51, 害我以為是driver沒裝好怎樣的, 後來才發現是我連線時DRIVER的設定是3.51, 但是我的driver是裝5.1版的XD, 北七~
留言列表