想必大家都很喜歡用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這個巨人的肩膀上!
轉載 奧索
|