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