|
想必大家都很喜歡用Word打字,用Excel進(jìn)行計(jì)算和規(guī)劃,用PowerPoint作幻燈片進(jìn)行展示…,但是這只用到了Office系列產(chǎn)品的很少的一部分功能。據(jù)調(diào)查,絕大部分用戶只用到了Office產(chǎn)品的20%的功能,很少有人注意到Visual Basic for Application。實(shí)際上,熟悉掌握VBA的功能可以使你的工作事半功倍,尤其對(duì)會(huì)計(jì)、金融等專業(yè)來(lái)說(shuō),作出一套好的宏,幾乎可以作到一勞永逸!最近,AutoCAD中也加入了VBA的功能,這不能不說(shuō)這是一個(gè)趨勢(shì)! VBA的功能決不只是讓病毒制造者用來(lái)制造麻煩的,VBA能被用來(lái)制造病毒的同時(shí)也正說(shuō)明了其功能的強(qiáng)大與易用!利用ADO對(duì)象,可以很方便的進(jìn)行數(shù)據(jù)庫(kù)操作!下面就是一個(gè)簡(jiǎn)單的數(shù)據(jù)交換的例子: 由于ADO對(duì)象不直接支持MySQL,所以必須先安裝MyODBC, 后者也是一個(gè)免費(fèi)產(chǎn)品,在www.mysql.org上有下載,安裝好了MyODBC, 就可以在ODBC數(shù)據(jù)源管理中配置一個(gè)數(shù)據(jù)源名稱,把它指向你想連接的MySQL數(shù)據(jù)庫(kù)。代碼如下:
Sub connectMySQL() '通過(guò)MyODBC去連接MySQL數(shù)據(jù)庫(kù),并將Microsoft SQL Server 7 '的數(shù)據(jù)轉(zhuǎn)進(jìn)mysql中 Dim sConnect As String, sSql As String, i As Long Dim cnMSSQL As New ADODB.Connection Dim cnMySQL As New ADODB.Connection '聲明并創(chuàng)建對(duì)象 連接 Dim rs As New ADODB.Recordset '聲明并創(chuàng)建對(duì)象 記錄集 Dim cm As New ADODB.Command '聲明并創(chuàng)建對(duì)象 命令
sConnect = "dsn=mysql1" '指定MySQL的數(shù)據(jù)源名稱 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))" '創(chuàng)建新的MySQL數(shù)據(jù)表語(yǔ)句 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 好了,想必大家對(duì)VBA有所了解了,同樣,如果要在工作表中引用MySQL中的數(shù)據(jù)也是同樣的簡(jiǎn)單,一旦宏作好了,想生成報(bào)表的話,用戶要作的工作只是點(diǎn)一下鼠標(biāo)就行了,利用Excel進(jìn)行二次開發(fā),效率可以超過(guò)任何用戶自行開發(fā)的報(bào)表系統(tǒng),因?yàn)槲覀冋驹贛icrosoft這個(gè)巨人的肩膀上!
轉(zhuǎn)載 奧索
|