基于ExcelVBA中小學(xué)校收費系統(tǒng)的設(shè)計與實現(xiàn)_第1頁
基于ExcelVBA中小學(xué)校收費系統(tǒng)的設(shè)計與實現(xiàn)_第2頁
基于ExcelVBA中小學(xué)校收費系統(tǒng)的設(shè)計與實現(xiàn)_第3頁
基于ExcelVBA中小學(xué)校收費系統(tǒng)的設(shè)計與實現(xiàn)_第4頁
基于ExcelVBA中小學(xué)校收費系統(tǒng)的設(shè)計與實現(xiàn)_第5頁
已閱讀5頁,還剩12頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、陛上一記錄O返回O F載©打ED © Email 下一記錄【標(biāo)題】基于Excel VBA 中小學(xué)校收費系統(tǒng)的設(shè)計與實現(xiàn)【作者】陳松環(huán)【關(guān)鍵詞】Excel VBA 辦公自動化中小學(xué)校收費系統(tǒng)【指導(dǎo)老師】譚海軍【專業(yè)】計算機(jī)科學(xué)與技術(shù)【正文】1前言1.1 研究背景辦公自動化作為一種新興的辦公手段,擁有強(qiáng)大的數(shù)據(jù)處理、分析能力,它有足夠的潛力“打破”傳統(tǒng)的手工辦公的束縛,徹底改變辦公模式,提高辦公效率、增強(qiáng)數(shù)據(jù)安全性。無論是從數(shù)量上還是質(zhì)量上,辦公自動化都體現(xiàn)出了強(qiáng)大的優(yōu)勢。對于學(xué)校而言,收費及其收費的管理一直以來都是難題。辦公自動化系統(tǒng)的進(jìn)駐徹底改變了現(xiàn)狀。無論是從速度上還是從

2、效率上都得到了極大的提高。同時減輕了參與人員的勞動強(qiáng)度。 Microsoft Excel是一個功能強(qiáng)大、廣泛使用的電子表格軟件,可實現(xiàn)多重安全 保護(hù)(文件密碼保護(hù)、數(shù)字簽名、宏安全性 ),它的內(nèi)置控制語言是VBA (Visual Basic For Application), 可極大地增強(qiáng) Excel 的數(shù)據(jù)處理能力,以上特點使得學(xué)生收費系統(tǒng)可以利用Excel的VBA開發(fā)完成。目前國內(nèi)外很多教學(xué)、科研、設(shè)計等部門都在運(yùn)用這一軟件從事日常的數(shù)據(jù)表格處理。1.2 國內(nèi)外辦公自動化發(fā)展情況辦公自動化于50年代在美國和日本首先興起,最初只是具有電子數(shù)據(jù)處理(EDP)的簿記功能,60年代被管理信息系統(tǒng)(

3、MIS)取代,直到70年代后期才形成涉及多 種技術(shù)的新型綜合學(xué)科一辦公自動化(OA)。80年代,國外辦公自動化得到了飛速發(fā)展,許多著名的計算機(jī)軟硬件公司都躋身于這一巨大的市場。進(jìn)入90年代以來,辦公自動化在世界主要發(fā)達(dá)國家得到蓬勃發(fā)展。21世紀(jì)辦公自動化主要向個性化、移動辦公和智能化方向發(fā)展。我國的OA軟件業(yè)經(jīng)過從80年代末至今多年的發(fā)展,已從最初的提供面向單機(jī)的輔助辦公產(chǎn)品,發(fā)展到今天的可提供面向企業(yè)級應(yīng)用的大型協(xié)同工作產(chǎn)品。我國的OA軟件廠商在走過一條艱難的創(chuàng)業(yè)之路的同時,也積累了許多先進(jìn)的技術(shù),培養(yǎng)了大量優(yōu)秀的人才,為我國實現(xiàn)全面信息化社會打下了扎實的基礎(chǔ)。1.3 學(xué)校收費系統(tǒng)的現(xiàn)狀諸多

4、高級程序語言的出現(xiàn)和學(xué)校對收費系統(tǒng)的需求量促使了學(xué)校收費系統(tǒng)無論是 量上還是質(zhì)上都達(dá)到了很高的標(biāo)準(zhǔn),功能也是應(yīng)有盡有。 收費、統(tǒng)計、催款、打印、數(shù)據(jù)庫管理等等無所不能。權(quán)限的劃分也是非常合理。但是,許多收費系統(tǒng)并不提 供數(shù)據(jù)備份、恢復(fù),數(shù)據(jù)導(dǎo)入導(dǎo)出。針對這幾點,本系統(tǒng)完美支持 Excel文件數(shù)據(jù) 的導(dǎo)入導(dǎo)出,大大的提高了收費效率。同時,數(shù)據(jù)的導(dǎo)出功能也方便了收費數(shù)據(jù)的 處理、傳輸和攜帶。1.4 開發(fā)學(xué)校收費系統(tǒng)的意義Microsoft Excel 是一個功能強(qiáng)大、 廣泛使用的電子表格軟件, 可實現(xiàn)多重安全保護(hù)(文件密碼保護(hù)、數(shù)字簽名、宏安全性),它的內(nèi)置控制語言是VBA (Visual Bas

5、ic For Application), 可極大地增強(qiáng) Excel 的數(shù)據(jù)處理能力,以上特點使得學(xué)生收費系統(tǒng)可以利用 Excel的 VBA 開發(fā)完成。目前國內(nèi)外很多教學(xué)、科研、設(shè)計等部門都在運(yùn)用這一軟件從事日常的數(shù)據(jù)表格處理。對于財政開支較小的中小學(xué)來說, 花一筆不菲的費用去購買專業(yè)的收費軟件是沒有多大必要的, Microsoft Excel 能輕松解決他們的問題,同時能為學(xué)校節(jié)約很大一筆開支。 對于中小學(xué)教師來講, 專業(yè)的軟件使用需要培訓(xùn), 對學(xué)校來說也會產(chǎn)生很大一筆費用,但就Microsoft Excel 而言,在各個單位尤其學(xué)校使用很普遍,一般的教師都有計算機(jī)應(yīng)用基礎(chǔ),不需要特別的培訓(xùn)就

6、能很熟練的使用。2 學(xué)校收費系統(tǒng)系統(tǒng)分析2.1 需求分析需求分析是軟件開發(fā)的第一步也是最重要的一步。 需求分析階段要通過描述系統(tǒng)的需求, 通過定義系統(tǒng)中的關(guān)鍵領(lǐng)域的類來建立模型。 分析的根本目的是在開發(fā)者和提出需求的人之間建立一種理解和溝通的渠道, 應(yīng)明確系統(tǒng)要服務(wù)于哪些用戶, 對這些用戶提供哪些服務(wù)等。2.1.1 功能需求分析本系統(tǒng)是一個學(xué)校收費系統(tǒng), 我的目標(biāo)是賦予其基本的收費及收費管理功能, 使其能夠滿足大部分用戶的需求。 所以我力圖分析理論中對用戶有價值的功能。 本系統(tǒng)除了有基本的收費功能外, 還有數(shù)據(jù)的導(dǎo)入導(dǎo)出功能。 用戶可以根據(jù)需要導(dǎo)出或者導(dǎo)入某段時間的收費數(shù)據(jù),同時用戶也可以對數(shù)

7、據(jù)進(jìn)行匯總或者備份。我將學(xué)校收費系統(tǒng)劃分為管理員對功能的需求和操作員對功能的需求兩個部分。 他們的需求如下所列:? 操作員對功能的需求收費、基本信息(操作員關(guān)聯(lián)、學(xué)生信息更改(添加、修改、刪除)、收費標(biāo)準(zhǔn)(收費標(biāo)準(zhǔn)一覽)、收費查詢(按年級查詢、按個人查詢(按學(xué)號查詢、按姓名查詢)、欠款統(tǒng)計(按班級統(tǒng)計、按年級統(tǒng)計)、票據(jù)打印、數(shù)據(jù)導(dǎo)入導(dǎo)出等。? 管理員對功能的需求收費、基本信息(操作員關(guān)聯(lián)、學(xué)生信息更改(添加、修改、刪除)、操作員信息修改(添加、修改、刪除、權(quán)限設(shè)置)、收費標(biāo)準(zhǔn)(收費標(biāo)準(zhǔn)一覽、收費標(biāo)準(zhǔn)設(shè)置(添加收費項、修改收費項、刪除收費項、生成應(yīng)收款)、補(bǔ)助標(biāo)準(zhǔn)設(shè)置(年級補(bǔ)助、貧困補(bǔ)助、個人

8、獎勵)、收費查詢(按年級查詢、按個人查詢(按學(xué)號查詢、按姓名查詢)、欠款統(tǒng)計(按班級統(tǒng)計、按年級統(tǒng)計、生成欠款通知單)、票據(jù)打印、收費匯總、數(shù)據(jù)導(dǎo)入、數(shù)據(jù)導(dǎo)出、數(shù)據(jù)備份等。2.1.2 非功能性需求分析要求系統(tǒng)擁有清爽簡潔的外觀, 采用正常平衡的頁面布局, 強(qiáng)調(diào)秩序, 能達(dá)到安定誠實、信賴的效果;要求界面符合大多用戶的操作習(xí)慣,操作簡單,易學(xué);要求系統(tǒng)進(jìn)行消息傳遞時順利通暢;并且要求系統(tǒng)具有較高的安全性。與大多數(shù)收費系統(tǒng)一樣, 本系統(tǒng)也采用了數(shù)據(jù)庫, 但是本系統(tǒng)不僅僅采用了數(shù)據(jù)庫,同時也采用了EXCELX作表,二者相結(jié)合更能滿足用戶的需求。且用戶對數(shù)據(jù)的操作不會直接和工作表或數(shù)據(jù)庫打交道, 一切

9、由窗體查詢實現(xiàn)。 使整個過程不會變得繁雜。2.2 系統(tǒng)介紹2.2.1 系統(tǒng)的結(jié)構(gòu)系統(tǒng)的結(jié)構(gòu)如下:2.2.2 1 管理員功能2.2.3 2 操作員功能2.2.4 用戶使用流程介紹?管理員:登陸f添加年級-添加班級f添加學(xué)生名單f添加收費標(biāo)準(zhǔn)f分發(fā)到操作員?操作員:登陸-真實姓名關(guān)聯(lián)-收費-打印票據(jù)-導(dǎo)出收費數(shù)據(jù)供管理員匯總2.2.5 主要模塊介紹 管理中心模塊? 密碼修改: 無論是管理員還是操作員, 只能修改自己的密碼, 無權(quán)修改他人密碼。? 班級管理:該模塊負(fù)責(zé)年級添加、修改、刪除和班級添加、修改、刪除。為了保證數(shù)據(jù)一致,班級中的年級不能以不存在的年級名稱進(jìn)行添加。? 用戶管理:

10、該模塊是管理員權(quán)限模塊, 操作員無權(quán)操作。管理員則可以添加、修改、刪除用戶,改變用戶權(quán)限,對于用戶密碼丟失的進(jìn)行密碼重置。? 學(xué)生管理:該模塊的功能是添加、修改、刪除學(xué)生信息。 收費模塊? 該模塊負(fù)責(zé)學(xué)生的收費。 收費查詢模塊? 該模塊是對應(yīng)收金額、 已收金額、 補(bǔ)助金額、欠費金額的查詢。 查詢可按年級查詢,可按班級查詢,也可以按學(xué)號或者姓名單個查詢。 數(shù)據(jù)中心模塊? 數(shù)據(jù)中心模塊主要是對收費數(shù)據(jù)匯總、備份、導(dǎo)入、導(dǎo)出。2.2.6 系統(tǒng)的技術(shù)特點及運(yùn)行環(huán)境? 采用 EXCEL VBA + ACCESS 2003 安全性高、可操作性好。? 免安裝、體積小

11、,便于攜帶。? 系統(tǒng)開發(fā)與運(yùn)行環(huán)境 開發(fā)環(huán)境: 開發(fā)語言: Excel VBA數(shù)據(jù)庫: Microsoft Access 2003運(yùn)行環(huán)境:安裝有 Microsoft Excel 2003 的 Windows 系列操作系統(tǒng)3 數(shù)據(jù)庫設(shè)計3.1 ADO 概述ADO是ActiveX Data Objects的縮寫,又稱為 OLE自動化接口,中文名稱為動態(tài)數(shù)據(jù)對象,是目前 Microsoft通用的數(shù)據(jù)訪問技術(shù)。ADO為OLE DB設(shè)計的,而OLE DB則是由ODB跑伸出來的COMS件,是一個便于應(yīng)用白底層接口。使用ADO以后,OLE DB的使用變得更加簡單。通過ADO可以訪問多種類型的數(shù)據(jù)庫數(shù)據(jù),其

12、中就包括 Excel 文件。ADO具有以下特點:? 將原本復(fù)雜的數(shù)據(jù)庫程序開發(fā)編程輕松容易的工作, 除了具有傳統(tǒng)數(shù)據(jù)庫開發(fā)環(huán) 境的優(yōu)點外,還增加了對數(shù)據(jù)庫修改和維護(hù)的功能。? 幾乎兼容所有的數(shù)據(jù)庫系統(tǒng), 并為他們都提供了相同的處理界面供程序設(shè)計人員 使用。? 能跨多種不同的程序語言開發(fā)環(huán)境, 并且提供了類似的設(shè)計方式, 方便了用戶的 使用。?幾乎可以在任何支持 COM(Component Object Model,組件對象模型)和 OLE (對 象鏈接和嵌入)的服務(wù)器端操作系統(tǒng)上使用。3.2 利用ADO訪問數(shù)據(jù)庫每個數(shù)據(jù)庫連接只能服務(wù)于一段 VBA程序,如果有其他的程序或其他的人需要數(shù)據(jù) 庫的

13、服務(wù)就需要建立新的數(shù)據(jù)庫連接。因此,ADC提供了控制連接通斷的方法,以此保證每個連接都可以盡快地利用數(shù)據(jù)庫的服務(wù)。Excel 中若要訪問數(shù)據(jù)庫,必先建立與數(shù)據(jù)庫的連接,為了創(chuàng)建數(shù)據(jù)庫與Excel 的連接,首先必須要引用 ADC對象庫。幾個需要引用的項目如下(版本隨機(jī)器上安裝的版本有所變化,如你機(jī)器里面是其他版本,那么就引用該版本):1) Microsoft ADO ext2.8 for DDL and security2) Microsoft active data objects(multi-dimensional) 2.8 library3) Microsoft active data o

14、bjects recordset 2.8 library4) Microsoft active data objects 2.8 library5) Microsoft jet and replocation objects 2.8 library引用方法:在Excel VB頌輯器窗口中,單擊【工具】菜單中的【引用】命令,打開【引用 -VBAproject 】對話框,勾選相應(yīng)的項目即可,如圖:圖 3. 1 添加引用ADO的責(zé)任被劃分為3個部分。以下分別說明。? 建立數(shù)據(jù)庫連接( Connection )在ADO43表示數(shù)據(jù)庫連接的對象叫做Connection 。該對象的 Connections

15、tring 屬性就表示目標(biāo)數(shù)據(jù)庫的地址,以下代碼將與某個Access 數(shù)據(jù)庫建立連接。Dim Mycon as adodb.con nection 申明 connection 對象類型的變量名為 MyconSet Mycon =new adodb.connection 生成一個新的 connection 對象,將存儲到Mycon變量中Dim constr as stringConstr= ” provider=microsoft.jet.oledb.4.0;datasource="+"thisworkbook.path&" csh 收費系統(tǒng).mdb&quo

16、t;"'指定數(shù)據(jù)庫位置Mycon.connectionstring=constrMycon.open 連接Mycon.close 斷開?執(zhí)行SQL命令(Command數(shù)據(jù)庫連接建立之后,需要向數(shù)據(jù)庫傳遞相應(yīng)的命令,以實現(xiàn)操作數(shù)據(jù)庫的目的。由于一個連接可能會涉及到不止一個SQL命令,因此SQL命令由獨立的Command對象來表示。在建立Comman的象后,就可以發(fā)出命令操作數(shù)據(jù)庫。一般情況下,Command寸象可以在數(shù)據(jù)源中添加、修改、刪除和更新數(shù)據(jù)、或在表中查詢數(shù)據(jù)。? 處理命令執(zhí)行的結(jié)果( Recordset )對于查詢的SQL命令,執(zhí)行的結(jié)果保存到Recordset對象中

17、。通過使用 Recoedset對象,可以瀏覽記錄、修改記錄、添加記錄、或者刪除記錄等等。3.3 系統(tǒng)數(shù)據(jù)庫設(shè)計3.3.1 系統(tǒng) E-R 圖圖 3. 2 系統(tǒng) E-R 圖3.3.2 數(shù)據(jù)表設(shè)計可以列出以下根據(jù)系統(tǒng)功能設(shè)計的要求以及功能模塊的劃分, 對于本系統(tǒng)的數(shù)據(jù),數(shù)據(jù)項和數(shù)據(jù)結(jié)構(gòu):? 年級表:該表用于存儲年級信息,表的結(jié)構(gòu)如下:表 3.1 年級表字段名稱數(shù)據(jù)類型 字段長度 說明年級名稱文本40 主鍵? 班級表:該表用于存儲班級信息,表的結(jié)構(gòu)如下:表 3.2 班級表字段名稱 數(shù)據(jù)類型 字段長度 說明年級名稱文本40 年級名稱來源于年級表班級名稱文本40 無? 收費標(biāo)準(zhǔn)表:該表用于存儲收費項目和金

18、額,表的結(jié)構(gòu)如下:表 3.3 收費標(biāo)準(zhǔn)表字段名稱 數(shù)據(jù)類型 字段長度 說明年級名稱文本40年級名稱來源于年級表收費項目文本40無收費金額貨幣無學(xué)期 文本 40 無? 學(xué)生表:該表用于存儲學(xué)生與收費有關(guān)的基本信息,表的結(jié)構(gòu)如下:表 3.4 學(xué)生表字段名稱 數(shù)據(jù)類型 字段長度 說明學(xué)號文本40主鍵姓名文本40學(xué)生姓名年級文本40學(xué)生所屬年級班級文本40學(xué)生所屬班級? 學(xué)生信息表:該表用于存儲學(xué)生所有的收費信息,該表結(jié)構(gòu)如下:表 3.5 學(xué)生信息表字段名稱 數(shù)據(jù)類型 字段長度 說明學(xué)號文本40學(xué)號來源于學(xué)生表姓名文本40姓名來源于學(xué)生表年級文本40年級來源于學(xué)生表班級文本40班級來源于學(xué)生表學(xué)期文本

19、40學(xué)期來源于收費標(biāo)準(zhǔn)表補(bǔ)助貨幣無應(yīng)收貨幣無已收貨幣無欠款貨幣無收款人 文本 40 無收款日期 時間/ 日期記錄系統(tǒng)當(dāng)前時間備注文本 40 記錄補(bǔ)助原因等4 系統(tǒng)實現(xiàn)設(shè)計是對系統(tǒng)的詳細(xì)描述, 我們需要在這里提供中小學(xué)收費系統(tǒng)的詳細(xì)解決方案和具體解決過程。在這一部分,我們需要對系統(tǒng)作進(jìn)一步的描述。針對本系統(tǒng)而言,所有的代碼和界面都在Excel 2003中的VBE中實現(xiàn)。下面將列出主要的界面及關(guān)鍵性的、難以實現(xiàn)的代碼。4.1 Excel VBA 概述VBA是Visual Basic for Application的簡寫,是一種由微軟開發(fā)的自動化語言。這種自動化語言主要用于控制 Office 應(yīng)用程

20、序, 包括 Outlook 、 Word、 PowerPoint 等。 由于VBA可以應(yīng)用于眾多的Office應(yīng)用程序中,為了區(qū)分與不同的應(yīng)用程序結(jié)合的VBA經(jīng)常將應(yīng)用程序的名字加在VBA前。故產(chǎn)生了 Excel VBA之說。Excel VBA 是寄生在 Excel 之上的,也就是說,如果機(jī)器上沒有安裝 Excel ,則無法運(yùn)行Excel VBA ,同時這也是 VB與VBA的區(qū)別之一。使用 Excel VBA 可以完成以下工作:? 制作報表? 填寫報表? 管理工作表與工作簿? 修飾報表的外觀? 打印、發(fā)送報表? 統(tǒng)計報表中的數(shù)據(jù)? 用報表中的數(shù)據(jù)生成圖形實際上, Excel VBA 可以完成所

21、有Excel 的功能。如果不計算機(jī)工作量的話,Excel VBA能完成的功能任何一門計算機(jī)編程語言都有完成以上功能的可能,但是使用Excel VBA來實現(xiàn)這些功能與其他高級編程語言相 比有如下優(yōu)點:?可以利用Excel已經(jīng)實現(xiàn)的絕大部分功能,節(jié)約開發(fā)時間。?可以利用Excel已經(jīng)實現(xiàn)的大量函數(shù)。?可以利用Excel熟悉的界面。? 可以實現(xiàn)需求,進(jìn)行幾乎無限的擴(kuò)展。4.2 界面的設(shè)計及代碼實現(xiàn)4.2.1 初始界面本系統(tǒng)所使用的 VBA必須依賴Excel ,當(dāng)運(yùn)行本系統(tǒng)的時候會自動打開一個 Excel 工作簿, 這與我們平時見到的收費系統(tǒng)有所不同, 為了消除視覺上的差異, 必須在 運(yùn)行本系統(tǒng)的時候

22、自動隱藏工作簿而只顯示窗體界面。對于VBA而言,這一點可以輕松實現(xiàn),步驟如下: 第一步:打開Excel VBE 界面第二步:雙擊“工程-VBAproject 下面的 Thisworkbook第三步:輸入如下代碼:Private Sub workbook_open() 工作簿打開時候執(zhí)行事件Dim ws As WorksheetFor Each ws In Worksheetsws.Visible = TrueNextApplication.Visible = False 設(shè)置工作簿的屬性為不顯示 login.Show 顯示系統(tǒng)登陸界面End Sub4.2.2 系統(tǒng)登陸界面本系統(tǒng)中, 管理員和操

23、作員登陸共用一個入口, 其好處在于我們登陸的時候不必選擇管理員或者是操作員, 我們只需輸入用戶名和密碼, 系統(tǒng)會自動識別并給出相應(yīng)權(quán)限。相對于常見的系統(tǒng),要方便得多。登陸界面如下:圖 4. 1 登陸界面由于收費系統(tǒng)中操作用戶不會太多, 故本系統(tǒng)中采用的是把操作員和管理員的信息裝在工作表“用戶表”中, 而不是采用數(shù)據(jù)庫的形式, 這樣的好處是整個登陸過程不會調(diào)用數(shù)據(jù)庫。 并且利用工作表來管理同樣能夠?qū)崿F(xiàn)數(shù)據(jù)庫的功能和安全性。 其代碼如下:Private Sub cmd1_Click() 登陸按紐事件Dim xRng As RangeSet xRng = Sheets(" 用戶表 &quo

24、t;).Range("A3:A53")' 再判斷用戶名是否不存在If Application.WorksheetFunction.CountIf(xRng, txt1)= 0 ThenMsgBox " 無此用戶名! ", vbInformation, " 系統(tǒng)提示 "Exit SubEnd IfWith Sheets(" 用戶表 ")' 最后判斷用戶名與密碼是否一致frow = .Range("A3:A53").Find(what:=txt1).RowIf .Cells(frow

25、, 2)<> CStr(txt2.Text) ThenMsgBox (" 密碼錯誤 ")txt1.Text= ""txt2.Text= ""Exit SubEnd IfSheets(" 用戶表 ").Cells(1, 1)= login.txt1.ValueUnload MeIf .Cells(frow, 3)= 2 Then ' 驗證用戶,是管理員則顯示用戶表Sheets(" 用戶表 ").Visible = -1- x1sheetveryhidden收費系統(tǒng).ShowEl

26、se收費系統(tǒng).ShowEnd IfEnd WithEnd SubPrivate Sub login_Initialize() 初始化窗體txt1.RowSource = " 用戶名 "txt1.SetFocusEnd SubPrivate Sub cmd2_Click() 關(guān)閉按紐Application.QuitEnd Sub在工作表“用戶表“中使用 4 個字段:用戶名,密碼,權(quán)限,真實姓名。其中權(quán)限用于識別登陸人員是管理員還是操作員, 并據(jù)此給出相應(yīng)的權(quán)限, 而真實姓名則用于收費中的實名制,有利于責(zé)任劃分。對于“ Sheets(" 用戶表 ").Cel

27、ls(1,1) = login.txt1.Value “這句代碼,可能很多人不解, 其實很簡單, 它把當(dāng)前登陸的用戶名顯示到單元格中的作用是: 將登陸框中用戶名寫入 sheets( “用戶表” ) 的 A1 單元格中。4.2.3 系統(tǒng)主界面當(dāng)用戶登陸成功后將顯示主界面。 主界面上主要是功能菜單, 實現(xiàn)的是鏈接的功能,主要采用的是Click 事件,代碼不再贅述,其界面如下:4. 4 收費界面4.2.4 班級管理界面班級管理實現(xiàn)年級添加、修改、刪除和班級添加、修改、刪除的功能。為減少用戶操作出錯率, 不允許用戶直接添加班級, 而是先添加年級之后, 在添加班級的時候直接選擇班級所在的年級。其界面如下

28、:圖 4. 3 班級管理界面由于設(shè)計各個功能的時候采用的是一個窗體實現(xiàn)一個功能, 所以設(shè)計到數(shù)據(jù)庫的多次連接,各功能模塊代碼如下:年級添加主要代碼Dim sql As Stringmydata = ThisWorkbook.Path & "CSH 收費系統(tǒng) .mdb" 指定數(shù)據(jù)庫位置mytable = "年級表" 指定數(shù)據(jù)表Set cnn = New ADODB.Connection '生成 Connection 對象,將其放入到變量cnn中With cnn.Provider = "microsoft.jet.oledb.4.0

29、".Open mydataEnd Withsql = "select * from "& mytable & " where 年級名稱 ='"&TextBox1.Value & "'"Set rs = New ADODB.Recordsetrs.Open sql, cnn, adOpenKeyset, adLockOptimisticIf rs.RecordCount <> 0 ThenMsgBox " 你所添加的年級已經(jīng)存在, 不能重復(fù)添加!"

30、Elsers.AddNewrs.Fields(" 年級名稱 ")= TextBox1.Valuers.UpdateMsgBox " 年級添加成功 "End Ifrs.Closecnn.CloseSet rs = NothingSet cnn = Nothing4.2.5 收費界面收費界面實現(xiàn)的學(xué)生收費功能, 界面可以根據(jù)學(xué)生的學(xué)號或者姓名 (如有重名則需要其提供學(xué)號) 以及學(xué)期信息自動顯示學(xué)生所在年級、班級、 應(yīng)交款。操作員點擊確定時學(xué)生的收費信息將保存到數(shù)據(jù)表“學(xué)生信息表”中。 同時用戶可以通過明細(xì)查看學(xué)生交費詳細(xì)信息(應(yīng)交、已交、補(bǔ)助、欠費等等)。其

31、界面如下:4. 5 收費明細(xì)界面收費界面主要代碼如下Dim sql As Stringmydata = ThisWorkbook.Path & "CSH 收費系統(tǒng) .mdb"mytable = " 學(xué)生信息表"Set cnn = New ADODB.ConnectionWith cnn"microsoft.jet.oledb.4.0".Provider.Open mydataEnd Withsql"selectTextBox1.Value* from "& mytable & "

32、where 學(xué)號 ='"&& "'"& "and 學(xué)期 ='"& ComboBox1.Value & "'"Set rs = New ADODB.Recordsetrs.Open sql, cnn, adOpenKeyset, adLockOptimisticSet rs = New ADODB.Recordsetrs.Open mytable, cnn, adOpenKeyset, adLockOptimistic rs.AddNewrs.Fields

33、(" rs.Fields(" rs.Fields(" rs.Fields(" rs.Fields(" rs.Fields(" rs.Fields(" rs.Fields(" rs.Fields(" rs.Fields(" rs.Fields(" rs.Fields(" rs.Update學(xué)號 ")姓名 ")年級 ")班級 ")學(xué)期 ")應(yīng)收 ")已收 ")欠款 ")補(bǔ)助 ")收款人 &q

34、uot;)= TextBox1.Value= TextBox2.Value= TextBox3.Value= TextBox4.Value= ComboBox1.Value= TextBox5.Value= TextBox7= rs.Fields(" 應(yīng)收 ")- rs.Fields(" 已收 ")收款日期 ")備注 ")=收費系統(tǒng) .Label31.Caption= Date"無"Label13.Caption" 收費成功 !"Excel 文件中, 以便于數(shù)據(jù)備份和匯并將導(dǎo)4.2.6 數(shù)據(jù)導(dǎo)出

35、界面 該界面的主要功能是將數(shù)據(jù)從數(shù)據(jù)庫中導(dǎo)出到 總。 用戶可以選擇導(dǎo)出數(shù)據(jù)的起始日期和終止日期進(jìn)行有選擇的數(shù)據(jù)導(dǎo)出。出數(shù)據(jù)自動保存到“數(shù)據(jù)導(dǎo)出 .xls “中。其界面如下圖:圖 4. 6 數(shù)據(jù)導(dǎo)出界面數(shù)據(jù)導(dǎo)出的主要代碼:Dim wb As WorkbookDim mycol As IntegerSet wb = Workbooks.Addwb.SaveAs Filename:=ThisWorkbook.Path & 數(shù)據(jù)導(dǎo)出 .xls" 保存路徑和名稱Dim mydata As String, sql As StringDim cnn As ADODB.ConnectionD

36、im rs As RecordsetDim i As IntegerActiveSheet.Cells.Clearmydata = ThisWorkbook.Path & "CSH 收費系統(tǒng) .mdb"Set cnn = New ADODB.ConnectionWith cnn.Provider = "microsoft.jet.oledb.4.0".Open mydataEnd Withsql = "SELECT* FROM學(xué)生信息表WHERE收款日期 >=#" &DTPicker1.Value& &q

37、uot;#"&" and 收款日期<=#"&DTPicker2.Value & "#"Set rs = New ADODB.Recordsetrs.Open sql, cnn, adOpenKeyset, adLockOptimisticFor mycol = 1 To rs.Fields.CountCells(1, mycol) = rs.Fields(mycol - 1).NameNext mycolRange("a2").CopyFromRecordset rsActiveSheet.Co

38、lumns.AutoFitrs.Closecnn.CloseSet rs = NothingSet cnn = Nothingwb.SaveActiveWorkbook.CloseMsgBox " 數(shù)據(jù)導(dǎo)出成功 , 并保存在同文件夾下文件名為 數(shù)據(jù)導(dǎo)出 的工作簿中 !", vbInformation, " 提示 "4.2.7 數(shù)據(jù)導(dǎo)入界面該界面主要實現(xiàn)的功能是將“ .xls ”文件類型的數(shù)據(jù)導(dǎo)入到數(shù)據(jù)表中, 在數(shù)據(jù)的恢復(fù)中將會用到。其界面如下:圖 4. 7 數(shù)據(jù)導(dǎo)入界面當(dāng)點擊數(shù)據(jù)導(dǎo)入按紐將出現(xiàn)對話框, 用戶可以選擇導(dǎo)入數(shù)據(jù)源的路徑。 其主要代碼如下:Di

39、m myfilename As String myfilename = Application.GetOpenFilename("excel 工作簿 (*.xls),*.xls") If myfilename <> "False" ThenWorkbooks.Open Filename:=myfilenameDim mydata As String, mytable As String, sql As StringDim cnn As ADODB.ConnectionDim rs As ADODB.RecordsetDim rsx As AD

40、ODB.Recordsetmydata = ThisWorkbook.Path & "CSH 收費系統(tǒng) .mdb" mytable = " 學(xué)生信息表"n = Sheets("sheet1").Range("a65536").End(xlUp).Row Set cnn = New ADODB.ConnectionWith cnn.Provider = "microsoft.jet.oledb.4.0" .Open mydataEnd With mysql = "select *

41、 from " & mytable Set rs = New ADODB.Recordsetrs.Open mysql, cnn, adOpenKeyset, adLockOptimisticFor i = 2 To nsql = "select * from "& mytable & " where 學(xué)號 ='"& Cells(i,1).Value & "'"Set rsx = New ADODB.Recordsetrsx.Open sql, cnn, adOpenK

42、eyset, adLockOptimistic rsx.AddNewFor j = 1 To rsx.Fields.Count rsx.Fields(Cells(1, j).Value)= Cells(i, j).ValueNext j rsx.UpdateNext iMsgBox " 數(shù)據(jù)導(dǎo)入完畢!", vbInformation + vbOKOnlyrs.Closecnn.CloseSet rs = NothingSet cnn= NothingSet rsx= NothingActiveWorkbook.CloseElseMsgBox " 沒有選擇工作簿&q

43、uot;End If4.2.8 數(shù)據(jù)匯總界面 該界面實現(xiàn)的功能是將多個工作簿進(jìn)行匯總。4. 8 數(shù)據(jù)匯總界面當(dāng)點擊數(shù)據(jù)匯總按紐, 將彈出對話框, 用戶可以自行輸入路徑, 也可以采用默認(rèn)路 徑, 由于本功能所采用的是匯總文件夾下所有“ .xls ”文件, 所以建議用戶將要匯 總的文件統(tǒng)一放到本系統(tǒng)中“數(shù)據(jù)匯總”文件夾內(nèi), 同時在數(shù)據(jù)匯總的時候選擇默 認(rèn)路徑。 數(shù)據(jù)匯總的主要代碼如下:Dim mypath As String, defaultpath As String, mysql As StringDim i As Integer, j As Integer, n As Integer, p

44、As IntegerDim n1 As Integer, n2 As Integer, n3 As Integer, n4 As Integer Dim cnn As ADODB.ConnectionDim rs As ADODB.Recordset ' 刪除當(dāng)前工作簿的總表工作表中所有數(shù)據(jù)Worksheets(" 總表 ").Cells.Clear ' 從指定文件夾中尋找要匯總工作簿文件defaultpath = ThisWorkbook.Path & 數(shù)據(jù)匯總 "mypath = InputBox(" 請輸入要查詢工作簿的文件

45、夾完整目錄及名字:" &cbcrlf & vbCrLf & "如果為空,則默認(rèn)為 " & vbCrLf & defaultpath, "輸入路徑 ", defaultpath)If mypath = "" Then mypath = defaultpathApplication.StatusBar ="正在查找匯總工作簿"Set fs = Application.FileSearch With fs.LookIn = mypath .FileType = msoFi

46、leTypeExcelWorkbooksIf .Execute(SortBy:=msoSortByFileName, sortorder:=msoSortOrderAscending) > 0 Then p = .FoundFiles.CountMsgBox " 在此文件夾中共有" & p & " 個工作表的數(shù)據(jù)文件需要匯總! ",vbInformation, "搜索到匯總文件"ReDim myfile(p) As StringFor i = 1 To p myfile(i) = .FoundFiles(i)Ne

47、xt iElseMsgBox "沒有搜索到要匯總的文件", vbInformation, "沒有匯總文件"Application.StatusBar = FalseExit SubEnd IfEnd With' 建立與每個工作簿的連接, 查詢記錄并且復(fù)制到工作表總表中For i = 1 To p Set cnn = New ADODB.ConnectionWith cnn.Provider = "microsoft.jet.oledb.4.0".ConnectionString = "extended propert

48、ies=excel 8.0;"& "datasource=" & myfile(i).OpenEnd With' 查詢每個工作簿的全部記錄數(shù)據(jù)Set rs = New ADODB.Recordsetmysql = "select * from sheet1$"rs.Open mysql, cnn, adOpenKeyset, adLockOptimisticIf i = 1 ThenFor j = 0 To rs.Fields.Count - 1Worksheets(" 總表 ").Cells(1,

49、j + 1)= rs.Fields(j).NameNext jEnd Ifn = Worksheets(" 總表 ").Range("a65536").End(xlUp).RowIf rs.RecordCount <> 0 ThenWorksheets(" 總表 ").Range("a" & n + 1).CopyFromRecordset rsEnd IfNext i5 軟件測試軟件測試是為了發(fā)現(xiàn)程序中的錯誤而執(zhí)行程序的過程。 其目標(biāo)是不斷暴露程序中的錯誤,并且加以改正,使系統(tǒng)不斷完善。5.1

50、 模塊測試在模塊測試時,首先應(yīng)該對模塊接口的數(shù)據(jù)流進(jìn)行測試,如果數(shù)據(jù)不能正確進(jìn)出,所有其他測試都是不切實際的。 在對模塊接口進(jìn)行測試時主要檢查下述幾方面: 參數(shù)的數(shù)目、 次序、 屬性或單位系統(tǒng)與變元是否一致; 是否修改了只作輸入用的變元;全局變量的定義和用法在各個模塊中是否一致。表 5. 1 用戶登陸測試模塊一 測試用例 期望結(jié)果 實際結(jié)果用戶登陸 用戶名: chensonghuan密碼: 123456 登陸成功 登陸成功用戶名: chensonghuan密碼: 12345 密碼出錯 密碼出錯用戶名:密碼: 123456 用戶名為空用戶名為空用戶名:chensong密碼:123456 用戶名不存在系統(tǒng)報錯用戶名: dsads密碼:123456 用戶名不存在系統(tǒng)報錯表 5. 2 班級管理模塊測試模塊二 測試用例 期望結(jié)果 實際結(jié)果班級管理 添加小 Listbox1 顯示小 無添加小 1 班 Listbox2 顯示小 2 班 無表 5. 3 收費模塊測試模塊三 測試用例 期望結(jié)果 實際結(jié)果收費模塊 學(xué)號: 00001 顯示學(xué)生所有基本信息 顯示學(xué)生所有基本信息學(xué)號: 00006 學(xué)號有誤 學(xué)號有誤

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論