明輝手游網(wǎng)中心:是一個(gè)免費(fèi)提供流行視頻軟件教程、在線學(xué)習(xí)分享的學(xué)習(xí)平臺(tái)!

Microsoft SQL Server 7.0 的數(shù)據(jù)遷移到MySQL上的一種方法(轉(zhuǎn))

[摘要]想必大家都很喜歡用Word打字,用Excel進(jìn)行計(jì)算和規(guī)劃,用PowerPoint作幻燈片進(jìn)行展示…,但是這只用到了Office系列產(chǎn)品的很少的一部分功能。據(jù)調(diào)查,絕大部分用戶只用到了Office產(chǎn)品的20%的功能,很少有人注意到Visual Basic for Application。實(shí)際上,熟...
想必大家都很喜歡用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è)來說,作出一套好的宏,幾乎可以作到一勞永逸!最近,AutoCAD中也加入了VBA的功能,這不能不說這是一個(gè)趨勢(shì)!
VBA的功能決不只是讓病毒制造者用來制造麻煩的,VBA能被用來制造病毒的同時(shí)也正說明了其功能的強(qiáng)大與易用!利用ADO對(duì)象,可以很方便的進(jìn)行數(shù)據(jù)庫操作!下面就是一個(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ù)庫。代碼如下:

Sub connectMySQL()
'通過MyODBC去連接MySQL數(shù)據(jù)庫,并將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ù)表語句
 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ā),效率可以超過任何用戶自行開發(fā)的報(bào)表系統(tǒng),因?yàn)槲覀冋驹贛icrosoft這個(gè)巨人的肩膀上!


 

轉(zhuǎn)載 奧索