版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
企業(yè)資產(chǎn)管理系統(tǒng)VBAccess畢業(yè)設計目錄TOC\o"1-5"\h\z緒論 -1 -\o"CurrentDocument"課題背景 -1 -\o"CurrentDocument"目的及意義 -1 -\o"CurrentDocument"開發(fā)和運行環(huán)境選擇 -1 -\o"CurrentDocument"編程環(huán)境的選擇 -2 -VisualBasic簡介及實現(xiàn)原理 -2 -數(shù)據(jù)庫組件介紹 -3 -SQL語言在VB中的應用 -4 -\o"CurrentDocument"數(shù)據(jù)庫平臺介紹 -4 -Access2007數(shù)據(jù)庫簡介 -4 -數(shù)據(jù)庫的基本概念 -5 -結(jié)構(gòu)化查詢語言SQL - 6-SQL語句簡介 -6 -2系統(tǒng)設計 -8 -\o"CurrentDocument"系統(tǒng)功能分析 -8 -\o"CurrentDocument"系統(tǒng)功能模塊設計 -8 -3數(shù)據(jù)庫設計 -10 -\o"CurrentDocument"數(shù)據(jù)庫需求分析 -10 -\o"CurrentDocument"數(shù)據(jù)庫概念結(jié)構(gòu)設計 -11 -\o"CurrentDocument"數(shù)據(jù)庫邏輯結(jié)構(gòu)設計及實現(xiàn) -13 -\o"CurrentDocument"4系統(tǒng)具體程序?qū)崿F(xiàn) -15 -\o"CurrentDocument"系統(tǒng)公共模塊和類模塊的創(chuàng)建 -15 -創(chuàng)建工程項目——PrjDevice -15 -創(chuàng)建公用模塊 -15 -創(chuàng)建類模塊 -15 -\o"CurrentDocument"系統(tǒng)用戶登錄窗體的創(chuàng)建 -16 -\o"CurrentDocument"企業(yè)資產(chǎn)管理系統(tǒng)主窗體的創(chuàng)建 -17 -資產(chǎn)管理模塊 -22 -資產(chǎn)查詢模塊 -26 -報表管理模塊 -26 -系統(tǒng)管理模塊 -30 -用戶管理模塊 -31 -\o"CurrentDocument"5系統(tǒng)的編譯和發(fā)行 -32 -6小結(jié) -33 -致謝 -34 -主要參考文獻 -35 -附錄 -37 -II1緒論課題背景隨著信息技術(shù)廣泛、深入地應用到人類社會的各個領(lǐng)域并發(fā)揮著越來越重要的作用。計算機軟件技術(shù)應用于信息管理是發(fā)展的必然。作為計算機應用的一部分,充分發(fā)揮計算機的優(yōu)勢,將大量復雜的數(shù)據(jù)交給計算機來處理,有著手工管理所無法比擬的優(yōu)點。如:查找方便、可靠性高、存儲量大、保密性好、壽命長、成本低等。這些優(yōu)點能夠極大地提高信息管理的效率,是真正意義上的合理利用資源,也是企事業(yè)管理科學化、正規(guī)化,與世界接軌的重要條件在當今社會,作為一個公司或集體,資產(chǎn)是至關(guān)重要的。資產(chǎn)的項目是紛繁蕪雜的,大至辦公樓、汽車,小到辦公桌、訂書機等諸多門類的諸多物品都可以列入資產(chǎn)之列。由于資產(chǎn)的種類太多,涉及面太廣,而且被經(jīng)常的借出借入,必然會引起管理上的困難,而資產(chǎn)管理不好就會引起混亂,導致公司資產(chǎn)的流失。因此,有必要設計一個應用軟件系統(tǒng)來管理。目的及意義畢業(yè)設計是四年學習的總結(jié),同時也是自己綜合運用所學知識來解決實際問題的一次鍛煉。企業(yè)資產(chǎn)管理系統(tǒng)的主要目的是為了方便企業(yè)對資產(chǎn)的錄入、修改、查詢,提高企業(yè)資產(chǎn)管理部的工作效率。這一系統(tǒng)的開發(fā)成功,將會解決手寫速度慢、容易出錯的現(xiàn)狀。無論是在資產(chǎn)管理,還是報表管理等方面都可以幫助企業(yè)迅速、準確的完成所需的工作。而且此系統(tǒng)在適用性、靈活性和易操作性方面都顯示出了它的強大功能。開發(fā)和運行環(huán)境選擇在操作系統(tǒng)方面,WindowsXP系統(tǒng)提供了一個可伸縮的高性能平臺,用于運行基于Windows的新一代強大應用程序。這種平臺的體系結(jié)構(gòu)可以更有效地處理海量數(shù)據(jù),使應用程序運行地更快、更高效。同時,WindowsXP操作系統(tǒng)占據(jù)很大的市場地位,而且其使用趨向于傻瓜化,操作簡單、靈活。另外,現(xiàn)在計算機的運算速度比以前有了數(shù)量級倍數(shù)的提高,硬件的價格也一天天的在下降,所以也不用為了節(jié)省整體的造價而改用硬件要求很低的DOS系統(tǒng)了?;赪indows操作系統(tǒng)以上的特點,我們決定此企業(yè)資產(chǎn)管理系統(tǒng)將運行在WindowsXP操作系統(tǒng)下,利用Access2007數(shù)據(jù)庫來協(xié)助開發(fā)人員輕松地進行與數(shù)據(jù)庫的連接和管理。編程環(huán)境的選擇目前,在市場上這些眾多的程序開發(fā)工具中,有些強調(diào)程序語言的彈性與執(zhí)行效率;有些則偏重于可視化程序開發(fā)工具所帶來的便利性與效率的提高,各有各的優(yōu)點和特色,也滿足了不同用戶的需求。然而,語言的彈性和工具的便利性是密不可分的,只有便利的工具,卻沒有彈性的語言作支持,許多特殊化的處理動作必需要耗費數(shù)倍的工夫來處理,使得原來所標榜的效率提高的優(yōu)點失去了作用;相反,如果只強調(diào)程序語言的彈性,卻沒有便利的工具作配合,會使一些即使非常簡單的界面處理動作,也會嚴重地浪費程序設計師的寶貴時間。而VB6.0是著名的微軟公司的可視化軟件開發(fā)工具,其被稱為最容易編程語言,它具有簡單、高效、功能強大的特點。它是一個非常理想的選擇,是可視化的快速應用程序開發(fā)語言,它提供了可視化的集成開發(fā)環(huán)境,這一環(huán)境為應用程序設計人員提供了一系列靈活而先進的工具,可以廣泛地用于許多種類應用程序設計。故而,實現(xiàn)本系統(tǒng),VB是一個相對較好的選擇。VC++在界面設計上不如VB方便,所以本次課題用VB開發(fā)。VisualBasic簡介及實現(xiàn)原理VisualBasic(簡稱VB)是美國微軟公司(Microsoft)于1990年推出的一套完整的Windows系統(tǒng)軟件開發(fā)工具,可用于開發(fā)Windows環(huán)境下的各類應用程序,是一種可視化、面向?qū)ο?、用事件?qū)動方式的結(jié)構(gòu)化高級程序設計語言和工具,是目前使用最廣泛的編程語言之一。至今已升級到了6.0版。VB的重要特點之一是可視性。系統(tǒng)引進了窗體和控件的機制,用于設計應用程序界面。用戶通過在屏幕上生成窗體,在窗體中繪制所需要的控件和按鈕,設計菜單和對話框,VB會自動生成相應的代碼。VB的另一重要特點是事件驅(qū)動。當窗體或控件上發(fā)生一個事件時,VB立即把控制權(quán)交給程序員。程序員不必擔心如何判斷事件是否已發(fā)生,只需要編寫一段代碼告訴計算機在事件發(fā)生以后應該做什么工作就可以了。這樣,設計一個Windows應用程序簡化為用鼠標在屏幕上點擊、拖拽并添加少量的代碼就可以完成了,大大降低了對程序設計的要求,提高了應用程序的開發(fā)效率。利用VB的可視性特點,可方便的設計程序的窗體界面,并在各個窗體中的合適位置繪制所需的每種控件。如要修改窗體或控件的某項屬性,只需在相應的窗體或控件的屬性窗口修改相應的參數(shù)便可達到需要的設計效果。利用VB的事件驅(qū)動性特點,只需在窗體或控件上的代碼窗口中添加少量的代碼,便可達到告訴當在相應的窗體或控件上發(fā)生某一事件時,它們在事件發(fā)生后應該做什么工作的目的。例如幾個窗體上的添加、刪除、返回按鈕的作用,就是通過在各個相應按鈕的代碼窗口中輸入相應的代碼,來達到當在幾個按鈕上出現(xiàn)單擊(Click)事件后,相應按鈕實現(xiàn)添加、刪除、返回的功能的。數(shù)據(jù)庫組件介紹在使用VisualBasic6.0開發(fā)數(shù)據(jù)庫應用程序的時候,會經(jīng)常使用數(shù)據(jù)庫訪問控件。這些控件包括:Data控件;ADOData控件;DataList控件/DataCombo控件;DataGrid控件;MSChart控件。下面將分別對這些控件的主要功能及使用方法進行介紹。(1)Data控件Data控件是VisualBasic中最基本的數(shù)據(jù)庫操作控件。它使用Recordset對象提供對存儲在數(shù)據(jù)庫中數(shù)據(jù)的訪問。Data控件允許從一個記錄移動到另一個記錄,并顯示和操縱來自被連接控件的記錄的數(shù)據(jù)。許多其他的數(shù)據(jù)庫操作控件都需要Data控件或類似的數(shù)據(jù)源控件(比如ADOData控件)。Data控件可以執(zhí)行大部分數(shù)據(jù)庫訪問操作,但是它并不能顯示數(shù)據(jù)庫中數(shù)據(jù)的內(nèi)容。Data控件通常需要與其他控件結(jié)合使用。這些與Data控件結(jié)合使用的控件,可以稱之為“數(shù)據(jù)覺察控件”。因為程序員無需編寫任何代碼,就可以在這些控件中顯示當前記錄的數(shù)據(jù)。當Data控件中當前記錄發(fā)生變化時,數(shù)據(jù)覺察控件的內(nèi)容也會隨之發(fā)生變化。當與Data控件相連接時,DataList、DataCombo、DataGrid和MSHFlexGrid控件都能管理記錄集合。所有這些控件都允許一次顯示或操作幾個記錄。內(nèi)部的Picture.Label、TextBox.CheckBox.Image.OLE、ListBox和ComboBox控件也是數(shù)據(jù)覺察的,能和由Data控件管理的Recordset對象的某個字段相連接。ADOData控件ADOData控件與內(nèi)部Data控件以及RemoteData控件(RDC)相似。用戶可以使用ADOData控件快速地創(chuàng)建一個到數(shù)據(jù)庫的連接。DataList控件/DataCombo控件DataList控件是一個數(shù)據(jù)綁定列表框,它可以自動地由一個附加數(shù)據(jù)源中的一個字段充填,并且可選擇地更新另一個數(shù)據(jù)源中一個相關(guān)表的一個字段。DataCombo控件的功能與DataList控件完全相同,只不過DataCombo控件是一個組合框。DataGrid控件在許多情況下,需要使用表格形式來顯示數(shù)據(jù)庫中的數(shù)據(jù)。這時就要借助于DataGrid控件。用戶可以設置DataGrid控件的DataSource屬性為一個ADOData控件,從而將ADOData中的數(shù)據(jù)自動地填充到DataGrid表格中。這個DataGrid控件實際上是一個固定的列集合,每一列的行數(shù)都是不確定的。(5)MSChart控件MSChart控件的功能是以圖形方式顯示數(shù)據(jù)的圖表。這會使枯燥的數(shù)據(jù)變得更加生動直觀,增加了程序的實用價值。MSChart控件支持一下特性:1、真三維表示;2、支持所有主要的圖表類型;3、數(shù)據(jù)網(wǎng)絡成員支持隨機數(shù)據(jù),數(shù)據(jù)數(shù)組。1.4.3SQL語言在VB中的應用(1)SQL提供的實用函數(shù)為實現(xiàn)使用VB程序調(diào)用SQL語言訪問Access2007數(shù)據(jù)庫多個記錄的目的,我們利用SQL提供的函數(shù)。DavgFunction(求平均值)DcountFunction(計算滿足條件的記錄數(shù))DfirstFunction(返回記錄集的第一個記錄的某個域值)DlastFunction(返回記錄集的最后一個記錄的某個域值)DlookupFunction(返回記錄集中滿足待定條件的記錄的域值)DsumFunction(求和計算)DmaxFunction(求最大值)DminFunction(求最小值)1.5數(shù)據(jù)庫平臺介紹Access2007數(shù)據(jù)庫簡介Access2007是關(guān)系數(shù)據(jù)庫開發(fā)工具,1992年,MicrosoftAccess作為第一個面向Windows操作平臺的桌面數(shù)據(jù)庫管理系統(tǒng)而誕生,它不但充分體現(xiàn)了面向?qū)ο蟮乃枷?,提供可視化的編程手段,而且充分利用了Windows操作平臺的優(yōu)越性,采用與Windows完全一致的界面風格,使界面非常友好。在Access中,用戶不需要編寫復雜的程序就可以建立一個完整的數(shù)據(jù)庫應用系統(tǒng),是一個典型的開放式數(shù)據(jù)庫系統(tǒng),它可以和Windows下的其他應用程序共享數(shù)據(jù)庫資源。數(shù)據(jù)庫能匯集各種信息以供查詢、存儲和檢索。Access的優(yōu)點在于它能使用數(shù)據(jù)表示圖或自定義窗體收集信息。數(shù)據(jù)表示圖提供了一種類似于Excel的電子表格,可以使數(shù)據(jù)庫一目了然。另外,Access允許創(chuàng)建自定義報表用于打印或輸出數(shù)據(jù)庫中的信息。Access也提供了數(shù)據(jù)存儲庫,可以使用桌面數(shù)據(jù)庫文件把數(shù)據(jù)庫文件置于網(wǎng)絡文件服務器,與其他網(wǎng)絡用戶共享數(shù)據(jù)庫。Access是一種關(guān)系數(shù)據(jù)庫工具,關(guān)系數(shù)據(jù)庫是已開發(fā)的最通用的數(shù)據(jù)庫之一。如上所述,Access作為關(guān)系數(shù)據(jù)庫開發(fā)具備了許多優(yōu)點,可以在一個數(shù)據(jù)包中同時擁有桌面數(shù)據(jù)庫的便利和關(guān)系數(shù)據(jù)庫的強大功能。本課題研究過程中選用了WindowsXP操作系統(tǒng)平臺。WindowsXPServer包含了改進的網(wǎng)絡、應用程序和Web服務。它不但增強了可靠性和靈活性,而且降低了擁有強大、靈活管理服務的計算系統(tǒng)的成本,并為運行企業(yè)應用程序提供了最好的基礎(chǔ)。數(shù)據(jù)庫的基本概念數(shù)據(jù)庫系統(tǒng)是計算機系統(tǒng)的重要組成部分。信息處理系統(tǒng)的大量推廣應用,使得數(shù)據(jù)庫應用技術(shù)成為人們普遍關(guān)注的問題。數(shù)據(jù)庫技術(shù)所研究的問題是如何科學地組織和存儲數(shù)據(jù),如何高效地獲取和處理數(shù)據(jù)。數(shù)據(jù)庫按其結(jié)構(gòu)可分為層次數(shù)據(jù)庫、網(wǎng)狀數(shù)據(jù)庫和關(guān)系數(shù)據(jù)庫。其中關(guān)系數(shù)據(jù)庫是應用最多的一種數(shù)據(jù)庫。VB默認的數(shù)據(jù)庫是Accsee數(shù)據(jù)庫,庫文件的擴展名為.mdb。.數(shù)據(jù)表數(shù)據(jù)表是一組相關(guān)聯(lián)的數(shù)據(jù)按行和列排列的二維表格,簡稱為表(Table),通常用來描述一個實體。每個數(shù)據(jù)表均有一個表名,一個數(shù)據(jù)庫由一個或多個數(shù)據(jù)表組成,各個數(shù)據(jù)表之間可以存在某種關(guān)系。.記錄與字段數(shù)據(jù)表都是多行或多列構(gòu)成的集合,每列稱為一個字段(Field),它對應表格中的數(shù)據(jù)項,每個數(shù)據(jù)項的名稱稱為字段名,如“編號々“姓名”等都是字段名。字段的取值范圍稱為域,通常用字段描述表格實體在某一方面的屬性。表格的項目名稱下面的每一行稱為一個記錄(Record),它是字段值的集合,如姓名為“王霞”對應的行中所有數(shù)據(jù)即是一條記錄。記錄中的每個字段的取值,稱為字段值或分量。記錄中的數(shù)據(jù)隨著每一行記錄的不同而變化。.關(guān)鍵字如果數(shù)據(jù)表中某個字段值能唯一地確定一個記錄,用以區(qū)分不同的記錄,則稱該字段名為候選關(guān)鍵字。一個表中可以存在多個候選關(guān)鍵字,選中其中一個關(guān)鍵字作為主關(guān)鍵字。如員工“編號”是唯一的,“姓名”和“年齡”存在相同情況,可將其組合起來,作為組合關(guān)鍵字。對于數(shù)據(jù)表中的每個記錄來說,主關(guān)鍵字必須具有一個唯一的值,即主關(guān)鍵字不能為空值。在數(shù)據(jù)庫中,表與表之間是通過關(guān)鍵字來相互關(guān)聯(lián)的。例如,職工情況表與工資表之間就是用“編號”相互關(guān)聯(lián)的。用來聯(lián)系兩個數(shù)據(jù)表的字段稱為關(guān)鍵字段。根據(jù)一個表中記錄與另一個表中記錄之間的數(shù)量對應關(guān)系,分為一對一、一對多(或多對一)、多對多關(guān)系,常用的是一對多關(guān)系。.索引一個表可以按照某種特定的順序進行保存和排列。例如,用戶可能想要自己的數(shù)據(jù)按照“部門”的順序保存,這樣可以給表設置索引,通過這些索引,數(shù)據(jù)庫引擎就能非常迅速地查找到某個特定的記錄。這與一本書的目錄索引相似,通過目錄索引就能很快找到自己需要的內(nèi)容。從簡單意義上講,一個表是許多記錄的集合。更為常見的情況是,表是一個經(jīng)過分類排序和建立索引后的記錄的集合表。用戶可以通過用不同的分類和過濾條件將多個記錄組成一個集合。對一個記錄集進行的修改會自動更新相應的表中的內(nèi)容,同樣,對表所做修改會自動更新以該表為基礎(chǔ)建立的所有記錄集。結(jié)構(gòu)化查詢語言SQLSQL(StructureQueryLanguage結(jié)構(gòu)化查詢語言)是一種用于數(shù)據(jù)查詢的編程語言。由于它的功能豐富、使用方式靈活、語言簡潔易學,在計算機工業(yè)界和用戶中倍受歡迎,現(xiàn)已成為關(guān)系數(shù)據(jù)庫語言的國際標準。使用SQL可以完成定義關(guān)系模式,錄入數(shù)據(jù),建立數(shù)據(jù)庫,查詢、更新、維護數(shù)據(jù)庫,數(shù)據(jù)庫重構(gòu),數(shù)據(jù)庫安全性控制等一系列的操作要求。對于VB中的關(guān)系數(shù)據(jù)庫,一旦數(shù)據(jù)存入數(shù)據(jù)庫以后,就可以用SQL同數(shù)據(jù)庫“對話”。通常,都是由用戶用SQL來“發(fā)問”,數(shù)據(jù)庫則以符合發(fā)問條件的記錄來“回答”。查詢的語法中通常都包含表名、字段名及一些條件等。SQL語句簡介SQL是一種數(shù)據(jù)庫系統(tǒng)的標準,使用SQL語句可以進行數(shù)據(jù)庫的查詢、修改、插入和刪除等基本操作,還可以建立存儲過程、觸發(fā)器等。SQL中以關(guān)鍵字打頭,完整描述一個操作完整的短語。例如:Select*FromtblUserSQL語句不應和一般的VB語句混淆。以下是幾個常用的SQL語句:(1)Select語句的語法。Select語句可以創(chuàng)建一個選擇查詢,用于從現(xiàn)有的數(shù)據(jù)庫中檢索數(shù)據(jù),是最常用的查詢之一,其語法為Select(字段名表)From(表名)Where(條件)說明:(字段名表)列出要查詢的字段名,字段名之間用逗號分開。當要查詢的是表中所有列時,可用“*”代表,而不要一一列出。(表名)指出所查詢的表。如果查詢是在多個表之間進行的,所有的表都要列出,表名之間用逗號分隔。-6-(條件)是一個結(jié)果為邏輯值的邏輯表達式或條件表達式。(條件)和(字段名表)中用到的字段名前要加上表名,中間用小數(shù)點分隔。(2)Update語句的語法。Update語句可以創(chuàng)建一個更新查詢,用來按照指定條件修改表中的字段值。其語法為Update(表名)Set(字段)=(表達式)[,(字段)=(表達式)]Where(條件)(3)Delete語句的語法。Delete語句可以創(chuàng)建一個刪除查詢,用來按照指定條件刪除表中的記錄。其語法為DeleteFrom(表名)Where(條件)(4)Insert語句的語法。Insert語句可以創(chuàng)建一個添加查詢,用來向表中添加多個記錄。其語法為InsertInto(目標表名)Select(字段1)[,(字段2)…]From(源表名)向表中添加多個記錄的Insert語句語法為InsertInto(目標表名)(字段1)[,(字段2)?]Values(值1)[,(值2?)](5)SelectInto語句的語法。SelectInto語句用來為表做備份或?qū)⒈磔敵龅狡渌麛?shù)據(jù)庫中。其語法為Select(字段名表)Into(新表名)From(源表名)2系統(tǒng)設計系統(tǒng)功能分析本系統(tǒng)開發(fā)的總體任務是實現(xiàn)各種信息的系統(tǒng)化、規(guī)范化和自動化。本系統(tǒng)主要是基于可以移動的電腦、書籍、辦公桌等資產(chǎn)的管理,可實現(xiàn)的功能主要有:資產(chǎn)數(shù)據(jù)的瀏覽:分條顯示資產(chǎn)記錄,顯示企業(yè)資產(chǎn)總表。資產(chǎn)數(shù)據(jù)的查詢:查詢符合特定條件的資產(chǎn)記錄及全部資產(chǎn)。資產(chǎn)數(shù)據(jù)的修改:對資產(chǎn)的數(shù)據(jù)進行修改。資產(chǎn)數(shù)據(jù)的增加:增加新入庫資產(chǎn)。資產(chǎn)的報廢:對某一特定的資產(chǎn)進行報廢處理。資產(chǎn)的注銷:對某一特定的資產(chǎn)進行注銷處理。資產(chǎn)的刪除:刪除某一特定的資產(chǎn)記錄。資產(chǎn)的借出與還入:將在庫資產(chǎn)借出,或?qū)⒔璩龅馁Y產(chǎn)還入庫中。資產(chǎn)記錄的打?。捍蛴‘斍坝涗浀娜抠Y產(chǎn)(資產(chǎn)登記表)、各部門擁有資產(chǎn)數(shù)(部門統(tǒng)計表)、資產(chǎn)報廢登記(報廢統(tǒng)計表)、資產(chǎn)折舊(折舊統(tǒng)計表)。系統(tǒng)用戶的管理:系統(tǒng)管理員能對訪問系統(tǒng)的用戶進行添加、修改、刪除操作。系統(tǒng)密碼的更改:系統(tǒng)的正式用戶都可以更改自己的密碼。系統(tǒng)多用戶分級管理:系統(tǒng)共設3種級別的用戶。1)普通用戶:能瀏覽資產(chǎn)表并進行查詢以及報表瀏覽。2)數(shù)據(jù)操作員:能進行資產(chǎn)的增加、刪除、修改、出借等操作以及報表瀏覽。3)系統(tǒng)管理員:能對系統(tǒng)用戶進行管理。系統(tǒng)功能模塊設計對上述各項功能進行集中、分塊,按照結(jié)構(gòu)化程序設計的要求,得到如圖2-1所示的系統(tǒng)功能模塊圖。
圖2-1系統(tǒng)功能模塊圖.資產(chǎn)查詢模塊該模塊的功能是提供資產(chǎn)數(shù)據(jù)的查詢以及顯示全部資產(chǎn)。.用戶管理模塊該模塊的功能是提供用戶的添加、刪除和修改。.資產(chǎn)管理模塊該模塊的功能是提供資產(chǎn)的添加、刪除、修改、借出還入、報廢、注銷以及資產(chǎn)的全部顯示和分條顯示。.報表打印模塊該模塊的功能是提供資產(chǎn)登記表、部門統(tǒng)計表、報廢統(tǒng)計表和統(tǒng)計表的瀏覽及打印。.系統(tǒng)管理模塊該模塊的功能是提供用戶密碼的修改和退出系統(tǒng)功能。3數(shù)據(jù)庫設計數(shù)據(jù)庫在一個信息管理系統(tǒng)中占有非常重要的地位,合理的數(shù)據(jù)庫結(jié)構(gòu)設計可以提高數(shù)據(jù)存儲的效率,保證數(shù)據(jù)的完整和一致。設計數(shù)據(jù)庫系統(tǒng)時應該首先充分了解用戶各個方面的需求,包括現(xiàn)有的以及將來可能增加的需求。數(shù)據(jù)庫設計一般包括如下幾個步驟:數(shù)據(jù)庫需求分析。數(shù)據(jù)庫概念結(jié)構(gòu)設計。數(shù)據(jù)庫邏輯結(jié)構(gòu)設計及實現(xiàn)。數(shù)據(jù)庫需求分析用戶的需求具體體現(xiàn)在各種信息的提供、保存、更新和查詢,這就要求數(shù)據(jù)庫結(jié)構(gòu)能充分滿足各種信息的輸出和輸入。收集基本數(shù)據(jù)、數(shù)據(jù)結(jié)構(gòu)以及數(shù)據(jù)處理的流程,組成一份詳盡的數(shù)據(jù)字典,為后面的具體設計打下基礎(chǔ)。在仔細分析調(diào)查有關(guān)資產(chǎn)管理信息需求的基礎(chǔ)上,將得到如圖3-1所示的本系統(tǒng)所處理的數(shù)據(jù)流程。圖3-1資產(chǎn)管理信息系統(tǒng)數(shù)據(jù)流程圖針對一般企業(yè)資產(chǎn)管理信息系統(tǒng)的需求,通過對企業(yè)資產(chǎn)管理工作過程的內(nèi)容和數(shù)據(jù)流程分析,設計如下面所示的數(shù)據(jù)項和數(shù)據(jù)結(jié)構(gòu):部門基本信息:包括部門編號、部門名稱。操作:輸入、刪除、查詢、修改。-10-資產(chǎn)基本信息:包括資產(chǎn)編號、名稱、型號、類型、所屬部門、購買價格、折舊價、購買日期、狀態(tài)(借出或在庫)、報廢時間、注銷時間、購買日期。操作:輸入、刪除、查詢、修改。資產(chǎn)借還信息:包括資產(chǎn)編號、借或還信息、使用部門、借或還時間、操作時間。操作:借出、還入。資產(chǎn)分類信息:包括資產(chǎn)分類號、資產(chǎn)分類名。操作:輸入、刪除、查詢、修改。用戶信息:包括用戶名、用戶密碼、用戶級別。操作:輸入、刪除、修改。有了上面的數(shù)據(jù)結(jié)構(gòu)、數(shù)據(jù)項和數(shù)據(jù)流程,我們就能進行下面的數(shù)據(jù)庫設計。數(shù)據(jù)庫概念結(jié)構(gòu)設計有了上面的具體企業(yè)資產(chǎn)管理需求以后,就可以設計出能夠滿足用戶需求的各種實體,以及它們之間的關(guān)系,為后面的邏輯結(jié)構(gòu)設計打下基礎(chǔ)。這些實體包含各種具體信息,通過相互之間的作用形成數(shù)據(jù)的操作及其變化的流程。本實例根據(jù)上面的設計規(guī)劃出的實體有:部門基本信息實體、資產(chǎn)基本信息實體、資產(chǎn)借還信息實體、資產(chǎn)分類信息實體、用戶信息實體。各個實體具體的描述E-R圖如下。部門基本信息實體E-R圖如圖3-2所示。圖3-2學生基本信息實體E-R圖資產(chǎn)基本信息實體E-R圖如圖3-3所示。-11-
資產(chǎn)借還信息實體E-R圖如圖3-4所示。資產(chǎn)分類信息實體E-R圖如圖3-5所示。圖3-5資產(chǎn)分類信息實體E-R圖用戶信息實體E-R圖如圖3-6所示。--12-圖3-6用戶信息實體E-R圖
實體之間關(guān)系的E-R圖如圖3-7所示。圖3-7實體之間關(guān)系的E-R圖數(shù)據(jù)庫邏輯結(jié)構(gòu)設計及實現(xiàn)經(jīng)過上面的需求分析和概念設計,再根據(jù)關(guān)系數(shù)據(jù)庫理論及其設計方法與技術(shù),就可以將上面的數(shù)據(jù)庫概念結(jié)構(gòu)轉(zhuǎn)化為Access2007數(shù)據(jù)庫系統(tǒng)所支持的實際數(shù)據(jù)模型,也就是數(shù)據(jù)庫的邏輯結(jié)構(gòu)。啟動Access2007,創(chuàng)建一個新的數(shù)據(jù)庫,命名為Data.mdb,保存在要存放這個系統(tǒng)的所有工程文件夾中。使用設計器創(chuàng)建這個系統(tǒng)需要的所有表格。企業(yè)資產(chǎn)管理系統(tǒng)數(shù)據(jù)庫中各個表格的設計結(jié)果如下面表格所示。每個表格表示在數(shù)據(jù)庫中的一個表。表3-1tblDepartment部門基本信息表-13-
表3-2tblDevice資產(chǎn)基本信息表園tblDevice:表字段名稱數(shù)據(jù)類型說明 1IID自動編號1DeviceNO文本資產(chǎn)編號DeviceN:diTiH文本資產(chǎn)名稱DeviceModel文本資產(chǎn)型號Typeth文本資產(chǎn)類型HeptBO文本所屬部門FruduetFrice貨幣購買價格PruductCuEt貨幣折舊價PufchasMllatP日期/時間購買日期Status數(shù)字狀態(tài):口一正常可用,1--借出RejertDate日期/時間報廢時間Disc:1i'dliath日期/時間注銷時間Rec口rdllate日期/時間錄入日期表3-3tblLend資產(chǎn)借還信息表國tblLend:表字段名稱數(shù)據(jù)類型說明 1LED自動編號Devicelll數(shù)字資產(chǎn)編號Uperatioil文本操作:惜或還LeriiJIlept文本使用部門LernlDatH日期/時間操作時間:借或還時間LendMan文本操作人表3-4tblTypelnfo資產(chǎn)分類信息表UUtblTypelnfo:表 □回國字段名稱數(shù)據(jù)類型說明 1TID自動編號TypetTD文本資產(chǎn)分類號Tj^iHlLdfTiP文本資產(chǎn)分類名IZI回表3-5tblUser用戶信息表IZI回--14-字段名稱數(shù)據(jù)類型說明AUID自動編號Lugin文本用戶名Fwd文本用戶密碼IJserLeTel數(shù)字用戶皴別Cr已打t211at已日期/時間創(chuàng)建時間國tblUser:表4系統(tǒng)具體程序?qū)崿F(xiàn)系統(tǒng)公共模塊和類模塊的創(chuàng)建VB的代碼存儲在模塊中。在VB中提供了三種類型的模塊:窗體模塊、公共模塊和類模塊。簡單的應用程序可以只有一個窗體,所用的程序都駐留在窗體模塊中,而當應用程序龐大復雜時,就要另外附加窗體。最終可能有幾個窗體中有一些共同都要執(zhí)行的代碼,為了在兩個窗體中不產(chǎn)生重復代碼,可創(chuàng)建一個獨立的模塊,用它實現(xiàn)代碼公用。該獨立模塊即是公共模塊。此外還可以建立包含共享代碼與數(shù)據(jù)的類模塊。每個標準模塊、類模塊和窗體模塊可包含:(1)聲明:可將常數(shù)、類型、變量和動態(tài)鏈接庫(DLL)過程的聲明放在窗體、類或公共模塊的聲明部分。每個模塊只有一個聲明部分。(2)過程:每個模塊可有多個過程,過程是劃分VB代碼的最小單元,每個過程是一個可執(zhí)行的代碼片段。VB中主要有子過程、函數(shù)過程或者屬性過程等創(chuàng)建工程項目——PrjDevice啟動VisualBasic后,單擊“文件”“新建工程”菜單,在工程模板中選擇“標準EXE”項,單擊“確定”按鈕,VisualBasic將自動產(chǎn)生一個Form窗體,這個窗體的屬性都是缺省設置。這里我們先刪除這個窗體,然后單擊“文件”一“保存工程”菜單,在出現(xiàn)的“文件另存為”對話框中,將這個工程項目命名為PbDevice。并且選擇要保存這個工程的目錄,單擊“保存”按鈕,保存工程。創(chuàng)建公用模塊在VisualBasic中可以用公用模塊來存放整個工程項目公用的函數(shù)、過程和全局變量等。因為不希望在多個窗體中重復代碼,所以要創(chuàng)建一個獨立模塊,它包含實現(xiàn)公共代碼的過程,這樣可以極大地提高代碼的效率。在項目資源管理器中為項目添加一個Module,保存為Global.bas。下面就可以開始編輯需要的代碼了。代碼見附錄十。創(chuàng)建類模塊在VB中類模塊是面向?qū)ο缶幊痰幕A(chǔ)??梢栽陬惸K中編寫代碼建立新對象。這些新對象可以包含自定義的屬性和方法。用類模塊創(chuàng)建對象,這些對象可被應用程序內(nèi)的過程調(diào)用。類模塊包含代碼又包含數(shù)據(jù)。類模塊的數(shù)據(jù),是相對于類實例(也就是,由類創(chuàng)建的每一個對象)而獨立存在的。類實例中的數(shù)據(jù)只存在于對象的存活期,它隨-15-對象的創(chuàng)建而創(chuàng)建,隨對象的撤消而消失。在本次設計中,由于企業(yè)資產(chǎn)管理系統(tǒng)啟動后,需要對用戶進行判斷。如果登錄者是授權(quán)用戶,將進入系統(tǒng),否則將停止程序的執(zhí)行。這個判斷需要在系統(tǒng)運行的最初進行,而且數(shù)據(jù)隨對象的創(chuàng)建而創(chuàng)建,隨對象的撤消而消失,因此將代碼放在類模塊中。類模塊的創(chuàng)建過程為:點擊“工程一添加類模塊”,在出現(xiàn)的“添加類模塊”框中單擊“打開”,此時生成一個類模塊,同時出現(xiàn)該類模塊的代碼編輯框。用戶管理類模塊代碼見附錄八。另外,資產(chǎn)管理類也需要創(chuàng)建為類模塊。代碼見附錄九。系統(tǒng)用戶登錄窗體的創(chuàng)建本程序考慮到系統(tǒng)的安全性,主要設置了用戶登錄論證。用戶登錄必須進行密碼校驗,保證信息的準確性。密碼驗證流程如圖4-1所示。經(jīng)過以上分析、建模過程,已經(jīng)完成了數(shù)據(jù)庫的后臺工作,建立起了能夠使系統(tǒng)順利、正確運行的后臺保障,完成了初期的工作目標,下面就完成人機交換的界面。一個友好完善的界面不僅能夠方便系統(tǒng)的使用者,而且能夠使各個模塊間的劃分更加明確,使系統(tǒng)結(jié)構(gòu)更趨于完善。另外窗口界面要多用按鈕和快捷鍵,少用菜單,窗口的各個控件布局要合理,美觀。-16-
在進入系統(tǒng)之前,要進行身份確認,只有用戶名和用戶密碼都相符的用戶方可進入本系統(tǒng)。當用戶要進入系統(tǒng)時,必須先輸入用戶名和密碼,按“確定”按鈕后,系統(tǒng)辨別用戶身份,對合法用戶根據(jù)用戶的權(quán)限級別賦予相應的使用功能。用戶登錄窗體界面設計如圖4-2:用戶登錄成功后,將顯示標志窗體,如圖4-3用戶登錄成功后,將顯示標志窗體,如圖4-3占八、、標企業(yè)資產(chǎn)管理系統(tǒng)主窗體的創(chuàng)建新添加一個窗體,在窗體上添加所需的控件,窗體和控件的屬性設置見以下表。表4-1主窗體屬性設置^空件屬性屬性取值frmMain(Form)名稱frmMain-17-
Caption企業(yè)資產(chǎn)管理系統(tǒng)V1.0BorderStyle2-SizableHeight7950Left1215Top720Width10635表4-2主窗體中控件一SSTab屬性設置^空件屬性屬性取值SSTab名稱tabMainCaption資產(chǎn)管理[&M]資產(chǎn)查詢[&Q]報表管理[&B]用戶管理[&U]系統(tǒng)管理[&S]EnabledTrueHeight7365Style1-ssStyleProPertyPageTop720Width10635Tab01234TabHeight400TabIndex0Tabs5TabsPerRow5TabStopTrueWidth10455SSTab控件提供了一組選項卡,每個都充當一個容器,包含了其他的控件。控件中-18-每次只有一個選項卡是活動的,給用戶提供了其所包含的控件,而其他選項卡都是隱藏的。要使用該控件,必須先確定打算如何在選項卡中放置其他控件。設置 Tabs和TabsPerRow屬性來創(chuàng)建選項卡并將它們安排成多行顯示。然后在設計時選擇每個選項卡。對于每個選項卡,繪制每個你想顯示的控件。如果必要,設置Caption,Picture,TabHeight和TabMaxWidth屬性來安排選項卡的上部。在運行時,用戶可以使用CTRL+TAB或使用選項卡上定義的快捷鍵瀏覽每個選項卡。也可以使用Style,ShowFocusRect,TabOrientation和WordWrap屬性來自定義整個SSTab控件。表4-3主窗體中控件一MSFlexGrid屬性設置^空件屬性屬性取值MSFlexGrid名稱grdDeviceBorderStyle1—flexBorderSingleCols2GridLines1—flexGridFlatGridLinesFixed2—flexGridInsetLeft195Rows2ScrollBars3—flexScrollBarBoth其他控件屬性設置在這里就不一一描述了,在窗體設計中可以查看。設置好控件及其屬性后,創(chuàng)建好的窗體如圖4-4-1一一4-4-5所示。-19-資產(chǎn)管理皿]|資產(chǎn)查詢叵]|報表管理出]|用戶管理[5|系統(tǒng)管理|所有資產(chǎn)列表[雙擊資產(chǎn)列表可以查看詳細內(nèi)容及其數(shù)據(jù)修改]:圖4-4-1企業(yè)資產(chǎn)管理系統(tǒng)主窗體資產(chǎn)管理圖4-4-2企業(yè)資產(chǎn)管理系統(tǒng)主窗體一一資產(chǎn)查詢資產(chǎn)管理[M]資產(chǎn)查詢叵]|報表管理[B]|用戶管理[U]]系統(tǒng)管理[S]][請選擇查詢條件]顯亭全部型號購置日期:注銷日期借出借入新增資產(chǎn)出]刪除資產(chǎn)資產(chǎn)注銷資產(chǎn)報廢開蛤查詢部門:cLoQEept ▼設備名:分類cboQTypeNO▼-20-圖4-4-3企業(yè)資產(chǎn)管理系統(tǒng)主窗體一一報表管理-21-在主窗體中,基本可以完成系統(tǒng)所需的所有功能。主窗體代碼見附錄三。主窗體完成后,下面將一一進行其功能的描述。在功能描述過程中,也會介紹其他窗體的創(chuàng)建。資產(chǎn)管理模塊只有當用戶以數(shù)據(jù)操作員的身份進入系統(tǒng)時,才能進入資產(chǎn)管理模塊。如圖4-5所-22-22-圖4-5資產(chǎn)管理模塊資產(chǎn)管理模塊主要實現(xiàn)以下功能:資產(chǎn)的添加。資產(chǎn)的修改。資產(chǎn)的刪除。資產(chǎn)的借出還入。資產(chǎn)的報廢。資產(chǎn)的注銷。(1)點擊“新增資產(chǎn)”按鈕,將出現(xiàn)“資產(chǎn)管理”窗體,如圖4-6所示。~~資產(chǎn)編號:資產(chǎn)名稱:狀態(tài):注銷日期:保存并退出[S]圖4-6資產(chǎn)管理界面
刪除并退出①]放棄并退出[C]填好新增資產(chǎn)的信息后,點擊“保存并退出"按鈕即可完成。如果想放棄此次操作,點擊“放棄并退出"按鈕即可?!百Y產(chǎn)管理”窗體的代碼見附錄四。在“資產(chǎn)管理”窗體中,有一個“購買日期”項,此項可以由用戶自行輸入,也可以利用下拉框進行選擇。如果是選擇日期,將會出現(xiàn)一個日期窗體,如圖資產(chǎn)名稱:狀態(tài):注銷日期:保存并退出[S]圖4-6資產(chǎn)管理界面
刪除并退出①]放棄并退出[C]填好新增資產(chǎn)的信息后,點擊“保存并退出"按鈕即可完成。如果想放棄此次操作,點擊“放棄并退出"按鈕即可。“資產(chǎn)管理”窗體的代碼見附錄四。在“資產(chǎn)管理”窗體中,有一個“購買日期”項,此項可以由用戶自行輸入,也可以利用下拉框進行選擇。如果是選擇日期,將會出現(xiàn)一個日期窗體,如圖4-7所示。Jj五月20082728293012345678910111214151617181920212223242526272829303112345673今天:2008-5-13圖4-7選擇日期窗體在“選擇日期窗體”中可以直接點擊所需日期,即可完成選擇并退出此窗體。“選擇日期窗體”的代碼見附錄五。(2)選定要操作的資產(chǎn)后,點擊“刪除資產(chǎn)”按鈕,將會出現(xiàn)對話框,如圖4-8所示。-23-圖4-8點擊“確定”將刪除當前選定的資產(chǎn)。(3)要進行資產(chǎn)的借出借入操作時,先選定要操作的資產(chǎn),再點擊“借出借入”按鈕,將出現(xiàn)以下窗體,如圖4-9所示。借出借入記錄:序號操作使用部門操作大|操作時間 |1歸還bMB 2口口8-5-14 2|借由口4-生產(chǎn)部h選擇惜出單位圖4-9資產(chǎn)借出借入記錄界面 退出如果選定的是筆記本電胭,仕窗體標題欄上將顯示“資產(chǎn)[筆記本電胭]借出借入記錄”,如果此資產(chǎn)的狀態(tài)是在庫,那么在窗體下面的按鈕上顯示的文字是“借出資產(chǎn)”,而且此次操作進行的是資產(chǎn)的借出操作;如果此資產(chǎn)的狀態(tài)是借出,那么在窗體下面的按鈕上顯示的文字是“歸還資產(chǎn)”,而且此次進行的是資產(chǎn)歸還操作。如圖4-10資產(chǎn)鉛筆的歸還操作。-24-
圖4-9和圖4-10都是由“資產(chǎn)借出借入記錄”窗體設計而成的,窗體設計界面如圖4-11所示。窗體代碼見附錄六。(4)選定要操作的資產(chǎn)后,點擊“資產(chǎn)報廢”按鈕,將會出現(xiàn)對話框,如圖4-12所示。圖4-12點擊“確定”,進行資產(chǎn)報廢操作。(5)選定要操作的資產(chǎn)后,點擊“資產(chǎn)注銷”按鈕,將會出現(xiàn)對話框,如圖4-13所示。圖4-13點擊“確定”,進行資產(chǎn)注銷操作。(6)如果要修改資產(chǎn)信息,可直接在資產(chǎn)列表中雙擊資產(chǎn),將出現(xiàn)如圖4-14所示。-25-
報廢日期: 注銷日期:保存并退出叵]圖4-14刪%管理界面報廢日期: 注銷日期:保存并退出叵]圖4-14刪%管理界面放棄并退出[Q圖4-14和圖4-6由同一窗體設計而成。窗體代碼見附錄四。4.3.2資產(chǎn)查詢模塊當用戶以數(shù)據(jù)操作員或普通用戶的身份進入系統(tǒng)時,可以進入資產(chǎn)查詢模塊。如圖4-15所示??砂促Y產(chǎn)所屬部門、資產(chǎn)名、資產(chǎn)型號、分類、購買日期等進行查詢。.3當用戶以數(shù)據(jù)操作員或普通用戶的身份進入系統(tǒng)時,可以進入報表管理模塊。如圖4-16所示。報表管理模塊主要實現(xiàn)如下功能:資產(chǎn)登記信息打印。-26-
部門擁有資產(chǎn)統(tǒng)計信息打印。資產(chǎn)報廢信息打印。資產(chǎn)折舊信息打印。資產(chǎn)管理皿I資產(chǎn)查詢?「報裝管通面;系統(tǒng)管理⑻I圖4-16報表管理界面(1)資產(chǎn)登記報表的設計如圖4-17所示。設計好的報表運行后如圖4-18所示。-27-資產(chǎn)登記表(2)部門統(tǒng)資產(chǎn)編號001所屬部門03報廢日期資產(chǎn)名稱筆記本電腦購買日期2008-4-15注銷日期資產(chǎn)型號町購買飾格¥5..800資產(chǎn)類型01折舊成本¥5,500資產(chǎn)編號020所屈部門02報廢日期資產(chǎn)名稱掃描儀購買日期2008-1-8注銷日期資產(chǎn)型號md購買飾格¥500資產(chǎn)類型01折舊成本¥420資產(chǎn)編號030所屬部門01報廢日期2008-5-6資產(chǎn)名稱鉛筆購買日期2005-4-17注銷日期2008-5-14資產(chǎn)型號資產(chǎn)類型ch02圖4一需警產(chǎn)登記表卜報表勺設計如圖4里ML報廢日期注銷日期2008-5-15資產(chǎn)型號UH購買飾格¥120資產(chǎn)類型02折舊成本¥100共1頁第1頁?貝斑頭^ectionZJ部門統(tǒng)計表¥細節(jié)tSectionl)所示。部門統(tǒng)計表技術(shù)部資產(chǎn)數(shù):1資產(chǎn)總額500經(jīng)理室資產(chǎn)數(shù):2資產(chǎn)總額5920市場部資產(chǎn)數(shù):1資產(chǎn)總額3圖4-20部門統(tǒng)計表-28-(3)報廢統(tǒng)計報表的設計如圖4-21所示。設計好的報表運行后如圖4-22所示。圖4-22報廢統(tǒng)計表(4)折舊統(tǒng)計報表的設計如圖4-23所示。圖4-23折舊統(tǒng)計表的設計設計好的報表運行后如圖4-24所示。-29-圖4-24折舊統(tǒng)計表4.3.4系統(tǒng)管理模塊用戶以數(shù)據(jù)操作員、普通用戶或系統(tǒng)管理員的身份進入系統(tǒng)時,都可以進入系統(tǒng)管理模塊。如圖4-25所示。系統(tǒng)管理模塊主要實現(xiàn)如下功能:?用戶密碼的修改。?系統(tǒng)的退出。如果是以系統(tǒng)管理員身份進入本系統(tǒng),還可以進行數(shù)據(jù)總清操作,此操作相當如作系統(tǒng)初始化。有舊能修,只有舊能修,只,才-30-
4.3.5用戶管理模塊用戶只有以系統(tǒng)管理員的身份進入本系統(tǒng)時,才可以進入用戶管理模塊。如圖4-26所示。用戶管理模塊主要實現(xiàn)如下功能:添加新用戶。刪除用戶。用戶信息的修改。4茴啪4-27所示保存并退出國1序?qū)S脩裘脩艏墑e 11d普通用戶4茴啪4-27所示保存并退出國1序?qū)S脩裘脩艏墑e 11d普通用戶2a普通用戶3b數(shù)據(jù)操作員_£adiriin系統(tǒng)管理1 1刪除并退出①]圖4-27新增用戶界面放棄并退出[口輸入用戶名及用戶密碼,選擇用戶級別,點擊“保存并退出"按鈕,即可完成。(2)如果要刪除用戶,先選定要操作的用戶,然后點擊“刪除用戶”按鈕,出現(xiàn)提示對話框,點“確定”后即可刪除該用戶。(3)如果要修改用戶信息,可直接雙擊用戶,將打開以下界面,如圖4-28。-31-放棄并退出[C]刪除并退出[D]放棄并退出[C]刪除并退出[D]在此界面中即可進行用戶信息的修改。圖4-27新增用戶界面和圖4-28用戶修改界面共用一個窗體,它們都是由用戶管5系統(tǒng)的編譯和發(fā)行完成了企業(yè)資產(chǎn)管理信息系統(tǒng)的編程和調(diào)試工作,最后一步就是該系統(tǒng)的編譯和發(fā)行。這涉及到工程項目屬性的設置、可執(zhí)行應用程序的生成。在系統(tǒng)的編譯和發(fā)行之前,需要設置工程項目的屬性。選擇“工程一PrjDevice屬性”菜單,進行屬性設置,如圖5-1所示。最后選擇“文件一生成PrjDevice.exe”菜單,編譯開始。編譯完畢后,即生成了相應的可執(zhí)行文件。編譯通過后,生成可執(zhí)行文件PrjDevice.exe。我們需要在發(fā)行前對生成的可執(zhí)行文件進行測試。通過測試的可執(zhí)行文件,就可以進行發(fā)布了。-32-
6小結(jié)通過這次對企業(yè)資產(chǎn)管理系統(tǒng)的制作,我學會了用VB和Access做一個簡單的應用軟件。在本設計中,詳細地講述了該企業(yè)資產(chǎn)管理系統(tǒng)的系統(tǒng)設計部分,包括功能模塊設計、數(shù)據(jù)庫結(jié)構(gòu)設計等。系統(tǒng)設計為整個程序構(gòu)建了骨架,各個功能模塊實現(xiàn)各個細節(jié)部分。首先,在這個設計中,我學會了VB中很多控件的使用。本系統(tǒng)中使用了SSTab控件,使系統(tǒng)界面顯得美觀、簡潔、大方。系統(tǒng)用ADO控件對數(shù)據(jù)庫進行了連接,對控件內(nèi)的屬性都有了具體的了解,能夠靈活的運用到程序中去。-33-其次,在數(shù)據(jù)庫創(chuàng)建中,學會了如何在Access中創(chuàng)建簡單的數(shù)據(jù)庫,以及各表中數(shù)據(jù)的相關(guān)設置。雖然數(shù)據(jù)庫創(chuàng)建非常簡單,但用SQL語言對其進行訪問、添加、修改,讓我學到了更多相關(guān)知識。在這次設計中,我發(fā)現(xiàn)了自己在很多方面的不足,認為此系統(tǒng)的難點在以下幾個方面,首先是系統(tǒng)中功能模塊的連接問題,對具體的模塊設置還存在很大程度上的不足;其次是在系統(tǒng)與數(shù)據(jù)庫的連接上,一些控件中屬性的修改和連接,還值得我好好去學習;最后是數(shù)據(jù)庫建表中,表和表之間的關(guān)聯(lián)性,以及表中關(guān)鍵字的唯一性還有待我進一步的研究。在編寫開題報告、填寫實習日記、編寫畢業(yè)論文和設計本系統(tǒng)的過程中,得到了指導老師胡宗玉老師的指導和幫助,在此表示衷心的感謝。指導老師胡宗玉教授不論多么繁忙,只要我去問關(guān)于畢業(yè)設計的問題時,他都會放下手里的工作耐心的給我解答,直到我明白了為止。老師那熱心、耐心和認真的工作態(tài)度使我很感動,我非常感激他。他無論在理論上還是在實踐中,都給與我很大的幫助,使我得到不少的提高,這對于我以-34-后的工作和學習都是一種巨大的幫助除此之外,我還要致謝我的幾位同學的得力相助,我希望我能向他們學習,發(fā)揚那種百折不撓、孜孜不倦的對知識求索精神,那種至高無上的敬業(yè)精神,。再次衷心地感謝幫助我的老師和同學們。參考文獻[1]羅頌,陳林編著.VisualFoxpro企業(yè)辦公系統(tǒng)開發(fā)實例導航.北京:人民郵電出版社,2004.4[2]劉韜,駱娟,何旭洪編著.VisualBasic數(shù)據(jù)庫系統(tǒng)開發(fā)實例導航.北京:人民郵電出版社,2004.4[3]劉萌,周學明,郭安源編著.Visualbasic企業(yè)辦公系統(tǒng)開發(fā)實例導航.北京:人民郵電出版社,2004.6[4]劉炳文編著.Visualbasic程序設計教程.北京:清華大學出版社,2004.7[5]劉炳文編著.精通Visualbasic6.0中文版.北京:電子工業(yè)出版社,2000.3-35-[6]陳艷峰,高文姬,邵蘊秋編著.VisualBasic數(shù)據(jù)庫項目實例導航.北京:清華大學出版社,2004.[7]周峰編著.VisualBasic實例開發(fā)集錦.北京:電子工業(yè)出版社,2005[8](美)StevnJordan牛力等編著.VisualBasic6編程寶典.北京:電子工業(yè)出版社,2005[9]林永張,樂強編著.Visualbasic6.0用戶編程手冊.北京:人民郵電出版社,2003[10]伍俊良編著.Visualbasic程序設計與系統(tǒng)開發(fā)案例.北京:清華大學出版社,2001.9[11]李曉黎,張巍編著.Visualbasic+SQLServer數(shù)據(jù)庫應用系統(tǒng)開發(fā)與實例.北京:人民郵電出版社,2003[12]田原,李素若,陳志宏,胡玉榮等編著.VB.NET程序設計.北京:清華大學出版社,2006.6[13]豈興明,矯津毅,銀華強等編著.Visualbasic.NET項目開發(fā)寶典.北京:電子工業(yè)出版社,2007[14](美)EvangelosPetroutsos編著.Visualbasic.NET從入門到精通.北京:電子工業(yè)出版社,2002.7RonaldJ.Norman.Object—orientedSystemsAnalysisandDesign.Prentice-HallInternationalInc,June1998:184-210PJeffreyD.UllmanandJenniferWidom.AFirstCourseinDatabaseSystems.Prentice-Hallinternational1nc,April1998AniteshBarva,AndrewB.WhinstonandFangYin.ValueandProductitvintheInternetEconomyComputer.Prentice-HallinternationalInc,May2000.AndrawS.Tanenbaum.ComputerNetworks.Prentic-HallInternationalInc,February1997:1-53PSangH.Son.SupportingTimelinessandSecurityinReal-TimeDatabaseSystems.ComputerScienceUniversityofVirginiaCharlottesvilleVA22903USA,April2000HarryM.Deitel,PaulJ.Deitel,TemR.Nieto.VisualBasic6.0.電子工業(yè)出版社,2005-36-附錄附錄一:登錄窗體代碼:OptionExplicitPublicLoginSucceededAsBooleanPrivateSubcmdCancel_Click()'設置全局變量為false'不提示失敗的登錄LoginSucceeded=FalseMe.HideEndSub-37-PrivateSubcmdOK_Click()DimstrPwdAsStringDimrsPwdAsADODB.RecordsetDimstrLoginAsStringstrLogin=Trim(txtUserName.Text)strPwd=Trim(txtPassword.Text)IfLen(strLogin)=0ThenMsgBox”用戶名不能為空,請輸入用戶名”txtUserName.SetFocusExitSubEndIfIfLen(strPwd)=0ThenMsgBox”密碼不能為空,請輸入正確的密碼”txtPassword.SetFocusExitSubEndIfSetrsPwd=gConn.Execute("SELECTpwdFROMtblUserWHERElogin』"&Replace(strLogin,m”")&"'")IfrsPwd.EOFThenMsgBox"用戶名不正確,請重新輸入!”ElseIfstrPwd=rsPwd("pwd").valueThen'將代碼放在這里傳遞'成功到calling函數(shù)'設置全局變量時最容易的LoginSucceeded=TrueMe.HideElseMsgBox"無效的密碼,請重試!",,"登錄"txtPassword.SetFocusSendKeys"{Home}+{End}"EndIfrsPwd.CloseSetrsPwd=NothingEndSubPrivateSubForm_Load()EndSub附錄二:標志窗體代碼:PrivateSubCommand1_Click()-38-Me.HidefrmMain.ShowEndSub附錄三:主窗體代碼:OptionExplicit執(zhí)行資產(chǎn)顯示列表操作PrivateSubdoDevice(iidAsString)DimfrmAsNewfrmDeviceIfLen(iid)>0Thenfrm.loadDeviceiidEndIffrm.setStatusfrm.ShowvbModalIffrm.isUpdate=TrueThengrdDevice.Tag=""CallfillDeviceGrid(grdDevice)EndIfUnloadfrmSetfrm=NothingEndSub執(zhí)行用戶顯示列表操作PrivateSubdoUser(uidAsString)DimfrmAsNewfrmUserIfLen(uid)>0Thenfrm.loadUseruidEndIffrm.setStatusfrm.ShowvbModalIffrm.isUpdate=TrueThengrdUser.Tag=""CallfillUserGridEndIfUnloadfrmSetfrm=NothingEndSubPrivateSubcmdAdd_Click()CalldoDevice("")EndSub-39-PrivateSubcmdAll_Click()grdQuery.Tag=""fillDeviceGridgrdQueryEndSubPrivateSubcmdDelete_Click()DimiidAsStringWithgrdDeviceIf.Row=0ThenMsgBox”請選擇要刪除的資產(chǎn)!”ElseIfMsgBox("你是否真的要刪除當前選擇的資產(chǎn)嗎?刪除后將不能恢復!”,vbOKCancel)=vbOKThen.Col=1iid=.TextDimdeviceAsNewclassDevicedevice.deleteDataiidgrdDevice.Tag=""CallfillDeviceGrid(grdDevice)EndIfEndIfEndWithEndSubPrivateSubcmdDisCard_Click()DimiidAsStringDimstrDateAsStringWithgrdDeviceIf.Row=0ThenMsgBox"請選擇要報廢的資產(chǎn)!”ElseIfMsgBox("你是否真的要報廢當前選擇的資產(chǎn)嗎?報廢后將不能恢復!”,vbOKCancel)=vbOKThen.Col=1iid=.TextstrDate=getDate("")IfLen(strDate)>0ThenDimdeviceAsNewclassDeviceIfdevice.Reject(iid,strDate)=TrueThen.Tag=""fillDeviceGridgrdDeviceEndIf-40-Setdevice=NothingEndIfEndIfEndIfEndWithEndSubPrivateSubcmdExit_Click()IfMsgBox("是否真的要退出系統(tǒng)嗎?”,vbYesNo)=vbYesThenUnloadMeEndIfEndSubPrivateSubcmdGetDate_Click(IndexAsInteger)DimthedateAsStringthedate=getDate(txtDate(Index).Text)IfLen(thedate)>0ThentxtDate(Index).Text=thedateEndSubPrivateSubcmdLend_Click()DimiidAsStringWithgrdDeviceIf.Row=0ThenMsgBox”請選擇要操作的資產(chǎn)!”Else.Col=1iid=.TextDimfrmAsNewfrmLendDimresultAsBooleanresult=frm.loadLendData(iid)Ifresult=FalseThenUnloadfrmExitSubEndIffrm.ShowvbModalIffrm.isUpdate=TrueThengrdDevice.Tag=""fillDeviceGridgrdDeviceEndIfUnloadfrmSetfrm=NothingEndIfEndWithEndSub-41-PrivateSubcmdPass_Click()DimoldPassAsStringDimnewPass1AsStringDimnewPass2AsStringoldPass=InputBox("請輸入舊密碼:",“密碼修改”)IfLen(oldPass)>0ThenIfoldPass<>gUser.PasswordThenMsgBox”輸入密碼不正確!”ExitSubEndIfnewPass1=InputBox("請輸入新密碼:","密碼修改")IfLen(newPass1)=0ThenMsgBox”密碼修改不成功!”ExitSubElsenewPass2=InputBox("請再次輸入新密碼確認:","密碼修改")IfLen(newPass2)=0ThenMsgBox”密碼修改不成功!”ExitSubElseIfnewPass1=newPass2ThenIfgUser.resetPassword(newPass1)=FalseThenMsgBox”數(shù)據(jù)操作錯誤,密碼修改不成功!”ElseMsgBox”密碼成功修改!請保存好你的密碼!”EndIfExitSubElseMsgBox”兩次輸入的新密碼不一樣,修改失敗!”ExitSubEndIfEndIfElseMsgBox”密碼修改不成功!”ExitSubEndIfEndSubPrivateSubcmdQuery_Click()DimDeptNoAsStringDimDeviceNameAsStringDimDeviceModelAsStringDimTypeNoAsStringDimPricefromAsString-42-DimPricetoAsStringDimPurchaseDatefromAsStringDimPurchaseDatetoAsStringDimRejectDatefromAsStringDimRejectDatetoAsStringDimstrSQLAsStringIfcboQDept.ListIndex>0ThenDeptNo=getDeptNo()strSQL="a.deptno='"&DeptNo&m"EndIfIfcboQTypeNO.ListIndex>0ThenTypeNo=getTypeNO()IfLen(strSQL)>0ThenstrSQL="ANDa.typeno='"&TypeNo&m"ElsestrSQL="a.typeno='"&TypeNo&m"EndIfEndIfDeviceName=Replace(Trim(txtQDeviceName.Text),"'","''")DeviceModel=Replace(Trim(txtQModel.Text),"'","''")Pricefrom=Trim(txtQP1.Text)Priceto=Trim(txtQP2.Text)PurchaseDatefrom=Trim(txtDate(0).Text)PurchaseDateto=Trim(txtDate(1).Text)RejectDatefrom=Trim(txtDate(2).Text)RejectDateto=Trim(txtDate(3).Text)IfLen(Pricefrom)>0ThenIfNotIsNumeric(Pricefrom)ThenMsgBox”購買價格輸入不正確,請重新輸入?!眛xtQP1.SetFocusExitSubElseIfLen(strSQL)>0ThenstrSQL=strSQL&"ANDProductPrice>="&PricefromElsestrSQL="ProductPrice>="&PricefromEndIfEndIfEndIfIfLen(Priceto)>0ThenIfNotIsNumeric(Priceto)ThenMsgBox”購買價格輸入不正確,請重新輸入?!眛xtQP2.SetFocusExitSub-43-ElseIfLen(strSQL)>0ThenstrSQL=strSQL&"ANDProductPrice<="&PricetoElsestrSQL="ProductPrice<="&PricetoEndIfEndIfEndIfIfLen(PurchaseDatefrom)>0ThenIfNotIsDate(PurchaseDatefrom)ThenMsgBox”購買日期輸入不正確,請重新輸入。"txtDate(0).SetFocusExitSubElseIfLen(strSQL)>0ThenstrSQL=strSQL&"ANDPurchaseDate>=#"&PurchaseDatefrom&"#ElsestrSQL="ProductPrice>=#"&PurchaseDatefrom&"#"EndIfEndIfEndIfIfLen(PurchaseDateto)>0ThenIfNotIsDate(PurchaseDateto)ThenMsgBox"購買日期輸入不正確,請重新輸入。"txtDate(1).SetFocusExitSubElseIfLen(strSQL)>0ThenstrSQL=strSQL&"ANDPurchaseDate<=#"&PurchaseDateto&"#"ElsestrSQL="ProductPrice<二#"&PurchaseDateto&"#"EndIfEndIfEndIfIfLen(RejectDatefrom)>0ThenIfNotIsDate(RejectDatefrom)ThenMsgBox"注銷日期輸入不正確,請重新輸入。"txtDate(2).SetFocusExitSubElseIfLen(strSQL)>0ThenstrSQL=strSQL&"ANDRejectDate>=#"&RejectDatefrom&"#"ElsestrSQL="RejectDate>=#"&RejectDatefrom&"#"-44-EndIfEndIfEndIfIfLen(RejectDateto)>0ThenIfNotIsDate(RejectDateto)ThenMsgBox”注銷日期輸入不正確,請重新輸入?!眛xtDate(3).SetFocusExitSubElseIfLen(strSQL)>0ThenstrSQL=strSQL&"ANDRejectDate<二#"&RejectDateto&"#"ElsestrSQL="RejectDate<二#"&RejectDateto&"#"EndIfEndIfEndIfIfLen(DeviceName)>0ThenIfLen(strSQL)>0ThenstrSQL=strSQL&"ANDDeviceNameLIKE'%"&DeviceName&"%'"ElsestrSQL="DeviceNameLIKE'%"&DeviceName&"%'"EndIfEndIfIfLen(DeviceModel)>0ThenIfLen(strSQL)>0ThenstrSQL=strSQL&"ANDDeviceModelLIKE'%"&DeviceModel&"%'"ElsestrSQL="DeviceModelLIKE'%"&DeviceModel&"%'"EndIfEndIfIfLen(strSQL)>0ThenstrSQL="SELECTa.*,b.department,c.TypeNameFROM(tblDeviceASAINNERJOINtblDepartmentASBONa.DeptNO=b.DeptNO)INNERJOINtblTypeInfoCONa.TypeNO=c.TypeNOWHERE"&strSQL&"ORDERBYA.IIDDESC"ElsestrSQL="SELECTa.*,b.department,c.TypeNameFROM(tblDeviceASAINNERJOINtblDepartmentASBONa.DeptNO=b.DeptNO)INNERJOINtblTypeInfoCONa.TypeNO=c.TypeNOORDERBYA.IIDDESC"EndIfgrdQuery.Tag=""fillDeviceGridgrdQuery,strSQLEndSub-45-PrivateSubcmdReject_Click()DimiidAsStringDimstrDateAsStringWithgrdDeviceIf.Row=0ThenMsgBox”請選擇要注銷的資產(chǎn)!”ElseIfMsgBox("你是否真的要注銷當前選擇的資產(chǎn)嗎?注銷后將不能恢復匕vbOKCancel)=vbOKThen.Col=1iid=.TextstrDate=getDate("")IfLen(strDate)>0ThenDimdeviceAsNewclassDeviceIfdevice.DisCard(iid,strDate)=TrueThen.Tag二心fillDeviceGridgrdDeviceEndIfSetdevice=NothingEndIfEndIfEndIfEndWithEndSubPrivateSubcmdReport1_Click()DimreportAsNewdrDeviceDimrsAsADODB.RecordsetSetrs=gConn.Execute("SELECT*FROMtbldevice")WithreportSet.DataSource=rs.DataMember="".ShowvbModalEndWithSetreport=NothingEndSubPrivateSubcmdReport2_Click()DimreportAsNewdrDepartmentDimrsAsADODB.RecordsetSetrs=gConn.Execute("SELECTdepartment,count(*)ascountofDevice,sum(productprice)assumofDeviceFROMtbldeviceainnerjointbldepartmentbona.deptno=b.deptnogroupbyb.department")-46-WithreportSet.DataSource=rs.DataMember="".ShowvbModalEndWithSetreport=NothingEndSubPrivateSubcmdReport3_Click()DimreportAsNewdrRejectDimrsAsADODB.RecordsetSetrs=gConn.Execute("SELECTdevicename,department,rejectdateFROMtbldeviceainnerjointbldepartmentbona.deptno=b.deptnowhererejectdateisnotnull")WithreportSet.DataSource=rs.DataMember="".ShowvbModalEndWithSetreport=NothingEndSubPrivateSubcmdReport4_Click()DimreportAsNewdrCostDimrsAsADODB.RecordsetSetrs=gConn.Execute("SELECTdevicename,department,productprice,productcostFRO
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 信息通信信息化系統(tǒng)管理員安全教育水平考核試卷含答案
- 鋼水罐準備工班組考核強化考核試卷含答案
- 數(shù)碼沖印師安全操作能力考核試卷含答案
- 氣體分離工操作管理考核試卷含答案
- 海上平臺電氣培訓
- 酒店客房預訂操作規(guī)范及風險控制制度
- 酒店餐飲服務規(guī)范制度
- 車站客運服務安全操作規(guī)程制度
- 綠色建筑構(gòu)件裝備制造項目可行性研究報告模板-備案審批
- 水基型滅火器生產(chǎn)線項目環(huán)境影響報告表
- 2026年標準版離婚協(xié)議書(有財產(chǎn))
- 養(yǎng)老院電氣火災培訓課件
- 中國工商銀行2025年度春季校園招聘筆試歷年典型考題及考點剖析附帶答案詳解
- 對外話語體系構(gòu)建的敘事話語建構(gòu)課題申報書
- 中國家庭財富與消費報告2025年第三季度
- 馬年猜猜樂(馬的成語)打印版
- 精神障礙防治責任承諾書(3篇)
- 2025年擔保公司考試題庫(含答案)
- 合肥新鑫人力資源服務有限公司介紹企業(yè)發(fā)展分析報告
- 2025年金融控股公司行業(yè)分析報告及未來發(fā)展趨勢預測
- 質(zhì)量控制計劃模板全行業(yè)適用
評論
0/150
提交評論