2013-12-04

VBA連接MySQL資料庫

一般我們寫程式,若要功能化使用,最終我們還是會將資料放在資料庫軟體,藉由資料庫軟體強大的搜尋功能來快速搜尋您要的資料...


市面上付費的資料庫不少,但是都需要付費。若要找免費的,若資料量不大,或許你會選用MS的Office Access,若資料大一點或許是MSSQL Express,單終究會有不少限制讓你要去買付費版的MSSql。在整合性上,因為與VBA屬同家公司產品,想必是可以整合得不錯。這部份我就不多贅言..

今天所利用的是MySql資料庫,我的想法是這樣,一般我們都會利用LAMP來架網站,其中資料庫會選用免費的MySql來做後端資料庫,使用者網頁丟訊息給Web ->Web再到後端資料庫撈資料 -> 將資料丟給Web ->Web再將合適的內容顯示給使用者。使用者每次點擊就四次循環。 人多,兩個伺服器可忙呢。若內部人員的後台程式也是利用網頁方式處理,這樣子伺服器可更忙了,所以....內部人員能不能直接跳過Web伺服器直接到資料庫中撈資料呢...這樣子就省得Web伺服器忙得要死,甚至卡住或浪費伺服器資源。

VBA要連到MySql的作法與連接其他資料庫作法大同小異,差別只在連接字串的不同。若要連接至MySql,你需要先行安裝MySql ODBC Driver,連線字串的寫法如下:

Dim conn As New ADODB.Connection
Dim rs As New ADODB.Recordset

server_name = "127.0.0.1"       ' 伺服器IP,127.0.0.1為目前本機
database_name = "DBName"       ' 連線資料庫名稱
user_id = "User"         ' 資料庫登入帳號
Password = "Password"       ' 資料庫登入密碼

Dim connStr As String  '資料庫連線字串,其中5.1為ODBC驅動程式版本,要配合你安裝的驅動。
connStr = "DRIVER={MySQL ODBC 5.1 Driver}" _ 
                    & ";SERVER=" & server_name _
                    & ";DATABASE=" & database_name _
                    & ";UID=" & user_id _
                    & ";PWD=" & Password

conn.Open connStr
 ......

這關過了,就表示已經連上伺服器了,剩下的就是Recordset將資料撈出的動作了。



沒有留言:

張貼留言