close

因工作需要, 最近才在接觸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, 北七~

arrow
arrow
    全站熱搜

    BJStation 發表在 痞客邦 留言(5) 人氣()