想必大家都很喜歡用Word打字,用Excel進行計算和規劃,用PowerPoint作幻燈片進行展示…,但是這只用到了Office系列產品的很少的一部分功能。據調查,絕大部分用戶只用到了Office產品的20%的功能,很少有人注意到Visual Basic for Application。實際上,熟悉掌握VBA的功能可以使你的工作事半功倍,尤其對會計、金融等專業來說,作出一套好的宏,幾乎可以作到一勞永逸!最近,AutoCAD中也加入了VBA的功能,這不能不說這是一個趨勢!
VBA的功能決不只是讓病毒制造者用來制造麻煩的,VBA能被用來制造病毒的同時也正說明了其功能的強大與易用!利用ADO對象,可以很方便的進行數據庫操作!下面就是一個簡單的數據交換的例子:
由於ADO對象不直接支持MySQL,所以必須先安裝MyODBC, 後者也是一個免費產品,在www.mysql.org上有下載,安裝好了MyODBC, 就可以在ODBC數據源管理中配置一個數據源名稱,把它指向你想連接的MySQL數據庫。代碼如下:
Sub connectMySQL()
'通過MyODBC去連接MySQL數據庫,並將Microsoft SQL Server 7
'的數據轉進MySQL中
Dim sConnect As String, sSql As String, i As Long
Dim cnMSSQL As New ADODB.Connection
Dim cnMySQL As New ADODB.Connection
'聲明並創建對象 連接
Dim rs As New ADODB.Recordset '聲明並創建對象 記錄集
Dim cm As New ADODB.Command '聲明並創建對象 命令
sConnect = "dsn=mysql1" '指定MySQL的數據源名稱
cnMySQL.Open sConnect '連接到 MySQL
sConnect="Provider=SQLOLEDB.1;Persist Security Info=False;User ID=sa;pwd=123456;Initial Catalog=softdown;Data Source=ntserver"
'連接到 ms SQL Server 7
cnMSSQL.Open sConnect
'sSql = "create table softinfo (softNum smallint,softname varchar(70),softdesc blob," & _
"soFTPath varchar(30),softleng varchar(10),softclass varchar(10),softsugest tinyint(1)," & _
"softdown smallint(4))" '創建新的MySQL數據表語句
sSql = "select * from softinfo order by softnum"
rs.Open sSql, cnMSSQL, 1, 1
While Not rs.EOF
sSql = "insert into softinfo values (" & Trim(rs(0).Value) & ",'" & Trim(rs(1).Value) & _
"','" & Trim(rs(2).Value) & "','" & Trim(rs(3).Value) & "','" & Trim(rs(4).Value) & _
"'
'" & Trim(rs(5).Value) & "'," & Trim(rs(6).Value) & "," & Trim(rs(7).Value) & ")"
cm.ActiveConnection = cnMySQL
cm.CommandType = adCmdText
cm.CommandText = sSql
cm.Execute
rs.MoveNext
Wend
rs.Close
Set rs = Nothing
cnMySQL.Close
Set cnMySQL = Nothing
cnMSSQL.Close
Set cnMSSQL = Nothing
End Sub
好了,想必大家對VBA有所了解了,同樣,如果要在工作表中引用MySQL中的數據也是同樣的簡單,一旦宏作好了,想生成報表的話,用戶要作的工作只是點一下鼠標就行了,利用Excel進行二次開發,效率可以超過任何用戶自行開發的報表系統,因為我們站在Microsoft這個巨人的肩膀上!