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