摘要:系統(tǒng)主要實(shí)現(xiàn)了不同數(shù)據(jù)庫(kù)文件的轉(zhuǎn)換,針對(duì)Word、Excel存儲(chǔ)數(shù)據(jù)量有限及Access、FoxPro中數(shù)據(jù)更新、編輯復(fù)雜的缺點(diǎn),實(shí)現(xiàn)常用OA文件(Word、Excel、Access)與數(shù)據(jù)庫(kù)文件(FoxPro、Paradox)的數(shù)據(jù)交流,同時(shí)不同數(shù)據(jù)庫(kù)如Access、FoxPro、Paradox間的數(shù)據(jù)也可以進(jìn)行傳遞存儲(chǔ)。系統(tǒng)在實(shí)現(xiàn)數(shù)據(jù)傳輸上主要采用了ADO(ActiveX Data Objects)技術(shù),實(shí)現(xiàn)VB與大型數(shù)據(jù)庫(kù)無(wú)數(shù)據(jù)源的連接。
關(guān)鍵詞:OA文件;Visual Basic;數(shù)據(jù)庫(kù)文件
中圖分類號(hào):G270.7 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1007-9599 (2012) 20-0000-02
1 引言
隨著企業(yè)信息化的不斷發(fā)展,辦公軟件已經(jīng)成為企業(yè)日常辦公中不可或缺的工具。作為Office的三個(gè)重要成員,Word、Excel和Access之間的數(shù)據(jù)交換是必需的,也是非常重要的,尤其是在各自生成的表格數(shù)據(jù)之間。根據(jù)分析,Word 和Excel之間可以直接交換數(shù)據(jù);Excel和Access之間可以直接交換數(shù)據(jù);Access的數(shù)據(jù)可以直接被Word引用,但Word的數(shù)據(jù)不能直接通過(guò)復(fù)制或引用變成Access的格式,必須通過(guò)Excel或文本文件進(jìn)行過(guò)渡。
由于Word和Excel存儲(chǔ)的數(shù)據(jù)量有限,必須將大量的數(shù)據(jù)導(dǎo)入到大型數(shù)據(jù)庫(kù)中進(jìn)行存儲(chǔ)管理。通過(guò)VB可以編寫(xiě)代碼簡(jiǎn)單、界面美觀的應(yīng)用程序,直接面向用戶方便使用,并且對(duì)于一些平常使用的復(fù)雜的、無(wú)規(guī)則的報(bào)表,如報(bào)表中的嵌套、斜線、交叉線問(wèn)題,進(jìn)行處理,轉(zhuǎn)換為Access或Visual FoxPro中的數(shù)據(jù)存儲(chǔ),方便用戶的使用。
2 系統(tǒng)分析
2.1 需求分析
本系統(tǒng)采用Visual Basic語(yǔ)言,通過(guò)編程實(shí)現(xiàn)不同格式文件中表格中數(shù)據(jù)的傳遞,在熟悉VBA編程開(kāi)發(fā)語(yǔ)言,Visual FoxPro,Access數(shù)據(jù)庫(kù)的前提下,實(shí)現(xiàn)數(shù)據(jù)庫(kù)中數(shù)據(jù)的轉(zhuǎn)移存儲(chǔ)。系統(tǒng)的總體目標(biāo)是開(kāi)發(fā)并實(shí)現(xiàn)常用OA文件與常用數(shù)據(jù)庫(kù)文件交互系統(tǒng),該系統(tǒng)主要實(shí)現(xiàn)常用的Office軟件中的Excel和Word轉(zhuǎn)換成ACCESS表、DBF表、DB表。
系統(tǒng)模塊主要包括:使用VB實(shí)現(xiàn)Word轉(zhuǎn)換為Excel,Excel表轉(zhuǎn)為Access表,重點(diǎn)研究Access轉(zhuǎn)為XLS,DBF,DB表,從而實(shí)現(xiàn)Word、Excel表中的數(shù)據(jù)轉(zhuǎn)移到各種數(shù)據(jù)庫(kù)中。
2.2 功能分析
開(kāi)發(fā)本系統(tǒng)的目的就是幫助企業(yè)提高工作效率,實(shí)現(xiàn)常用Office軟件(Word、Excel)表格中數(shù)據(jù)的轉(zhuǎn)移存儲(chǔ),便于數(shù)據(jù)的即刻轉(zhuǎn)移及海量存儲(chǔ),本系統(tǒng)還實(shí)現(xiàn)了不同數(shù)據(jù)庫(kù)中數(shù)據(jù)的交換,如Access到FoxPro、Paradox數(shù)據(jù)的轉(zhuǎn)換。根據(jù)系統(tǒng)所要實(shí)現(xiàn)的目的和任務(wù),總結(jié)出本系統(tǒng)最終實(shí)現(xiàn)的主要功能如下:
Word表格中數(shù)據(jù)傳遞:
對(duì)一篇包含文字和表格的Word文檔提取表格中的數(shù)據(jù)存儲(chǔ)到Excel及Access中;
Excel數(shù)據(jù)傳遞:
提取Excel中的數(shù)據(jù)存儲(chǔ)到Access、Paradox、FoxPro,便于大量數(shù)據(jù)的轉(zhuǎn)移存儲(chǔ);
Access數(shù)據(jù)傳遞:
把Access中的數(shù)據(jù)轉(zhuǎn)為Excel表格中的數(shù)據(jù),便于編輯和動(dòng)態(tài)更新等,同時(shí)轉(zhuǎn)換為其他數(shù)據(jù)庫(kù)文件,如.dbf,.db數(shù)據(jù)庫(kù)文件。
3 系統(tǒng)設(shè)計(jì)
3.1 總體設(shè)計(jì)方案
經(jīng)過(guò)分析,系統(tǒng)主要模塊間的數(shù)據(jù)傳遞如下:
(1)系統(tǒng)模塊:
系統(tǒng)啟動(dòng)時(shí)有一個(gè)登錄用戶,用戶登錄后可以對(duì)數(shù)據(jù)進(jìn)行轉(zhuǎn)換。
(2)數(shù)據(jù)轉(zhuǎn)換模塊:
需轉(zhuǎn)換的文件:選擇需要轉(zhuǎn)換的文件格式,包括Word文件,Excel文件,Access文件。
導(dǎo)出的文件格式:用戶根據(jù)需要選擇要導(dǎo)出的文件格式,對(duì)于不同的原始文件有不同的導(dǎo)出類型。
文件路徑:選擇需轉(zhuǎn)換文件的路徑。
導(dǎo)出文件名:導(dǎo)出文件名主要為保存在Access數(shù)據(jù)表中的文件名,在本系統(tǒng)中,Word、Excel文件轉(zhuǎn)換為其他數(shù)據(jù)庫(kù)文件都是先轉(zhuǎn)為Access數(shù)據(jù)表實(shí)現(xiàn)的,因此每次轉(zhuǎn)換都需要相應(yīng)給Access的文件命名。
3.2 系統(tǒng)實(shí)現(xiàn)
首先對(duì)全局變量進(jìn)行聲明,對(duì)于Word和Excel文檔中的變量要注意區(qū)分開(kāi),在定義變量之前注意相應(yīng)的引用有沒(méi)有添加。
(1)把Access文件導(dǎo)出為.XLS,.DB,.DBF文件過(guò)程:
先定義需導(dǎo)入的文件路徑,在調(diào)用時(shí)通過(guò)獲取Text1.text中的字符串獲得,并SQL語(yǔ)句獲取Access中的數(shù)據(jù)導(dǎo)入到相應(yīng)格式的數(shù)據(jù)庫(kù)文件中,導(dǎo)出的文件格式通過(guò)然后通過(guò)Combo2.Text 獲得,同時(shí)通過(guò)ADO設(shè)置指向相應(yīng)的數(shù)據(jù)庫(kù),其中各數(shù)據(jù)庫(kù)的插入記錄都可以通過(guò)db.execute執(zhí)行。
(2)Excel文件轉(zhuǎn)為Access文件過(guò)程:
把Excel文件轉(zhuǎn)為Access文件,執(zhí)行代碼和將Excel轉(zhuǎn)為Access文件基本類似,主要是轉(zhuǎn)換的數(shù)據(jù)源不同,此過(guò)程中通過(guò)Data控件打開(kāi)Excel數(shù)據(jù)庫(kù),再通過(guò)VB自帶的db.Execute將數(shù)據(jù)直接導(dǎo)入Access數(shù)據(jù)庫(kù)。
關(guān)鍵代碼如下:
Private Sub ExportExcelSheetToAccess(sSheetName As String, _
sExcelPath As String, sAccessTable As String, sAccessDBPath As String)
'將 Excel 的文件導(dǎo)入 Access文件
Set db = OpenDatabase(sExcelPath, True, False, \"Excel 5.0\")
'選擇要導(dǎo)入的Excel文件的路徑,版本
Call db.Execute(\"Select * into [;database=\" sAccessDBPath \"].\" _
sAccessTable \" FROM [\" sSheetName \"$]\")
End Sub
3.3 系統(tǒng)的編譯和發(fā)布
在編寫(xiě)代碼過(guò)程中,需要單獨(dú)調(diào)試每個(gè)窗體,系統(tǒng)實(shí)現(xiàn)后就是發(fā)布,首先是生成一個(gè)可以執(zhí)行的文件,把工程屬性標(biāo)簽頁(yè)中的啟動(dòng)對(duì)象設(shè)置為Form1,然后選擇文件下的生成Client_MIS.exe命令。使用Visual Studio 6.0中的Package Deployment Tools制作安裝程序?qū)⑾到y(tǒng)進(jìn)行打包。
4 總結(jié)與展望
本系統(tǒng)能完成常用Office軟件(Word、Excel)中的數(shù)據(jù)轉(zhuǎn)換為Access、FoxPro中的數(shù)據(jù),同時(shí)實(shí)現(xiàn)了Access、FoxPro、Paradox不同類型數(shù)據(jù)庫(kù)間數(shù)據(jù)的轉(zhuǎn)換,即克服了Word、Excel等辦公軟件存儲(chǔ)數(shù)據(jù)量有限的缺點(diǎn),同時(shí)可以實(shí)現(xiàn)各類型數(shù)據(jù)庫(kù)中數(shù)據(jù)更新復(fù)雜表格,方便用戶的使用。
參考文獻(xiàn):
[1]劉燦,郭常圳編著.VB.NET網(wǎng)絡(luò)應(yīng)用開(kāi)發(fā)例學(xué)與實(shí)踐[M].清華大學(xué)出版社,2006(1).
[2]Piane Zak著.Programming with Microsoft Visual Basic6.0[M].電子工業(yè)出版社,2007,7(1).
[3]賴?yán)?,黃學(xué)軍主編.Office辦公軟件案例教程[M].人民郵電出版社,2008,8(1)