第一篇:VB+Access學(xué)生公寓管理系統(tǒng)-論文
VB+Access學(xué)生公寓管理系統(tǒng)-論文
中文摘要
隨著電腦的普及與使用,現(xiàn)在的管理也提升了一個(gè)檔次,漸漸實(shí)現(xiàn)了無(wú)紙化辦公,即從原來(lái)的人工記錄管理模式轉(zhuǎn)變?yōu)殡娔X一體化管理。高校是科研的陣地,后勤的公寓管理也應(yīng)該一改傳統(tǒng)的人工管理,更加信息化,時(shí)代化,節(jié)省人力物力,提高效率?;谶@一點(diǎn),開(kāi)發(fā)此學(xué)生公寓管理軟件。學(xué)生公寓管理軟件,是以高校的管理方式為實(shí)例而設(shè)計(jì)的一種實(shí)用型管理系統(tǒng)。本系統(tǒng)最大的特點(diǎn)是通用性、簡(jiǎn)單操作性,適用于同行業(yè)以及一些同類(lèi)型的企業(yè)管理。隨著學(xué)校寄宿人員的增多,公寓管理人員的負(fù)擔(dān)越來(lái)越重,為了讓所有公寓管理人員能從繁重的工作中解脫出來(lái),實(shí)現(xiàn)無(wú)紙化辦公;使工作更有條理,更方便,更有效率而開(kāi)發(fā)出這套公寓管理軟件。軟件從對(duì)學(xué)生的分房開(kāi)始到最后的公寓管理全部電腦化。它主要包括:公寓、寢室的配置、住宿人員登記、衛(wèi)生檢查、公寓資產(chǎn)、學(xué)生違紀(jì)、值班老師記錄以及對(duì)學(xué)生住宿情況查詢(xún),可以更快地了解到每個(gè)學(xué)生的住宿情況,使公寓的管理效率更高,做的更好!
關(guān)鍵字:配置、登記、檢查 Abstract
With the popularization and use of the computer, present management has been promoted much, more and more jobs have been done by computer.It namely changes the original artificial record management mode into computer''s integrating and managing.The university is the position of scientific research, the apartment management should change traditional managing artificially too, for the efficiency.So , develop the management software of student''s apartment.Student Apartment Management System is a utility management system based on the managing mode of many universities and colleges.Universal and easy-operating are the greatest features of the system ,which is also applicable for enterprises of the same type.Apartment keepers bear a increasingly heavy burden because of the gradually added number of roomers.In order to free apartment keepers from the heave work,and make the work more convienent and efficient.The apartment management system is developed.The system computerized all the processes concerning the apartment management which include apartment,dormitory distribution,roomer registration,santitation examination,and the query for apartment property,students'' violation of discipline,teachers'' records and rooming situation.It makes the apartment management more efficient and much better.Key word: dispose、register、check 目錄
引言...4 第一章系統(tǒng)分析...5 1.1開(kāi)發(fā)工具簡(jiǎn)介及系統(tǒng)運(yùn)行環(huán)境...5 1.2開(kāi)發(fā)的必要性...6 1.3系統(tǒng)開(kāi)發(fā)的可行性...7 1.4數(shù)據(jù)來(lái)源...8 1.5新系統(tǒng)數(shù)據(jù)流程圖...9 第二章 數(shù)據(jù)庫(kù)設(shè)計(jì)...12 第三章功能模塊設(shè)計(jì)...16 3.1新系統(tǒng)功能結(jié)構(gòu)圖及運(yùn)行圖如下:...16 3.2系統(tǒng)設(shè)置:.17 3.3公寓管理...18 3.4 衛(wèi)生檢查...19 3.5 公寓資產(chǎn)...20 3.6 記錄查看與記錄刪除...20 3.7值班記錄...20 3.8幫助制作...21 第四章 程序設(shè)計(jì)...22 主程序流程圖...22 4.1 登錄界面...23 4.2 程序主界面...26 4.3系統(tǒng)設(shè)置...32 4.4公寓管理...57 4.5衛(wèi)生檢查...60 4.6 公寓資產(chǎn)...64 4.7記錄查看...66 4.8記錄刪除...74 4.9值班記錄...81 4.10 Help制作...88 第五章 系統(tǒng)測(cè)試...90 總結(jié)...91 參考文獻(xiàn)...92 引言
隨著電腦的普及與應(yīng)用,現(xiàn)在的管理也需要提升一個(gè)檔次。即從原來(lái)的手工記錄管理模式轉(zhuǎn)變?yōu)殡娔X一體化管理。這樣會(huì)給公寓的管理人員帶來(lái)很多好處,讓他們管理的效率更高、效果更好,管理起來(lái)更方便。由此而產(chǎn)生了本管理軟件――學(xué)生公寓管理軟件。學(xué)生公寓管理軟件是用Microsoft Visual Basic 編寫(xiě)完成。由于Visual Basic率先采用了可視化(VISUAL)的程序設(shè)計(jì)方法。所以利用系統(tǒng)提供的大量可視化控件,可以方便的以可視化方式直接繪制用戶圖形界面,并可直觀,動(dòng)態(tài)的調(diào)整界面的風(fēng)格和樣式,直到滿意為止,從而克服了以前必須用大量代碼去描述界面元素的外觀和位置的傳統(tǒng)編程模式。做起來(lái)方便,使用起來(lái)更為快捷。
作為一個(gè)學(xué)生公寓的管理軟件,要十分全面的貼近以及適合大學(xué)公寓的管理方法。本軟件的參考資料主要有兩種來(lái)源:一是參考本學(xué)校公寓的管理結(jié)構(gòu),管理方法。如各個(gè)公寓的分布特色,以及公寓的各種管理制度。這些資料是本軟件的主要依據(jù),也可以說(shuō)這些資料來(lái)源于普通的生活,比較真實(shí)一些。二是來(lái)源于網(wǎng)絡(luò)上的各種同類(lèi)軟件,通過(guò)這些軟件可以看出一個(gè)公寓最低需要哪些管理與設(shè)置,在這些軟件中,有些軟件功能比較齊全,但是在管理上顯的非常的不方便,使用起來(lái)十分麻煩、繁瑣,有些雖然簡(jiǎn)單,但是功能上又不是十分完善,對(duì)這些軟件首先要進(jìn)行取其精華,棄其糟粕,從而進(jìn)行編寫(xiě)。
本軟件主要包括以下方面:系統(tǒng)設(shè)置、公寓管理、衛(wèi)生檢查、公寓資產(chǎn)、記錄查看、記錄刪除、值班記錄、幫助制作。
學(xué)生公寓管理軟件目前版本為1.0.1,為一個(gè)測(cè)試版本。它目前在功能上,以及操作的簡(jiǎn)便上有很大的改進(jìn)。但是還是存在一些不足,在有些功能的實(shí)現(xiàn)上還不是十分的理想,這也是本人在時(shí)間和精力上留下的遺憾。但是相信這些會(huì)在以后的版本中得到完善,使這個(gè)軟件成為一個(gè)功能上最全,使用上最簡(jiǎn)捷方便的管理軟件。431
[10]...>> 第一章系統(tǒng)分析
系統(tǒng)采用MICROSOFT公司的 VISUAL BASIC語(yǔ)言編寫(xiě)的學(xué)生公寓管理系統(tǒng),本系統(tǒng)在研制開(kāi)發(fā)過(guò)程中,嚴(yán)格遵循軟件工程方法,完全采用結(jié)構(gòu)化程序設(shè)計(jì)方法。
本系統(tǒng)的主要功能可以方便的對(duì)學(xué)生公寓進(jìn)行管理,系統(tǒng)采用ACCESS數(shù)據(jù)庫(kù)使數(shù)據(jù)具有較強(qiáng)的完整性、較好的數(shù)據(jù)安全性等特點(diǎn)以及提供了標(biāo)準(zhǔn)的幫助,使用戶方便的獲得所需的幫助。界面友好、操作簡(jiǎn)單、功能齊全、具有較好的人機(jī)接口界面是本系統(tǒng)的最大優(yōu)點(diǎn)。1.1開(kāi)發(fā)工具簡(jiǎn)介及系統(tǒng)運(yùn)行環(huán)境 1.1.1
VB6簡(jiǎn)介
本軟件的開(kāi)發(fā)工具為VISUAL BASIC,作為一種開(kāi)發(fā)語(yǔ)言,VISUAL BASIC率先采用了可視化(VISUAL)的程序設(shè)計(jì)方法。利用系統(tǒng)提供的大量可視化控件,可以方便的以可視化方式直接繪制用戶圖形界面,并可直觀、動(dòng)態(tài)的調(diào)整界面的風(fēng)格和樣式,直到滿意為止,從而克服了以前必須用大量代碼去描述界面元素的外觀和位置的傳統(tǒng)編程模式。
它還擁有面向?qū)ο蟮木幊谭椒?。面向?qū)ο蟮某绦蛟O(shè)計(jì)是伴隨WIDNOWS圖形界面的誕生而產(chǎn)生的一種新的程序設(shè)計(jì)思想,與傳統(tǒng)程序設(shè)計(jì)有著較大的區(qū)別,VISUAL BASIC采用了面向?qū)ο蟮某绦蛟O(shè)計(jì)思想。所謂“對(duì)象”就是現(xiàn)實(shí)生活中的每個(gè)一人,每一個(gè)可見(jiàn)的實(shí)體。同樣,在VISUAL BASIC中,用來(lái)構(gòu)成用戶圖形界面的可視化控件,也可視為是一個(gè)對(duì)象。不同的對(duì)象,在程序中所賦給它的功能是不同的,比如,在圖形界面上有兩個(gè)命令按鈕,一個(gè)用來(lái)實(shí)現(xiàn)數(shù)據(jù)的統(tǒng)計(jì)計(jì)算,另一個(gè)用來(lái)實(shí)現(xiàn)數(shù)據(jù)的打印,這兩個(gè)按鈕就可視為是兩個(gè)不同的對(duì)象,為了實(shí)現(xiàn)這兩個(gè)對(duì)象各自不同的功能,接下來(lái)就應(yīng)該分別針對(duì)這兩個(gè)對(duì)象編寫(xiě)程序代碼,這種編程的思想和方法即為所謂的“面向?qū)ο蟮某绦蛟O(shè)計(jì)”。它還支持第三方軟件商為其開(kāi)發(fā)的可視化控制對(duì)象,如本例中就用到了一個(gè)。這些可視化控件對(duì)應(yīng)的文件擴(kuò)展名這OCX。只要擁有控件的OCX文件,就可將其加入到VB系統(tǒng)中,從而大大增強(qiáng)VB的編程實(shí)力。使軟件做起來(lái)會(huì)更加得心應(yīng)手。1.1.2 HELP 制作
制作help文檔需要一個(gè)專(zhuān)業(yè)制作軟件,本人使用的是破解版的QuickCHM,此軟件無(wú)論在功能上還在是操作上用起來(lái)都是很方便。它屬于一個(gè)傻瓜型的制作軟件,利用它可以快速的制作出各種你所需要的幫助文檔。但是如果想制作出幫助文檔,就需要使用制作網(wǎng)頁(yè)的軟件把內(nèi)容先做成html形式,本人使用Dreamweaver制作的網(wǎng)頁(yè),然后在用此軟件進(jìn)行加載,最后生成chm文檔。1.2開(kāi)發(fā)的必要性
信息資源已成為各個(gè)部門(mén)的重要財(cái)富和資源,建立一個(gè)滿足各級(jí)部門(mén)信息處理需要的信息系統(tǒng),也一個(gè)企業(yè)或組織生存越來(lái)越重要的信息資源。長(zhǎng)期以來(lái),使用傳統(tǒng)人工的方法管理高校公寓,這種管理方式存在著許多缺點(diǎn),如:效率低。而且時(shí)間一長(zhǎng),將產(chǎn)生大量的文件和數(shù)據(jù),這對(duì)于查找、更新、維護(hù)都帶來(lái)了不少的困難。
隨著科學(xué)技術(shù)的不斷提高,計(jì)算機(jī)科學(xué)日漸成熟,其強(qiáng)大的功能已為人們深刻認(rèn)識(shí),它已進(jìn)入人類(lèi)社會(huì)的各個(gè)領(lǐng)域并發(fā)揮越來(lái)越重要的作用。學(xué)生公寓管理軟件,是以高校的管理方式為實(shí)例而設(shè)計(jì)的一種實(shí)用型管理軟件。
本系統(tǒng)最大的特點(diǎn)是通用性、簡(jiǎn)單操作性。隨著學(xué)校寄宿人員的增多,公寓管理人員的負(fù)擔(dān)越來(lái)越重,為了讓所有公寓管理人員能從繁重的工作中解脫出來(lái),實(shí)現(xiàn)無(wú)紙化辦公,使工作更有條理、更方便、更有效率,而開(kāi)發(fā)出這套公寓管理軟件。1.3系統(tǒng)開(kāi)發(fā)的可行性 1.3.1 技術(shù)上的可行性 我們正走進(jìn)一個(gè)信息時(shí)代,信息技術(shù)將從根本上改變?nèi)祟?lèi)社會(huì)的生產(chǎn)方式和生活方式,各行各業(yè)的業(yè)務(wù)管理現(xiàn)在都已經(jīng)相繼使用計(jì)算機(jī)來(lái)處理,可以說(shuō)用計(jì)算機(jī)進(jìn)行信息管理是一個(gè)總趨勢(shì)。學(xué)生公寓管理軟件主要是對(duì)公寓、寢室的配置、住宿人員登記、衛(wèi)生檢查、公寓資產(chǎn)、學(xué)生違紀(jì)、值班老師記錄以及對(duì)學(xué)生住宿情況查詢(xún),修改,更新等??梢愿斓亓私獾矫總€(gè)學(xué)生的住宿情況。開(kāi)發(fā)一個(gè)學(xué)生公寓管理系統(tǒng)可以達(dá)到事半功倍的效果。隨著數(shù)據(jù)庫(kù)管理系統(tǒng)的普及以及可視化編程軟件的出現(xiàn),使數(shù)據(jù)庫(kù)管理信息系統(tǒng)的開(kāi)發(fā)變得更為簡(jiǎn)單,因此開(kāi)發(fā)一個(gè)學(xué)生公寓管理系統(tǒng)是完全可行的。1.3.2 經(jīng)濟(jì)上的可行性
本單位有自己的微機(jī)室可以使用,不必重新購(gòu)置計(jì)算機(jī),不需要花費(fèi)大量資金,是一個(gè)節(jié)約人力物力的好辦法。
1.3.3 組織管理上的可行性
本單位的領(lǐng)導(dǎo)干部具有較高的素質(zhì),它們對(duì)管理現(xiàn)代化有較高的認(rèn)識(shí)水平,并且有各級(jí)領(lǐng)導(dǎo)的大力支持和重視。
綜上所述,建立一個(gè)學(xué)生公寓管理軟件與人工操作相比具有速度更快,操作更準(zhǔn)確,更節(jié)約開(kāi)支等有利之處,因此建立一個(gè)學(xué)生公寓管理軟件是必要可行。
1.4數(shù)據(jù)來(lái)源
作為一個(gè)學(xué)生公寓的管理軟件,要十分全面的貼近以及適合大學(xué)公寓的管理方法。本軟件的參考資料主要有兩種來(lái)源:一是參考本學(xué)校公寓的管理結(jié)構(gòu),管理方法,這些資料是本軟件的主要依據(jù),也可以說(shuō)這些資料來(lái)源于普通的生活,比較真實(shí)一些。二是來(lái)源于網(wǎng)絡(luò)上的各種同類(lèi)軟件,通過(guò)這些軟件可以看出一個(gè)公寓最低需要哪些管理與設(shè)置,在這些軟件中,有些軟件功能比較齊全,但是在管理上顯的非常的不方便,使用起來(lái)十分麻煩、繁瑣,有些雖然簡(jiǎn)單,但是功能上又不是十分完善,對(duì)這些軟件首先要進(jìn)行取其精華,棄其糟粕,從而進(jìn)行編寫(xiě)。
[10]...>> 1.5新系統(tǒng)數(shù)據(jù)流程圖
圖1.1數(shù)據(jù)流程圖
數(shù)據(jù)字典
圖1.2 數(shù)據(jù)元素 注:其它數(shù)據(jù)元素略
圖1.3 數(shù)據(jù)流 注:其它數(shù)據(jù)流略
圖1.4 加工 注:其它加工略
注:其它數(shù)據(jù)存儲(chǔ)略
第二章 數(shù)據(jù)庫(kù)設(shè)計(jì)
1、E-R圖
圖2.1 E-R圖
2、信息的數(shù)量越來(lái)越大,數(shù)據(jù)庫(kù)的作用越發(fā)突出,所以數(shù)據(jù)庫(kù)的建立是系統(tǒng)施實(shí)的主要部分之一,它關(guān)系到整個(gè)系統(tǒng)的運(yùn)行情況,是整個(gè)系統(tǒng)的重要組成部分。本系統(tǒng)數(shù)據(jù)庫(kù)為db.mdb,在數(shù)據(jù)庫(kù)中包括十個(gè)表。分別是:用戶表、公寓表、班級(jí)表、寢室表、衛(wèi)生等級(jí)表、學(xué)生基本情況表、學(xué)生請(qǐng)假情況表、學(xué)生違規(guī)情況表、寢室衛(wèi)生情況表、資產(chǎn)表。下面介紹幾個(gè)主要的表:
⑴ 學(xué)生基本情況表主要是存放學(xué)生的基本情況,字段包括:姓名、性別、學(xué)號(hào)、班級(jí)、公寓、寢室、入學(xué)時(shí)間、年制、寢室電話、個(gè)人電話、備注。數(shù)據(jù)結(jié)構(gòu)如下表:
字段名 數(shù)據(jù)類(lèi)型 數(shù)據(jù)長(zhǎng)度 姓名 文本 8 性別 文本 2 學(xué)號(hào) 文本 10 班級(jí) 文本 10 公寓 文本 20 寢室 文本 10 入學(xué)時(shí)間 文本 14 年制 文本 8 個(gè)人電話 文本 15 備注 備注
⑵ 學(xué)生請(qǐng)假情況表主要存放學(xué)生請(qǐng)假情況,字段包括:日期、姓名、班級(jí)、公寓、寢室、天數(shù)、原因、老師、備注。數(shù)據(jù)結(jié)構(gòu)如下表: 字段名 數(shù)據(jù)類(lèi)型 數(shù)據(jù)長(zhǎng)度 日期 文本 14 姓名 文本 8 班級(jí) 文本 10 公寓 文本 20 寢室 文本 10 天數(shù) 文本 10 原因 備注
老師 文本 8 備注 備注
⑶ 學(xué)生違規(guī)情況表主要存放學(xué)生違規(guī)情況,字段包括:日期、姓名、班級(jí)、公寓、寢室、原因、程度、處罰、備注。數(shù)據(jù)結(jié)構(gòu)如下表:
字段名 數(shù)據(jù)類(lèi)型 數(shù)據(jù)長(zhǎng)度 日期 文本 14 姓名 文本 8 班級(jí) 文本 10 公寓 文本 20 寢室 文本 10 原因 備注
程度 備注
處罰 備注
備注 備注
⑷ 衛(wèi)生情況表主要存放寢室衛(wèi)生情況,字段包括:日期、公寓、寢室、檢查1到
5、得分、減分、等級(jí)、備注。其中檢查1到5是為了在沒(méi)有使用者想輸入的記錄的情況下自己輸入而設(shè)計(jì)的,保證了系統(tǒng)的可修改性、可擴(kuò)展性。數(shù)據(jù)結(jié)構(gòu)如下表: 字段名 數(shù)據(jù)類(lèi)型 數(shù)據(jù)長(zhǎng)度 日期 文本 14 公寓 文本 20 寢室 文本 10 檢查1 文本 40 檢查2 文本 40 檢查3 文本 40 檢查4 文本 40 檢查5 文本 40 得分 文本 4 減分 文本 4 等級(jí) 文本 6 備注 備注
⑸ 資產(chǎn)表主要存放寢室新增資產(chǎn)情況,字段包括:日期、公寓、名稱(chēng)、數(shù)量、單價(jià)、總價(jià)、用途、備注。數(shù)據(jù)結(jié)構(gòu)如下表: 字段名 數(shù)據(jù)類(lèi)型 數(shù)據(jù)長(zhǎng)度 日期 文本 14 公寓 文本 20 名稱(chēng) 文本 20 數(shù)量 文本 4 單價(jià) 文本 10 總價(jià) 文本 10 用途 備注
備注 備注
第三章功能模塊設(shè)計(jì)
3.1新系統(tǒng)功能結(jié)構(gòu)圖及運(yùn)行圖如下:
1、系統(tǒng)功能結(jié)構(gòu)圖:
[10]...>> 圖3.1系統(tǒng)功能結(jié)構(gòu)圖
2、系統(tǒng)功能結(jié)構(gòu)圖運(yùn)行圖:
圖3.2系統(tǒng)功能結(jié)構(gòu)運(yùn)行圖
經(jīng)過(guò)系統(tǒng)分析,確定了本軟件主要包括以下方面:系統(tǒng)設(shè)置、公寓管理、衛(wèi)生檢查、公寓資產(chǎn)、記錄查看、記錄刪除、值班記錄、幫助制作。3.2系統(tǒng)設(shè)置: 主要完成:用戶管理、公寓設(shè)置、數(shù)據(jù)備份、數(shù)據(jù)轉(zhuǎn)換、退出的功能。運(yùn)行圖如下:
圖3.3系統(tǒng)設(shè)置運(yùn)行圖 3.2.1 用戶管理
可以進(jìn)行管理人員的添加和修改以及刪除操作。添加人員可以分為兩類(lèi):普通用戶、管理員??梢砸暡煌藛T而添加。管理員擁有所有權(quán)力,對(duì)整個(gè)系統(tǒng)的操作。普通用戶只有瀏覽、及一些簡(jiǎn)單的添加操作權(quán)力。無(wú)用戶設(shè)置、公寓設(shè)置及記錄刪除等權(quán)力。3.2.2公寓設(shè)置
分為三個(gè)主要的操作:公寓設(shè)置、寢室設(shè)置、班級(jí)設(shè)置。在這里可以添加學(xué)校所有的公寓、所有班級(jí)、每個(gè)公寓的所有寢室,也可以用此軟件管理一幢公寓。這樣操作起來(lái)會(huì)更簡(jiǎn)單、操作一目了然。3.2.3數(shù)據(jù)備份
這是一個(gè)數(shù)據(jù)管理軟件所必不可少的一部分,利用它可以及時(shí)的備份當(dāng)前的數(shù)據(jù)庫(kù)以及在出現(xiàn)故障后利用已保存的數(shù)據(jù)進(jìn)行恢復(fù)。3.2.4數(shù)據(jù)轉(zhuǎn)換
利用數(shù)據(jù)轉(zhuǎn)換將當(dāng)前數(shù)據(jù)庫(kù)中的表轉(zhuǎn)換成Excel表格的形式,顯示更為直觀,可以進(jìn)行打印等操作。3.3公寓管理
主要完成:學(xué)生請(qǐng)假、學(xué)生違規(guī)、床位設(shè)置的功能。運(yùn)行圖如下:
圖3.4公寓管理運(yùn)行圖 3.3.1學(xué)生請(qǐng)假
主要是對(duì)學(xué)生請(qǐng)假記錄做一個(gè)添加。利用它可以把學(xué)生的基本的請(qǐng)假資料保存起來(lái)。3.3.2學(xué)生違規(guī)
主要是對(duì)學(xué)生違規(guī)記錄做一個(gè)添加。利用它可以把學(xué)生的基本的違規(guī)資料保存起來(lái)。3.3.3床位設(shè)置
通過(guò)床位設(shè)置可以簡(jiǎn)單查看每個(gè)公寓每個(gè)寢室的床位使用情況以及床位剩余情況。還可以通過(guò)詳細(xì)查看,查看到某個(gè)公寓某個(gè)寢室住宿人員的人數(shù),以及具體的住宿人員的名字。3.4 衛(wèi)生檢查
主要完成:添加檢查記錄的功能。衛(wèi)生檢查可以對(duì)衛(wèi)生檢查的結(jié)果進(jìn)行記錄。這里的衛(wèi)生標(biāo)準(zhǔn)一共有五項(xiàng)可以填寫(xiě),在每一項(xiàng)里已經(jīng)基本設(shè)置了所不合標(biāo)準(zhǔn)的記錄,你可以在下拉列表框中進(jìn)行選擇即可,但是如果沒(méi)有你想輸入的記錄的話,也可以自己輸入。運(yùn)行圖如下:
圖3.5衛(wèi)生檢查運(yùn)行圖 3.5 公寓資產(chǎn)
主要完成:添加新增物品的功能??梢詫?duì)公寓資產(chǎn)的收入或其它物品的入庫(kù)進(jìn)行記錄。運(yùn)行圖如下:
圖3.6公寓資產(chǎn)運(yùn)行圖 3.6 記錄查看與記錄刪除
主要是對(duì)學(xué)生請(qǐng)假、學(xué)生違規(guī)、衛(wèi)生記錄,公寓資產(chǎn)等記錄所進(jìn)行的操作,利用這兩個(gè)功能可以對(duì)任一記錄進(jìn)行查看與刪除。運(yùn)行圖如下:
圖3.7記錄查看
圖3.8記錄刪除運(yùn)行圖 3.7值班記錄
它的功能主要是針對(duì)值班人員開(kāi)發(fā)出來(lái)的,在這里可以讓值班人員對(duì)當(dāng)天值班情況進(jìn)行一個(gè)小記,以便日后查看。運(yùn)行圖如下:
圖3.9值班記錄運(yùn)行圖 3.8幫助制作
對(duì)于一個(gè)稍顯正規(guī)的軟件來(lái)說(shuō)幫助的制作都是必不可少的內(nèi)容,本程序也不例外,制作了此幫助文檔。在程序中可以按F1或點(diǎn)擊幫助菜單來(lái)顯示此help.Chm文檔。以便對(duì)本軟件進(jìn)行快速操作。運(yùn)行圖如下:
圖3.10幫助運(yùn)行圖
第四章 程序設(shè)計(jì) 主程序流程圖
4.1 登錄界面
此界面是由Photoshop制作而成。在做這個(gè)登錄面的時(shí)候想了很多,最后選擇了這種,感覺(jué)它看起來(lái)干凈,整齊。又不失其莊雅。加上本單位最有特色的建筑,會(huì)讓人一目了然。
4.1.1 登錄圖片顯示
圖4.1登錄界面
4.1.2 界面制作與實(shí)現(xiàn)
在這個(gè)界面中,主要處理的是判斷當(dāng)前用戶輸入的信息是否正確。如果正確,那么它屬于哪種類(lèi)型用戶。因?yàn)榇斯芾碥浖诘卿浐蟛煌?lèi)型的用戶顯示的窗體與實(shí)現(xiàn)的功能都不是一樣的,它們會(huì)有所差別!(1)浮動(dòng)按鈕的實(shí)現(xiàn)
確定和取消兩個(gè)按鈕在鼠標(biāo)沒(méi)有放上去之前看上去只是一個(gè)普通的平面字效果,但是當(dāng)你把鼠標(biāo)放在這幾個(gè)字上面后,它會(huì)顯示凸出的效果,按下后呈現(xiàn)凹陷的效果??傮w實(shí)現(xiàn)立體的感覺(jué)。原理主要是在鼠標(biāo)mousemove事件與線的顏色變化組合來(lái)實(shí)現(xiàn)。主要代碼如下:
在窗體中的鼠標(biāo)移動(dòng)過(guò)程中,以及在窗體初始化的時(shí)候,要把添加的線的.Visible 屬性設(shè)置為 False,只有在鼠標(biāo)按下的時(shí)候在改變其顏色即
[10]...>> 可。
Private Sub Form_MouseMove(Button As Integer, Shift As Integer, x As Single, Y As Single)Line1.Visible = False Line2.Visible = False Line3.Visible = False Line4.Visible = False Line5.Visible = False Line6.Visible = False Line7.Visible = False Line8.Visible = False End Sub
鼠標(biāo)按下的時(shí)候設(shè)置線條的顏色如下:
Private Sub Label3_MouseDown(Button As Integer, Shift As Integer, x As Single, Y As Single)Line1.BorderColor = &H808080 Line2.BorderColor = &H808080 Line3.BorderColor = &HE0E0E0 Line4.BorderColor = &HE0E0E0 End Sub
鼠標(biāo)移動(dòng)到標(biāo)簽的時(shí)候設(shè)置線條的顏色如下: Private Sub Label3_MouseMove(Button As Integer, Shift As Integer, x As Single, Y As Single)Line1.BorderColor = &HE0E0E0 Line2.BorderColor = &HE0E0E0 Line3.BorderColor = &H808080 Line4.BorderColor = &H808080 Line1.Visible = True Line2.Visible = True Line3.Visible = True Line4.Visible = True End Sub(2)用戶類(lèi)型判斷
在數(shù)據(jù)庫(kù)中建了一人yonghu表。在添加管理人員時(shí)有兩種默認(rèn)級(jí)別。管理員、普通用戶。管理員擁有對(duì)數(shù)據(jù)庫(kù)操作的一切權(quán)限。普通用戶只有普通的查看,數(shù)據(jù)轉(zhuǎn)換等。沒(méi)有刪除等操作功能。前用戶成功登錄后,會(huì)在主窗體的狀態(tài)欄中顯示出當(dāng)前用戶及其用戶類(lèi)型。主要代碼如下:
設(shè)置當(dāng)前控件連接的數(shù)據(jù)庫(kù) Dim provider As String Dim datasource As String provider = “provider=Microsoft.jet.oledb.4.0” datasource = “data source=” & App.Path & “DB.mdb” With Adodc1.Mode = adModeReadWrite.ConnectionString = provider & “;” & datasource.CommandType = adCmdTable.RecordSource = “yonghu”.Refresh.Recordset.MoveFirst End With 對(duì)用戶進(jìn)行判斷
If Text1.Text = “" Then MsgBox ”請(qǐng)輸入用戶名!“, 48, ”提示“ Exit Sub End If Adodc1.Recordset.Find ”用戶=''“ & Text1.Text & ”''“ If Adodc1.Recordset.EOF = False And Text2.Text = Trim(Adodc1.Recordset.Fields(”pass“))Then main.Text1.Text = Adodc1.Recordset.Fields(”級(jí)別“)main.Text2.Text = Adodc1.Recordset.Fields(”用戶“)main.Show Unload Me Else Text1.Text = ”“ Text2.Text = ”“ MsgBox ”登錄不成功,請(qǐng)重新登錄!“, 48, ”提示“ End If 4.2 程序主界面
程序主界面為本軟件的顯示的核心部分。一切主要操作及顯示都通過(guò)這里完成。整個(gè)界面主要由五部分組成。菜單部分、工具欄、左側(cè)操作欄、右側(cè)顯示欄以及狀態(tài)欄。①界面效果圖如下:
圖4.2程序主界面
菜單欄的詳見(jiàn)附錄內(nèi)容,這里就不提了。左側(cè)操作欄和右側(cè)顯示欄會(huì)在下面的內(nèi)容中做介紹,現(xiàn)在只簡(jiǎn)單介紹一下工具欄和狀態(tài)欄,以及主窗體的各個(gè)事件。
工具欄主要是由coolbar制作而成。由它制做的工具欄的顯示效果會(huì)更有立體感一些。這里只列出了幾個(gè)常用的按鈕。其中的添加按鈕是用來(lái)對(duì)公寓住宿人員進(jìn)行添加,修改也是對(duì)所住宿人員進(jìn)行修改,想要進(jìn)行修改時(shí)必須顯示所有記錄時(shí)才可以進(jìn)行。在這里值得一提的是刪除DataGrid的操作,由于不知道它的當(dāng)前數(shù)據(jù)源是哪個(gè),所以在刪除前要確定它的數(shù)據(jù)源,也就是它所鏈接的adodc1的數(shù)據(jù)源,或者是其它ado控件對(duì)它的數(shù)據(jù)源進(jìn)行重新綁定后的數(shù)據(jù)庫(kù)表,也有可能是經(jīng)過(guò)一個(gè)查詢(xún)后得到的記錄。②它的實(shí)現(xiàn)方法如下所示: Dim o As Adodc Set o = DataGrid1.datasource
o.Recordset.Delete
o.Recordset.Update 這里主要是用到了ado對(duì)像的方法。用這個(gè)方法得到數(shù)據(jù)源。
下面是整個(gè)工具欄運(yùn)行時(shí)代碼: Select Case Button.Index Case 1 sel.Show 1 Case 3 add.Show 1 Case 5 On Error GoTo next2 Dim s As Adodc Set s = DataGrid1.datasource If s.RecordSource = ”users“ Then edit.Show 1 End If next2: Case 7 On Error Resume Next Dim o As Adodc Set o = DataGrid1.datasource
o.Recordset.Delete
o.Recordset.Update Case 9 back.Show 1 Case 11 With Adodc1.Mode = adModeReadWrite.ConnectionString = provider & ”;“ & datasource.CommandType = adCmdTable.RecordSource = ”users“ ''.Refresh End With Set DataGrid1.datasource = Adodc1 DataGrid1.Refresh Call dx Case 13 Unload Me End Select 狀態(tài)欄分四個(gè)部分。第一個(gè)為固定顯示當(dāng)前所用軟件名稱(chēng)及作者。其中第二個(gè)和第三部分為動(dòng)態(tài)顯示的,它會(huì)顯示出每次用戶登錄名稱(chēng)及其管理模式。由上圖可以看出,lf為本軟件管理員。第四部分為日期與時(shí)間的顯示。其中第三部分的代碼實(shí)現(xiàn)如下: main.Text1.Text = Adodc1.Recordset.Fields(”級(jí)別“)main.Text2.Text = Adodc1.Recordset.Fields(”用戶“)StatusBar1.Panels(2).Text = ”當(dāng)前用戶:“ & Text2.Text StatusBar1.Panels(3).Text = ”用戶模式:“ & Text1.Text StatusBar1.Panels(4).Text = Date & ”
“ & Time ''設(shè)置普通用戶模式
If Text1.Text = ”普通用戶“ Then yhgl.Visible = False g1.Visible = False jlsc.Visible = False gysz.Visible = False Toolbar1.Buttons(5).Visible = False Toolbar1.Buttons(6).Visible = False Toolbar1.Buttons(7).Visible = False Toolbar1.Buttons(8).Visible = False End If 主窗體在程序運(yùn)行中會(huì)遇到不斷改變其大小,最小化,最大化,以及用鼠標(biāo)來(lái)改變,這里需要在窗體的Resize事件中添加代碼,讓程序中用到的各個(gè)控件隨時(shí)可以適應(yīng)窗體改變后的大小,在這里改變的控件主要有DataGrid、TreeView系列及Frame控件、StatusBar。下面就是設(shè)置它們大小的程序代碼:
DataGrid1.Width = main.WidthStatusBar1.Height750 SSTab1.Height = main.HeightCoolBar1.HeightStatusBar1.Height1200 Frame2.Height = main.HeightCoolBar1.HeightStatusBar1.Height1200 TreeView1.Height=main.HeightCoolBar1.HeightStatusBar1.Height1500 TreeView3.Height=main.HeightCoolBar1.Heightz)/ 4 StatusBar1.Panels(1).Width = u + x StatusBar1.Panels(2).Width = v + x StatusBar1.Panels(3).Width = w + x StatusBar1.Panels(4).Width = m + x 這個(gè)軟件的主要部分都在這里運(yùn)行、查看,所以在主窗體的load事件里要把所用的到的東西都要加載進(jìn)來(lái),例如所在程序運(yùn)行時(shí)所用到的表,左側(cè)treeview部分樹(shù)形顯示的初始化。在這里幾乎用到了所有的表,如下所示: provider = ”provider=Microsoft.jet.oledb.4.0“ datasource = ”data source=“ & App.Path & ”DB.mdb“ With Adodc1.Mode = adModeReadWrite.ConnectionString = provider & ”;“ & datasource.CommandType = adCmdTable.RecordSource = ”users“ ''.Refresh End With
With Adodc2.Mode = adModeReadWrite.ConnectionString = provider & ”;“ & datasource.CommandType = adCmdTable.RecordSource = ”gongyu“.Refresh End With
With Adodc3.Mode = adModeReadWrite.ConnectionString = provider & ”;“ & datasource.CommandType = adCmdTable.RecordSource = ”class“.Refresh End With
With Adodc4.Mode = adModeReadWrite.ConnectionString = provider & ”;“ & datasource.CommandType = adCmdTable.RecordSource = ”weisheng“.Refresh End With
With Adodc5.Mode = adModeReadWrite.ConnectionString = provider & ”;“ & datasource End With
With Adodc6.Mode = adModeReadWrite.ConnectionString = provider & ”;“ & datasource.CommandType = adCmdTable.RecordSource = ”dengji“.Refresh End With
With Adodc7.Mode = adModeReadWrite.ConnectionString = provider & ”;“ & datasource.CommandType = adCmdTable.RecordSource = ”qinshi“.Refresh End With
With Adodc9.Mode = adModeReadWrite.ConnectionString = provider & ”;“ & datasource.CommandType = adCmdTable.RecordSource = ”zichan“.Refresh End With treeview部分樹(shù)形顯示的初始化在這里已經(jīng)做了幾個(gè)過(guò)程,調(diào)用即可。4.3系統(tǒng)設(shè)置 4.3.1用戶管理 ①界面效果圖
[10]...>>
② 界面制作與實(shí)現(xiàn)方法
這個(gè)界面總體來(lái)說(shuō)各個(gè)控件比較簡(jiǎn)單,但是作為一個(gè)添加刪除管理員的操作,它已經(jīng)連接到了數(shù)據(jù)庫(kù),與數(shù)據(jù)庫(kù)的yonghu表相聯(lián)。各個(gè)控件也與數(shù)據(jù)庫(kù)中表的字段綁定。在窗體初始化的時(shí)候要判斷當(dāng)前數(shù)據(jù)庫(kù)表中是否有記錄,如果沒(méi)有記錄那么有些按鈕將會(huì)被設(shè)置成為失效狀態(tài),否則會(huì)出現(xiàn)錯(cuò)誤。設(shè)置代碼如下: Dim provider As String Dim datasource As String provider = ”provider=Microsoft.jet.oledb.4.0“ datasource = ”data source=“ & App.Path & ”DB.mdb“ With Adodc1.Mode = adModeReadWrite.ConnectionString = provider & ”;“ & datasource.CommandType = adCmdTable.RecordSource = ”yonghu“.Refresh End With Option1.Enabled = False Option2.Enabled = False If Adodc1.Recordset.RecordCount = 0 Then Command2.Enabled = False Command3.Enabled = False Command5.Enabled = False Command6.Enabled = False End If Text2.Text = Text3.Text 上一條與下一條的功能一目了然,它們可以對(duì)當(dāng)前表進(jìn)行上一條記錄或下一條記錄依次查看。當(dāng)找到記錄后,可以對(duì)其進(jìn)行相對(duì)的刪除、修改等操作。上一條記錄與下一條的記錄在查看時(shí)有一個(gè)判斷。當(dāng)表中記錄移到最前面(BOF)或最后面(EOF)時(shí),會(huì)把上一條或下一條其中的一個(gè)按鈕的enable屬性設(shè)置為true。即不可以前查看或向后查看。上一條與下一條主要代碼如下:
Adodc1.Recordset.MovePrevious ''移動(dòng)記錄 Command6.Enabled = True If Adodc1.Recordset.BOF Then
Adodc1.Recordset.MoveFirst
Command5.Enabled = False End If Adodc1.Recordset.MoveNext ''移動(dòng)記錄 Command5.Enabled = True If Adodc1.Recordset.EOF Then
Adodc1.Recordset.MoveLast
Command6.Enabled = False End If 添加用戶可以添加使用該管理軟件的用戶。添加的時(shí)候可以選擇所添加人物的級(jí)別。軟件默認(rèn)為兩個(gè)級(jí)別:管理員、普通用戶。管理員擁有對(duì)此軟件管理操作等一切的權(quán)力。普通用戶,只有普通的查看、查詢(xún)、備份、添加等權(quán)力。沒(méi)有對(duì)記錄刪除等權(quán)力。在添加用戶時(shí)你可以選擇一個(gè)且必須選擇一個(gè)。然后輸入此用戶的用戶名和密碼即可!添加用戶主要代碼:
If Command1.Caption = ”添加“ Then Command2.Enabled = False Command5.Enabled = False Command6.Enabled = False Command1.Caption = ”確定“ Command3.Caption = ”取消“ Adodc1.Recordset.AddNew Option1.Enabled = True Option2.Enabled = True Text1.Enabled = True Text2.Enabled = True Text3.Enabled = True Text2.Text = ”“ ElseIf Text1.Text = ”“ Then MsgBox ”用戶名不能為空!“, 48, ”提示“ ElseIf Text2.Text = ”“ Then MsgBox ”密碼不能為空!“, 48, ”提示“ ElseIf Text2.Text <> Text3.Text Then MsgBox ”密碼兩次需一致!“, 48, ”提示“ ElseIf Text4.Text = ”“ Then MsgBox ”請(qǐng)選擇所建用戶類(lèi)型!“, 48, ”提示“ Else Command2.Enabled = True Command3.Enabled = True Command5.Enabled = True Command6.Enabled = True Command3.Caption = ”編輯“ Command1.Caption = ”添加“ Adodc1.Recordset.Update Text1.Enabled = False Text2.Enabled = False Text3.Enabled = False Text4.Enabled = False Option1.Value = False Option2.Value = False Option1.Enabled = False Option2.Enabled = False End If 刪除操作可以把當(dāng)前記錄刪除掉。一經(jīng)刪除即不可以在恢復(fù)。所以在操作前要想好。刪除操作部分代碼:
If Adodc1.Recordset.RecordCount = 1 Then Command2.Enabled = False End If If(MsgBox(”你真的想刪除當(dāng)前記錄嗎?“, vbOKCancel, ”系統(tǒng)提示“))= vbOK Then Adodc1.Recordset.Delete Adodc1.Recordset.MoveFirst Adodc1.Refresh End If 編輯操作可以對(duì)當(dāng)前所選擇的用戶進(jìn)行編輯,可以修改其用戶名與密碼。當(dāng)當(dāng)前用戶感覺(jué)自己用戶名稱(chēng)或密碼有泄露時(shí),可以進(jìn)行修改。修改記錄即更新表中的某一條記錄。編輯操作主要代碼如下: Command2.Enabled = False Text1.Enabled = True Text2.Enabled = True Text3.Enabled = True Text4.Enabled = True Option1.Enabled = True Option2.Enabled = True Command1.Caption = ”確定“ ElseIf Command3.Caption = ”取消“ Then Command3.Caption = ”編輯“ Command1.Caption = ”添加“ Command2.Enabled = True Command5.Enabled = True Command6.Enabled = True Text2.Text = Text3.Text Text1.Enabled = False Text2.Enabled = False Text3.Enabled = False Text4.Enabled = False Option1.Value = False Option2.Value = False Option1.Enabled = False Option2.Enabled = False End If 4.3.2 公寓設(shè)置
公寓設(shè)置可以說(shuō)是本程序中一關(guān)鍵部分。因?yàn)樗械脑O(shè)置都在此進(jìn)行。包括公寓添加、修改、刪除。寢室的添加、修改、刪除以及班級(jí)的添加、修改和刪除操作。只有正確的對(duì)這些設(shè)置進(jìn)行添加修改,才能輸入正確的記錄。這里主要涉及到的問(wèn)題是datagrid的顯示,以及treeview及時(shí)形成新的結(jié)構(gòu)。還有一些就是對(duì)表記錄的復(fù)雜操作。在點(diǎn)擊sstab各版的時(shí)候,要在這時(shí)重新生成寢室設(shè)置中的樹(shù)型結(jié)構(gòu),Select Case PreviousTab
Case 0
Call startree1
Case 1
Combo1.Clear
Dim I As Integer
I = 1
If Adodc1.Recordset.RecordCount <> 0 Then
Adodc1.Recordset.MoveFirst
Do While I < Adodc1.Recordset.RecordCount
Combo1.AddItem(Adodc1.Recordset.Fields(”公寓名稱(chēng)“))
Adodc1.Recordset.MoveNext
I = I + 1
Loop
End If
Call startree1
Case 2
Call startree1 End Select End Sub(1)公寓設(shè)置
① 公寓設(shè)置效果圖
圖4.4公寓設(shè)置
② 界面制作與實(shí)現(xiàn)方法
在這個(gè)界面中主要用到了一個(gè)Sstab控件與一個(gè)顯示表中內(nèi)容的Datagrid控件。以及起到美觀作用的Frame控件。
在右下角的文本框中可以輸入想要添加的公寓名稱(chēng)。然后點(diǎn)擊添加即可完成添加操作。Datagrid中會(huì)立即刷新顯示更新內(nèi)容。要修改某條記錄時(shí),要先對(duì)所要修改的記錄進(jìn)行選擇,確認(rèn)選擇后,點(diǎn)擊下面的修改按鈕,會(huì)在下面的文本中顯示出所要修改公寓的名稱(chēng),此時(shí)即可輸入要修改的名字。然后點(diǎn)擊更新就會(huì)完成此操作。Datagrid也會(huì)即時(shí)更新其內(nèi)容。刪除操作更為簡(jiǎn)單,選擇想要?jiǎng)h除的公寓名稱(chēng),點(diǎn)擊刪除,確認(rèn)后完成此操作。但是刪除后不會(huì)影響其它表中的數(shù)據(jù)。其它表的有關(guān)此公寓的信息還會(huì)存在。在進(jìn)行所有操作前,先要確定數(shù)據(jù)庫(kù)已連接。
在添加前要判斷所寫(xiě)公寓名稱(chēng)是否正確,即是否輸入名稱(chēng),該記錄不能為空,不為空則對(duì)數(shù)據(jù)庫(kù)表進(jìn)行查找,判斷當(dāng)前輸入記錄是否已在表中存在,如果已存在,則會(huì)給出提示,不存在,添加成功。
Adodc1.Recordset.Find ”公寓名稱(chēng)=''“ & Text2.Text & ”''“ If Adodc1.Recordset.EOF = False Then MsgBox ”此公寓已存在“, , ”提示“ Adodc1.Recordset.MoveFirst Exit Sub End If Text3.Text = ”“ If Text2.Text = ”“ Then MsgBox ”輸入所要添加公寓的名稱(chēng)“, , ”提示“ Exit Sub End If 添加:
Adodc1.Recordset.AddNew Adodc1.Recordset.Fields(”公寓名稱(chēng)“)= Text2.Text Adodc1.Recordset.Update Adodc1.RecordSource = ”gongyu“ Text2.Text = ”“ Set DataGrid2.datasource = Adodc1 DataGrid2.Refresh
修改公寓名稱(chēng):
If Text3.Text = ”“ Then MsgBox ”選擇要修改的公寓“, , ”提示“ Exit Sub End If If Command12.Caption = ”修改“ Then Text2.Text = Text3.Text Label6.Caption = ”輸入想要修改的公寓名稱(chēng)“ Command12.Caption = ”更新“ Command3.Enabled = False Command7.Enabled = False ElseIf Command12.Caption = ”更新“ Then Command3.Enabled = True Command7.Enabled = True Label6.Caption = ”輸入想要添加的公寓名稱(chēng)“ Adodc1.Recordset.Fields(”公寓名稱(chēng)“)= Text2.Text Adodc1.Recordset.Update Adodc2.Recordset.ActiveConnection.Execute ”update qinshi set 公寓名稱(chēng)=''“ & Text2.Text & ”'' where 公寓名稱(chēng)=''“ & Trim(Text3.Text)& ”''“ Adodc2.Recordset.Update Command12.Caption = ”修改“ End If Set DataGrid2.datasource = Adodc1 DataGrid2.Refresh Adodc5.Recordset.Update Set main.DataGrid1.datasource = Adodc5 main.DataGrid1.Refresh
刪除公寓名稱(chēng)
If Text3.Text = ”“ Then MsgBox ”選擇所要?jiǎng)h除公寓的名稱(chēng)“, , ”提示“ Exit Sub End If If(MsgBox(”你真的想刪除公寓名稱(chēng)為
“ & Text3.Text & ” 的記錄嗎?“, vbOKCancel, ”系統(tǒng)提示“))= vbOK Then
Adodc1.Recordset.Delete
Adodc1.Recordset.Update End If Text3.Text = ”“ Set DataGrid2.datasource = Adodc1 DataGrid2.Refresh(2)寢室設(shè)置
①寢室設(shè)置效果圖
圖4.5寢室設(shè)置
②界面制作與實(shí)現(xiàn)方法 此界面實(shí)現(xiàn)相對(duì)比公寓設(shè)置來(lái)說(shuō)相對(duì)復(fù)雜一些。用到的控件主要是Sstab與Treeview。但是在程序方面比較復(fù)雜。
在添加一個(gè)寢室前先要選擇所要添加寢室所在的公寓。這個(gè)公寓可以點(diǎn)擊下面的樹(shù)中的節(jié)點(diǎn),也可以在列表框中選擇。樹(shù)中的節(jié)點(diǎn)在點(diǎn)擊后會(huì)把父節(jié)點(diǎn)顯示在選擇公寓后面的列表框中,而選中的節(jié)點(diǎn)會(huì)出現(xiàn)在寢室名稱(chēng)里。你也可以自己進(jìn)行添寫(xiě),確認(rèn)公寓后即可添加完成了。添加后會(huì)把Treeview重新刷新一下。以顯示更新后的記錄。添加源碼: Adodc1.Refresh Adodc1.Recordset.Find ”公寓名稱(chēng)=''“ & Combo1.Text & ”''“ If Adodc1.Recordset.EOF = True Then MsgBox ”此公寓不存在“, , ”提示“ Adodc1.Recordset.MoveFirst Exit Sub End If If Combo1.Text = ”“ Or Text1.Text = ”“ Then MsgBox ”請(qǐng)輸入所要添加的寢室及其所屬公寓“, , ”提示“ Exit Sub End If With Adodc2.Recordset.AddNew.Recordset.Fields(0).Value = Combo1.Text.Recordset.Fields(1).Value = Text1.Text.Recordset.Update End With Combo1.Text = ”“ Text1.Text = ”“ Call startree1 修改操作可以把當(dāng)前選中的寢室進(jìn)行名稱(chēng)修改與其所屬公寓進(jìn)行修改。當(dāng)要對(duì)名稱(chēng)進(jìn)行修改時(shí),先要選擇所要修改的寢室名,選擇后會(huì)在寢室名稱(chēng)里顯示出來(lái),把當(dāng)前寢室名稱(chēng)改成要修改的寢室名稱(chēng),然后點(diǎn)擊修改即完成名稱(chēng)修改操作。當(dāng)要對(duì)當(dāng)前寢室的所屬公寓進(jìn)行修改時(shí),需要先選擇所要修改的寢室,然后在上面的公寓名稱(chēng)后填寫(xiě)所要修改的寢室名稱(chēng)。點(diǎn)擊修改后完成此操作。但是這種操作不是常見(jiàn)。修改源碼: Adodc1.Refresh Adodc1.Recordset.Find ”公寓名稱(chēng)=''“ & Combo1.Text & ”''“ If Adodc1.Recordset.EOF = True Then MsgBox ”此公寓不存在“, , ”提示“ Adodc1.Recordset.MoveFirst Exit Sub End If
Dim sql As String On Error Resume Next If Combo1.Text = ”“ Or Text1.Text = ”“ Then MsgBox ”請(qǐng)?jiān)谙旅孢x擇所要修改的寢室“, , ”提示“ Exit Sub End If ''sql = ”select * form qinshi where 公寓名稱(chēng)=''“ & Trim(Combo1.Text)& ”'' and 寢室=''“ & Trim(Text1.Text)& ”''“
Adodc2.Recordset.ActiveConnection.Execute ”update qinshi set 寢室=''“ & Text1.Text & ”'',公寓名稱(chēng)=''“ & Trim(Combo1.Text)& ”''where 寢室=''“ & Trim(Text6.Text)& ”''and 公寓名稱(chēng)=''“ & Trim(Text7.Text)& ”''“ Adodc2.Recordset.Update Combo1.Text = ”“ Text1.Text = ”“ Call startree1 刪除操作可以刪除掉當(dāng)前樹(shù)型顯示中的任何一個(gè)子節(jié)點(diǎn),也就是這個(gè)樹(shù)型節(jié)點(diǎn)中的寢室名稱(chēng),注意的是,刪除后這個(gè)記錄只在qinshi表中刪除,其相關(guān)記錄不會(huì)被刪除掉的,如果想刪除,還需要人工操作。實(shí)現(xiàn)的方法主要是對(duì)qinshi表操作,先對(duì)其進(jìn)行查詢(xún),查詢(xún)當(dāng)前想要被刪除的表是否存在,如果不存在,則給出提示,如果存在這條記錄,則在表中把它刪除掉,刪除后調(diào)用生成樹(shù)過(guò)程,把當(dāng)前寢室設(shè)置中的樹(shù)型結(jié)構(gòu)重新生成,更新記錄。實(shí)現(xiàn)的部分代碼如下所示:
If Combo1.Text = ”“ Or Text1.Text = ”“ Or Combo1.Text = ”公寓管理系統(tǒng)“ Then MsgBox ”選擇所要?jiǎng)h除的寢室“, , ”提示“ Exit Sub End If If(MsgBox(”你真的想刪除
“ & Combo1.Text & ” “ & ”寢室為“ & Text1.Text & ” 的記錄嗎?“, vbOKCancel, ”系統(tǒng)提示“))= vbOK Then Adodc2.Refresh
[10]...>>
Adodc2.Recordset.ActiveConnection.Execute ”delete from qinshi where 公寓名稱(chēng)=''“ & Trim(Combo1.Text)& ”'' and 寢室=''“ & Trim(Text1.Text)& ”''“ Adodc2.Recordset.Update End If Combo1.Text = ”“ Text1.Text = ”“ Call startree1 在treeview點(diǎn)擊的時(shí)候,上面的文本框中會(huì)顯示相應(yīng)的記錄,這主要是對(duì)treeview進(jìn)行了設(shè)置,代碼如下:
Private Sub TreeView1_NodeClick(ByVal Node As MSComctlLib.Node)On Error Resume Next Text1.Text = TreeView1.SelectedItem.Text Combo1.Text = TreeView1.SelectedItem.Parent Text6.Text = TreeView1.SelectedItem.Text Text7.Text = TreeView1.SelectedItem.Parent End Sub(3)班級(jí)設(shè)置
①班級(jí)設(shè)置效果圖
圖4.6班級(jí)設(shè)置
②界面制作與實(shí)現(xiàn)方法
此界面制作與公寓設(shè)置基本一致。在這個(gè)界面中主要用到了一個(gè)Sstab控件與一個(gè)顯示表中內(nèi)容的Datagrid控件。以及起到美觀作用的Frame控件。
在右下角的文本框中可以輸入想要添加的班級(jí)名稱(chēng)。然后點(diǎn)擊添加即可完成添加操作。Datagrid中會(huì)立即刷新顯示更新內(nèi)容。要修改某條記錄時(shí),要先對(duì)所要修改的記錄進(jìn)行選擇,確認(rèn)選擇后,點(diǎn)擊下面的修改按鈕,會(huì)在下面的文本中顯示出所要修改班級(jí)的名稱(chēng),此時(shí)即可輸入要修改的名字。然后點(diǎn)擊更新就會(huì)完成此操作。Datagrid也會(huì)即時(shí)更新其內(nèi)容。刪除操作更為簡(jiǎn)單,選擇想要?jiǎng)h除的班級(jí)名稱(chēng),點(diǎn)擊刪除,確認(rèn)后完成此操作。添加班級(jí)源碼:
Adodc3.Recordset.Find ”class=''“ & Text4.Text & ”''“ If Adodc3.Recordset.EOF = False Then MsgBox ”此班級(jí)已存在“, , ”提示“ Adodc3.Recordset.MoveFirst Exit Sub End If Text5.Text = ”“ If Text4.Text = ”“ Then MsgBox ”輸入所要添加班級(jí)的名稱(chēng)“, , ”提示“ Exit Sub End If Adodc3.Recordset.AddNew Adodc3.Recordset.Fields(”class“)= Text4.Text Adodc3.Recordset.Update Adodc3.RecordSource = ”class“ Text4.Text = ”“ Set DataGrid3.datasource = Adodc3 DataGrid3.Refresh 修改班級(jí)源碼:
If Command10.Caption = ”修改“ Then Text4.Text = Text5.Text Label6.Caption = ”輸入想要修改的班級(jí)名稱(chēng)“ Command10.Caption = ”更新“ Command6.Enabled = False Command9.Enabled = False ElseIf Command10.Caption = ”更新“ Then Command9.Enabled = True Command6.Enabled = True Label6.Caption = ”輸入想要添加的班級(jí)名稱(chēng)“ Adodc3.Recordset.Fields(”class“)= Text4.Text Adodc3.Recordset.Update Command10.Caption = ”修改“ End If 刪除班級(jí)源碼:
If Text5.Text = ”“ Then MsgBox ”選擇所要?jiǎng)h除班級(jí)的名稱(chēng)“, , ”提示“ Exit Sub End If If(MsgBox(”你真的想刪除班級(jí)名稱(chēng) 為
“ & Text5.Text & ” 的記錄嗎?“, vbOKCancel, ”系統(tǒng)提示“))= vbOK Then
Adodc3.Recordset.Delete
Adodc3.Recordset.Update End If Text5.Text = ”“ Set DataGrid3.datasource = Adodc3
DataGrid3.Refresh End Sub 4.3.3數(shù)據(jù)備份:
數(shù)據(jù)備份是一個(gè)數(shù)據(jù)庫(kù)軟件必不可少的一部分,利用它可以把當(dāng)前數(shù)據(jù)庫(kù)表進(jìn)行全面的備份,以備以后使用。因?yàn)樵诓僮髦锌赡軙?huì)導(dǎo)致數(shù)據(jù)遭到破壞,或者是系統(tǒng)的原因使數(shù)據(jù)庫(kù)損壞,或者是一些其它的人為原因,這樣你可以用此功能把數(shù)據(jù)恢復(fù)到最后一次備份的狀態(tài),使損失做到最少,經(jīng)常備份,操作起來(lái)更有安全感。①數(shù)據(jù)備份效果圖
圖4.7數(shù)據(jù)備份效果圖 ② 功能實(shí)現(xiàn)
界面制作相對(duì)程序來(lái)說(shuō)比較簡(jiǎn)單,用到的是coolbar控件,點(diǎn)擊按鈕可以選擇備份路徑。然后點(diǎn)擊數(shù)據(jù)備份即可。窗體初始化部分代碼如下: Dim cnn1 As ADODB.Connection Dim rstschema As ADODB.Recordset Dim strcnn As String Set cnn1 = New ADODB.Connection strcnn = ”provider=Microsoft.jet.oledb.4.0;“ & ”data source=“ & App.Path & ”db.mdb“ cnn1.Open strcnn Set rstschema = cnn1.OpenSchema(adSchemaTables)Do Until rstschema.EOF temp = rstschema!Table_Name If Left(temp, 1)<> ”M“ Then End If rstschema.MoveNext Loop cnn1.Close On Error GoTo err PathName = App.Path & ”db.MDB“ dbasize = FileLen(PathName)err: Exit Sub 數(shù)據(jù)備份部分在本程序中用到了一個(gè)模塊,在模塊中有一個(gè)方法,dobackup。點(diǎn)擊備份按鈕后開(kāi)始備份,代碼如下: If txtDestination <> ”“ Then DoBackup PathName, txtDestination MsgBox ”備份成功!“, , ”提示“ ElseIf txtDestination = ”“ Then MsgBox ”You must specify a distination for the backup“, vbCritical 其中DoBackup為模塊中已定義的方法,在這里進(jìn)行調(diào)用。Dobackup實(shí)現(xiàn)方法代碼如下所示: Dim lFileOp As Long Dim lresult As Long Dim lFlags
As Long Dim SHFileOp As SHFILEOPSTRUCT Dim strSourceDir As String Dim strDestinationDir As String Screen.MousePointer = vbHourglass BackupFolderName = strDestinationPath MkDir BackupFolderName & ”Backup“ & Format(Date, ”yyyy.mm.dd“)& vbNullChar
.fFlags = lFlags End With lresult = SHFileOperation(SHFileOp)Screen.MousePointer = vbDefault frmBackupDba.lblStatus = ”Backup Complete“ 在備份分前先要選擇一個(gè)備份路徑,點(diǎn)擊…那個(gè)按鈕開(kāi)始進(jìn)行選擇,實(shí)現(xiàn)方法如下: Dim strTemp As String strTemp = fBrowseForFolder(Me.hwnd, ”Select backup path“)If strTemp <> ”“ Then
txtDestination = strTemp End If 數(shù)據(jù)恢復(fù)界面同上,它的功能主要是在當(dāng)前數(shù)據(jù)庫(kù)遭到破壞后,可以利用它來(lái)進(jìn)行數(shù)據(jù)恢復(fù),在數(shù)據(jù)恢復(fù)前要選擇所要恢復(fù)的數(shù)據(jù)庫(kù)路徑,如下: Dim strTemp As String strTemp = fBrowseForFolder(Me.hwnd, ”Restore From“)If strTemp <> ”“ Then
txtSource = strTemp
dbasize2 = FileLen(txtSource & ”db.MDB“)
lblSelectedDba = ”Selected Backup Database is : “ & Format((dbasize2 / 1024)/ 1024, ”standard“)& ”MB.“
cmdRestore.Enabled = True End If Erro:
Select Case err.Number
Case 53 ''File Not Found
lblSelectedDba = ”No Backup at this location“
Toolbar2.Enabled = False
End Select 它主要是查看數(shù)據(jù)庫(kù)是否存在,如果所恢復(fù)的數(shù)據(jù)不存在,則會(huì)提示錯(cuò)誤。數(shù)據(jù)恢復(fù)也用到了一個(gè)方法,在模塊中也已經(jīng)定義了該方法DoRestore。數(shù)據(jù)恢復(fù)代碼如下: If MsgBox(”Restoring database from location “ & txtSource & ” will replace existing database files.Do you want to Contunue“, vbYesNo)= vbYes Then DoRestore txtSource.Text, App.Path If NoDba = True Then MsgBox ”Database Restored Click Ok to Exit Program“ frmRestoreDba.Hide Unload frmRestoreDba End If Else lblStatus.Caption = ”Database Restore Canceled“ End If 其中DoRestore實(shí)現(xiàn)的功能源碼如下所示:
DEFSOURCE = ”P(pán)ROVIDER=Microsoft.jet.oledb.4.0;Persist Security Info=False;Data Source=“ DBName = ”db.MDB;Jet OLEDB:Database Password=matrix-se;“ Set Db = New ADODB.Connection
Db.Open DEFSOURCE & App.Path & DBName Dim lFileOp As Long Dim lresult As Long Dim lFlags
As Long Dim SHFileOp As SHFILEOPSTRUCT Dim strSourceDir As String Dim strDestinationDir As String Db.Close Screen.MousePointer = vbHourglass BackupFolderName = strDestinationPath lFileOp = FO_COPY lFlags = lFlags And Not FOF_SILENT lFlags = lFlags Or FOF_NOCONFIRMATION lFlags = lFlags Or FOF_NOCONFIRMMKDIR lFlags = lFlags Or FOF_FILESONLY With SHFileOp
.wFunc = lFileOp
.pFrom = strSourcePath & ”db.MDB“ & vbNullChar
.pTo = strDestinationPath & vbNullChar
.fFlags = lFlags End With lresult = SHFileOperation(SHFileOp)Set Db = New ADODB.Connection Db.Open DEFSOURCE & App.Path & DBName Screen.MousePointer = vbDefault frmRestoreDba.lblStatus = ”Restore Complete“ 說(shuō)明:本程序中此部分內(nèi)容參考了網(wǎng)上的同類(lèi)型代碼,對(duì)其進(jìn)行修改后得到此成型作品,從功能上來(lái)講,它已經(jīng)實(shí)現(xiàn)了它所要完成的工作,經(jīng)過(guò)測(cè)試已經(jīng)沒(méi)有問(wèn)題,但是實(shí)現(xiàn)的源代碼,也只有部分掌握。這實(shí)屬本人精力與能力有限所置。4.3.4 數(shù)據(jù)轉(zhuǎn)換
這個(gè)功能可以把當(dāng)前列表框中的任何一個(gè)表轉(zhuǎn)換成excel形式,轉(zhuǎn)換后你可以看到表中的內(nèi)容,也可以對(duì)表進(jìn)行操作,保存,修改,打印等。①界面效果圖
圖4.8數(shù)據(jù)轉(zhuǎn)換效果圖 ②實(shí)現(xiàn)方法
在這里用到了一個(gè)顯示gif圖片的控件。選擇左面list中的一個(gè)表后,點(diǎn)擊導(dǎo)出后即可完成,進(jìn)度條中顯示當(dāng)前轉(zhuǎn)換進(jìn)度程度。
首先要在list中加載各表名。以便進(jìn)行選擇轉(zhuǎn)換。添加表名部分在load進(jìn)行加載,其中的導(dǎo)出與取消按鈕是由coolbar制作而成。Form的load事件處理內(nèi)容如下:
TMaxAni1.FileName = App.Path & ”iconfind.gif“ TMaxAni1.ShowGif Dim cnn1 As ADODB.Connection Dim rstschema As ADODB.Recordset Dim strcnn As String Set cnn1 = New ADODB.Connection strcnn = ”provider=Microsoft.jet.oledb.4.0;“ & ”data source=“ & App.Path & ”db.mdb“ cnn1.Open strcnn Set rstschema = cnn1.OpenSchema(adSchemaTables)Do Until rstschema.EOF temp = rstschema!Table_Name If Left(temp, 1)<> ”M“ Then List2.AddItem temp End If rstschema.MoveNext Loop cnn1.Close List2.ListIndex = 0 On Error GoTo err PathName = App.Path & ”db.MDB“ dbasize = FileLen(PathName)數(shù)據(jù)轉(zhuǎn)換成excel用到了一個(gè)部件,在引用中用到了Microsoft Excel9.0 Object library。轉(zhuǎn)換代碼如下:
Select Case Button.Index Case 1 Dim provider As String Dim datasource As String provider = ”provider=Microsoft.jet.oledb.4.0“ datasource = ”data source=“ & App.Path & ”DB.mdb“ With Adodc1.Mode = adModeReadWrite.ConnectionString = provider & ”;“ & datasource.CommandType = adCmdTable.RecordSource = List2.Text.Refresh End With ProgressBar1.Max = Adodc1.Recordset.RecordCount ProgressBar1.Min = 0 ''開(kāi)始轉(zhuǎn)換
Dim Irow, Icol As Integer
Dim Irowcount, Icolcount As Integer
Dim Fieldlen()
Dim xlApp As Excel.Application
Dim xlBook As Excel.Workbook
Dim xlSheet As Excel.Worksheet
Set xlApp = CreateObject(”Excel.Application“)
Set xlBook = xlApp.Workbooks.add
Set xlSheet = xlBook.Worksheets(1)With Adodc1.Recordset
.MoveLast
If.RecordCount < 1 Then
MsgBox(”Error!“)
Exit Sub
End If
Irowcount =.RecordCount
Icolcount =.Fields.Count
ReDim Fieldlen(Icolcount)
.MoveFirst
For Irow = 1 To Irowcount + 1
For Icol = 1 To Icolcount
Select Case Irow
Case 1
xlSheet.Cells(Irow, Icol).Value =.Fields(Icol1))= True Then
Fieldlen(Icol)= LenB(.Fields(Icol1))
End If
xlSheet.Columns(Icol).ColumnWidth = Fieldlen(Icol)
xlSheet.Cells(Irow, Icol).Value =.Fields(Icol1))
If Fieldlen(Icol)< Fieldlen1 Then
xlSheet.Columns(Icol).ColumnWidth = Fieldlen1
Fieldlen(Icol)= Fieldlen1
Else
xlSheet.Columns(Icol).ColumnWidth = Fieldlen(Icol)
End If
xlSheet.Cells(Irow, Icol).Value =.Fields(Icol1)).Font.Name = ”黑體“
.Range(.Cells(1, 1),.Cells(1, Icol1)).Borders.LineStyle = xlContinuous
End With
xlApp.Visible = True
'' xlBook.Save
''xlBook.Close
Set xlApp = Nothing
Adodc1.Recordset.ActiveConnection = Nothing End With Toolbar4.Buttons(1).Enabled = False Case 2 Unload Me End Select
[10]...>>
4.4公寓管理 4.4.1學(xué)生請(qǐng)假
學(xué)生請(qǐng)假與違規(guī)在一個(gè)公寓管理中是最常見(jiàn)的問(wèn)題了,所以在此軟件中加上了這兩項(xiàng)功能。用它們可以隨時(shí)記錄請(qǐng)假記錄。①學(xué)生請(qǐng)假記錄圖片顯示
圖4.9學(xué)生請(qǐng)假效果圖 ② 界面制作與實(shí)現(xiàn)
此界面主要是對(duì)學(xué)生請(qǐng)假記錄做一個(gè)添加。利用它可以把學(xué)生的基本的請(qǐng)假資料保存起來(lái)。其中的日期是系統(tǒng)當(dāng)前的日期,它是不可以進(jìn)行更改的,然后在其它文本框中輸入其它詳細(xì)資料即可以。這里的添加操作用的是Adodc控件,所有的文本框在初始的時(shí)候沒(méi)有同Adodc綁定,而是在代碼中與數(shù)據(jù)庫(kù)中表的字段進(jìn)行的綁定,然后進(jìn)行添加操作。這樣做在使用的時(shí)候有很大的方便之處。第一是窗體在初始化時(shí)不會(huì)顯示任何記錄,不用設(shè)置文本框?yàn)榭盏纫幌盗械牟僮鳌5诙钱?dāng)進(jìn)行記錄輸入時(shí),發(fā)現(xiàn)問(wèn)題不用輸入時(shí),不按添加按鈕記錄就不會(huì)進(jìn)行添加。注意的是,在添加前要確定所有的文本框都要進(jìn)行詳細(xì)填寫(xiě),否則會(huì)提示輸入詳細(xì)信息。添加主要代碼如下:
If Text1.Text = ”“ Or Text2.Text = ”“ Or Text3.Text = ”“ Or Text4.Text = ”“ Or Text5.Text = ”“ Or Text6.Text = ”“ Or Text7.Text = ”“ Or Text8.Text = ”“ Or Text9.Text = ”“ Then MsgBox ”請(qǐng)輸入詳細(xì)信息!“, , ”系統(tǒng)提示“ Else With Adodc1.Recordset.AddNew.Recordset.Fields(0).Value = Text1.Text.Recordset.Fields(1).Value = Text2.Text.Recordset.Fields(2).Value = Text3.Text.Recordset.Fields(3).Value = Text4.Text.Recordset.Fields(4).Value = Text5.Text.Recordset.Fields(5).Value = Text6.Text.Recordset.Fields(6).Value = Text7.Text.Recordset.Fields(7).Value = Text8.Text.Recordset.Fields(8).Value = Text9.Text.Recordset.Update End With Set main.DataGrid1.datasource = Adodc1 main.DataGrid1.Refresh End If 4.4.2學(xué)生違規(guī)
①學(xué)生違規(guī)記錄圖片顯示
圖4.10學(xué)生違規(guī)效果圖
此界面與上面的請(qǐng)假記錄差不多。它主要是對(duì)學(xué)生的違規(guī)記錄做一個(gè)添加。其中的日期也是系統(tǒng)當(dāng)前的日期,它是不可以進(jìn)行更改的,然后在其它文本框中輸入其它詳細(xì)資料即可以這里的違規(guī)操作用的也是Adodc控件,所有的文本框在初始的時(shí)候也沒(méi)有同Adodc綁定,它也是在代碼中與數(shù)據(jù)庫(kù)中表的字段進(jìn)行的綁定,然后進(jìn)行添加操作。其它操作同上面基本是一致的,對(duì)于違規(guī)在主界面的左側(cè)并沒(méi)有快速顯示操作,只可以用記錄查看里面的違規(guī)查看進(jìn)行選擇查看。在這里所添寫(xiě)的記錄也要全面一些,主要是為了以后查找更為方便,如果不全,系統(tǒng)會(huì)提示的?、谶`規(guī)部分代碼如下:
在load事件里對(duì)數(shù)據(jù)庫(kù)鏈接的處理,以及日期文本框的設(shè)置,代碼如下: provider = ”provider=Microsoft.jet.oledb.4.0“ datasource = ”data source=“ & App.Path & ”DB.mdb“ With Adodc1.Mode = adModeReadWrite.ConnectionString = provider & ”;“ & datasource.CommandType = adCmdTable.RecordSource = ”qingjia“.Refresh End With Text1.Text = Date Text1.Enabled = False 確定無(wú)誤后,進(jìn)行添加,代碼如下:
If Text1.Text = ”“ Or Text2.Text = ”“ Or Text3.Text = ”“ Or Text4.Text = ”“ Or Text5.Text = ”“ Or Text6.Text = ”“ Or Text7.Text = ”“ Or Text8.Text = ”“ Or Text9.Text = ”“ Then MsgBox ”請(qǐng)輸入詳細(xì)信息!“, , ”系統(tǒng)提示“ Else With Adodc1.Recordset.AddNew.Recordset.Fields(0).Value = Text1.Text.Recordset.Fields(1).Value = Text2.Text.Recordset.Fields(2).Value = Text3.Text.Recordset.Fields(3).Value = Text4.Text.Recordset.Fields(4).Value = Text5.Text.Recordset.Fields(5).Value = Text6.Text.Recordset.Fields(6).Value = Text7.Text.Recordset.Fields(7).Value = Text8.Text.Recordset.Fields(8).Value = Text9.Text.Recordset.Update End With Set main.DataGrid1.datasource = Adodc1 main.DataGrid1.Refresh 4.5衛(wèi)生檢查
公寓衛(wèi)生可以說(shuō)是一個(gè)公寓管理中最常見(jiàn)到的問(wèn)題了。公寓衛(wèi)生每天要清掃,寢室衛(wèi)生每天要檢查,但是如果這些都用紙來(lái)進(jìn)行填寫(xiě),一定會(huì)十分麻煩,且保存也不是十分方便,在一些評(píng)比中也會(huì)忙的很遭。所以在這個(gè)軟件中編寫(xiě)了此功能。4.5.1 公寓衛(wèi)生添加效果圖
圖4.11公寓衛(wèi)生添加效果圖 ①在這個(gè)界面中主要用到了文本框以及起到美觀作用的frame控件。日期已經(jīng)設(shè)置成只讀屬性,檢查記錄的日期是不能隨便改寫(xiě)的。公寓名稱(chēng)可以在下拉列表框中進(jìn)行選擇,如果在下拉列表框中沒(méi)有發(fā)現(xiàn),可以人工輸入,但是要確定公寓名稱(chēng)的正確性。寢室名稱(chēng)需要自己輸入。這里的衛(wèi)生標(biāo)準(zhǔn)一共有五項(xiàng)可以填寫(xiě),在每一項(xiàng)里已經(jīng)基本設(shè)置了所不全標(biāo)準(zhǔn)的記錄,你可以在下拉列表框中進(jìn)行選擇即可,但是如果沒(méi)有你想輸入的記錄的話,你也可以自己輸入。輸入完成后,在減分后面的文本框中輸入一共要對(duì)此寢室減掉的分?jǐn)?shù),單擊得分后面的文本框會(huì)自動(dòng)算出應(yīng)該得到的分?jǐn)?shù)。然后跟據(jù)得分的分?jǐn)?shù),你要選擇該寢室的衛(wèi)生等級(jí),衛(wèi)生等級(jí)為必選值且為固定值,正確的選擇此項(xiàng)可以在主界面的左側(cè)中快速對(duì)衛(wèi)生等級(jí)進(jìn)行查看。②公寓選擇欄中代碼的實(shí)現(xiàn): Combo3.Clear Dim I As Integer I = 1 If Adodc1.Recordset.RecordCount <> 0 Then Do While I < Adodc1.Recordset.RecordCount
Combo3.AddItem(Adodc1.Recordset.Fields(”公寓名稱(chēng)“))
Adodc1.Recordset.MoveNext
I = I + 1 Loop End If 衛(wèi)生選擇欄中的代碼實(shí)現(xiàn)基本同上,它也是一個(gè)表中的字段值!Dim J As Integer J = 1 If Adodc4.Recordset.RecordCount <> 0 Then Do While J < Adodc4.Recordset.RecordCount
Combo2.AddItem(Adodc4.Recordset.Fields(”等級(jí)“))
Adodc4.Recordset.MoveNext
J = J + 1 Loop End If Combo2.Text = ”優(yōu)秀“ 不合標(biāo)準(zhǔn)的衛(wèi)生記錄填寫(xiě)情況如下: Combo4.AddItem(”門(mén)窗不干凈“)Combo4.AddItem(”地面不干凈“)Combo4.AddItem(”陽(yáng)臺(tái)不干凈“)Combo4.AddItem(”床鋪不整齊“)Combo4.AddItem(”不疊被“)Combo4.AddItem(”桌面不整齊“)Combo4.AddItem(”書(shū)柜擺放不整齊“)由于此窗體中涉及到公寓與寢室,在填寫(xiě)時(shí)要確定其名稱(chēng)的正確,所以在添加記錄前要對(duì)它們進(jìn)行檢查,如發(fā)現(xiàn)不存在的記錄,則顯示提示。檢查記錄時(shí)用的是adodc中的find命令。類(lèi)似于用戶登錄時(shí)的判斷,同樣記錄的輸入也要詳細(xì)。代碼如下: Adodc1.Refresh Adodc1.Recordset.Find ”公寓名稱(chēng)=''“ & Combo3.Text & ”''“ If Adodc1.Recordset.EOF = True Then MsgBox ”查無(wú)此公寓“, , ”提示“ Adodc1.Recordset.MoveFirst Exit Sub End If Adodc3.Refresh Adodc3.Recordset.Find ”寢室=''“ & Text5.Text & ”''“ If Adodc3.Recordset.EOF = True Then MsgBox ”查無(wú)此寢室“, , ”提示“ Adodc3.Recordset.MoveFirst Exit Sub End If If Combo3.Text = ”“ Or Combo2.Text = ”“ Or Text5.Text = ”“ Or Text2.Text = ”“ Or Text3.Text = ”“ Then MsgBox ”請(qǐng)輸入詳細(xì)信息!“, , ”系統(tǒng)提示“ Else 確認(rèn)一切無(wú)誤后,開(kāi)始對(duì)所填寫(xiě)記錄進(jìn)行添加并顯示: With Adodc2.Recordset.AddNew.Recordset.Fields(0).Value = Combo3.Text.Recordset.Fields(1).Value = Text5.Text.Recordset.Fields(2).Value = Combo4.Text.Recordset.Fields(3).Value = Combo5.Text.Recordset.Fields(4).Value = Combo6.Text.Recordset.Fields(5).Value = Combo7.Text.Recordset.Fields(6).Value = Combo8.Text.Recordset.Fields(7).Value = Text2.Text.Recordset.Fields(8).Value = Text3.Text.Recordset.Fields(9).Value = Combo2.Text.Recordset.Fields(10).Value = Text4.Text.Recordset.Fields(11).Value = Text1.Text.Recordset.Update End With Set main.DataGrid1.datasource = Adodc2 main.DataGrid1.Refresh 4.6 公寓資產(chǎn)
公寓資產(chǎn)可以及時(shí)對(duì)公寓里進(jìn)出財(cái)務(wù)進(jìn)行統(tǒng)計(jì),以免遺忘,造成不必要的損失或不必要的麻煩,它的實(shí)現(xiàn)方法基本同上面的衛(wèi)生記錄的添加,相對(duì)比來(lái)說(shuō)比上面的簡(jiǎn)單一些。不足的是目前只做出了入庫(kù)管理,對(duì)于出庫(kù)記錄還沒(méi)有實(shí)現(xiàn)。4.6.1公寓資產(chǎn)添加設(shè)置效果圖
[10]...>>
圖4.12公寓資產(chǎn)添加效果圖 4.6.2 界面制作與實(shí)現(xiàn)方法 日期的設(shè)置同上面一樣,只讀屬性。公寓名稱(chēng)與寢室名稱(chēng)要人工輸入,沒(méi)有選擇,這是因?yàn)榭紤]到它不會(huì)像衛(wèi)生記錄那樣每天要添加一次,每次要添加很多,所以為了減少系統(tǒng)進(jìn)程,它沒(méi)有使用combo,沒(méi)有在窗體中進(jìn)行加載。窗體中的數(shù)量與單價(jià)在填寫(xiě)之后會(huì)自動(dòng)把總價(jià)格計(jì)算出來(lái),類(lèi)似于上圖中的得分一樣。部分代碼如下: If Text5.Text = ”“ Or Text2.Text = ”“ Or Text3.Text = ”“ Then MsgBox ”請(qǐng)輸入詳細(xì)信息!“, , ”提示“ Else With Adodc1.Recordset.AddNew.Recordset.Fields(0).Value = Text1.Text.Recordset.Fields(1).Value = Text8.Text.Recordset.Fields(2).Value = Text2.Text.Recordset.Fields(3).Value = Text3.Text.Recordset.Fields(4).Value = Text4.Text.Recordset.Fields(5).Value = Text5.Text.Recordset.Fields(6).Value = Text6.Text.Recordset.Fields(7).Value = Text7.Text.Recordset.Update End With Set main.DataGrid1.datasource = Adodc1 main.DataGrid1.Refresh Text2.Text = ”“ Text3.Text = ”“ Text4.Text = ”“ Text5.Text = ”“ Text6.Text = ”“ Text7.Text = ”“ End If 4.7記錄查看
記錄查看可以讓你對(duì)已錄入的記錄進(jìn)行各種符合條件的查找,顯示符合條件的記錄。這里主要包括四個(gè)方面的查看:衛(wèi)生查看、請(qǐng)假查看、違規(guī)查看、資產(chǎn)查看。下面分別介紹。4.7.1 衛(wèi)生查看 ①界面效果圖
圖4.13衛(wèi)生查看效果圖 ②界面制作與實(shí)現(xiàn)方法
這是一個(gè)比較簡(jiǎn)單的窗體操作??雌饋?lái)精簡(jiǎn)、小巧。它主要的功能是對(duì)已經(jīng)錄入的衛(wèi)生記錄進(jìn)行符合條件的查詢(xún)。在查詢(xún)類(lèi)別中選擇可以選擇全部查看以及按日期查看。查看全部即顯示所有記錄,選擇按日期查看后在下面的列表框中選擇所要查看的日期,點(diǎn)擊確定后即可以看到該日期的記錄。
在進(jìn)行查詢(xún)前,要對(duì)所操作的表進(jìn)行綁定,代碼如下: Dim s As String provider = ”provider=Microsoft.jet.oledb.4.0“ datasource = ”data source=“ & App.Path & ”DB.mdb“ With Adodc1.Mode = adModeReadWrite.ConnectionString = provider & ”;“ & datasource.CommandType = adCmdTable.RecordSource = ”weigui“.Refresh End With 日期后面的下拉列表框中可以顯示出所有已經(jīng)錄入記錄的日期,它是通過(guò)對(duì)當(dāng)前表進(jìn)行分類(lèi)查詢(xún)后得到的結(jié)果,然后將其添加在combo中,實(shí)現(xiàn)代碼如下: s = ”select distinct 日期 from weisheng“ With Adodc2.Mode = adModeReadWrite.ConnectionString = provider & ”;“ & datasource.CommandType = adCmdText.RecordSource = s.Refresh End With
For I = 1 To Adodc2.Recordset.RecordCount Combo1.AddItem(Adodc2.Recordset.Fields(”日期“))Adodc2.Recordset.MoveNext Next 查看全部,即把當(dāng)前表中的記錄全部賦給當(dāng)前用來(lái)顯示的表格,按日期查看,則是在表中先進(jìn)行查詢(xún),然后對(duì)結(jié)果進(jìn)行重綁定,在賦值。它們的判斷主要是通過(guò)單選框的選取來(lái)完成的,實(shí)現(xiàn)方法如下: s = Combo1.Text If Option1.Value = True Then Set main.DataGrid1.datasource = Adodc1 main.DataGrid1.Refresh ElseIf Option2.Value = True Then sql = ”select * from weisheng where 日期=''“ & Trim(s)& ”''“ With Adodc3.Mode = adModeReadWrite.ConnectionString = provider & ”;“ & datasource.CommandType = adCmdText.RecordSource = sql.Refresh End With Set main.DataGrid1.datasource = Adodc3 main.DataGrid1.Refresh End If Unload Me 4.7.2其它記錄查看 在記錄查看中還有其它三項(xiàng)查看方式,分別是請(qǐng)假、違規(guī)、資產(chǎn)三項(xiàng)記錄查看。它們的實(shí)現(xiàn)方法與窗體與上面的衛(wèi)生查看基本相同。①請(qǐng)假查看
圖4.14請(qǐng)假查看效果圖
用它可以對(duì)當(dāng)前所有記錄以及有效日期內(nèi)的記錄進(jìn)行查看。代碼如下:
Dim sql As String Dim s As String s = Combo1.Text If Option1.Value = True Then Set main.DataGrid1.datasource = Adodc1 main.DataGrid1.Refresh ElseIf Option2.Value = True Then sql = ”select * from qingjia where 日期=''“ & Trim(s)& ”''“ With Adodc3.Mode = adModeReadWrite.ConnectionString = provider & ”;“ & datasource.CommandType = adCmdText.RecordSource = sql.Refresh End With Set main.DataGrid1.datasource = Adodc3 main.DataGrid1.Refresh End If Unload Me 在窗體的load中要設(shè)置已經(jīng)添加的日期,需要對(duì)表進(jìn)行條件查詢(xún),代碼如下: s = ”select distinct 日期 from qingjia“ With Adodc2.Mode = adModeReadWrite.ConnectionString = provider & ”;“ & datasource.CommandType = adCmdText.RecordSource = s.Refresh End With For I = 1 To Adodc2.Recordset.RecordCount Combo1.AddItem(Adodc2.Recordset.Fields(”日期“))Adodc2.Recordset.MoveNext Next ②違規(guī)查看
圖4.15違規(guī)查看效果圖
目前此類(lèi)功能還不是十分理想,有些查看方式會(huì)在以后的程序中進(jìn)行升級(jí)。在Load事件設(shè)置了窗體運(yùn)行時(shí)所有需要的東西。代碼如下:
Option1.Value = True Dim s As String provider = ”provider=Microsoft.jet.oledb.4.0“ datasource = ”data source=“ & App.Path & ”DB.mdb“ With Adodc1.Mode = adModeReadWrite.ConnectionString = provider & ”;“ & datasource.CommandType = adCmdTable.RecordSource = ”weigui“.Refresh End With s = ”select distinct 日期 from weigui“ With Adodc2.Mode = adModeReadWrite.ConnectionString = provider & ”;“ & datasource.CommandType = adCmdText.RecordSource = s.Refresh End With For I = 1 To Adodc2.Recordset.RecordCount Combo1.AddItem(Adodc2.Recordset.Fields(”日期“))Adodc2.Recordset.MoveNext Next 查看部分的源代碼如下: Dim sql As String Dim s As String s = Combo1.Text If Option1.Value = True Then Set main.DataGrid1.datasource = Adodc1 main.DataGrid1.Refresh ElseIf Option2.Value = True Then sql = ”select * from weigui where 日期=''“ & Trim(s)& ”''“ With Adodc3.Mode = adModeReadWrite.ConnectionString = provider & ”;“ & datasource.CommandType = adCmdText.RecordSource = sql.Refresh End With Set main.DataGrid1.datasource = Adodc3 main.DataGrid1.Refresh End If Unload Me ③資產(chǎn)查看
圖4.16資產(chǎn)查看效果圖
在Load事件設(shè)置了窗體運(yùn)行時(shí)所有需要的東西。代碼如下:
On Error Resume Next Option1.Value = True Dim s As String provider = ”provider=Microsoft.jet.oledb.4.0“ datasource = ”data source=“ & App.Path & ”DB.mdb“ With Adodc1.Mode = adModeReadWrite.ConnectionString = provider & ”;“ & datasource.CommandType = adCmdTable.RecordSource = ”zichan“.Refresh End With s = ”select distinct 日期 from zichan“ With Adodc3.Mode = adModeReadWrite.ConnectionString = provider & ”;“ & datasource.CommandType = adCmdText.RecordSource = s.Refresh End With For I = 1 To Adodc3.Recordset.RecordCount Combo1.AddItem(Adodc3.Recordset.Fields(”日期“))Adodc3.Recordset.MoveNext Next 查看部分代碼如下所示: On Error Resume Next Dim sql As String Dim s As String s = Combo1.Text If Option1.Value = True Then Set main.DataGrid1.datasource = Adodc1 main.DataGrid1.Refresh ElseIf Option2.Value = True Then sql = ”select * from zichan where 日期=''“ & Trim(s)& ”''“ With Adodc2.Mode = adModeReadWrite.ConnectionString = provider & ”;“ & datasource.CommandType = adCmdText.RecordSource = sql.Refresh End With Set main.DataGrid1.datasource = Adodc2 main.DataGrid1.Refresh End If Call dx1 Unload Me 4.8記錄刪除
刪除是一個(gè)數(shù)據(jù)庫(kù)軟件中最基本的操作之一。在本軟件的工具欄中也有一個(gè)刪除按鈕,其功能也是將所找到的記錄刪除,但是它每次只能刪除一條記錄,且此刪除記錄的前提是在右側(cè)的顯示中容易找出,即記錄不多的情況下使用。如果一旦數(shù)據(jù)記錄很多,一條條查找比較不方便時(shí),即可以使用此窗體進(jìn)行刪除。這里的刪除也有四個(gè)窗體,分別為衛(wèi)生刪除、請(qǐng)假刪除、違規(guī)刪除、資產(chǎn)刪除。下面分別介紹。4.8.1 衛(wèi)生刪除 ①效果圖
圖4.17衛(wèi)生刪除效果圖
②界面制作與實(shí)現(xiàn)方法
這個(gè)界面總體來(lái)說(shuō)各個(gè)控件比較簡(jiǎn)單,但是作為一個(gè)刪除操作,它已經(jīng)連接到了數(shù)據(jù)庫(kù),與數(shù)據(jù)庫(kù)的表相聯(lián)。且有三種刪除記錄方式可以選擇。默認(rèn)為單條刪除,選擇此項(xiàng)后需要在日期中選擇所刪除記錄的添加日期,以及所在的公寓與寢室,當(dāng)這三條全部符合要求后,在表中進(jìn)行查找,找到后確認(rèn)刪除。選擇批量刪除后,在下面只有一個(gè)日期可以選擇,這樣將會(huì)把所選日期內(nèi)的所有記錄都將刪除掉,所以稱(chēng)其為批量刪除。全部即是把當(dāng)前表清空,全部刪除掉,建議使用此操作前對(duì)當(dāng)前數(shù)據(jù)庫(kù)進(jìn)行備份處理,否則數(shù)據(jù)將不會(huì)恢復(fù)。首先要進(jìn)行數(shù)據(jù)庫(kù)連接,如上面例子所示,這里就不在介紹,接下來(lái)要對(duì)本窗體中的日期進(jìn)行加載,如下所示: s = ”select distinct 日期 from weisheng“ With Adodc2.Mode = adModeReadWrite.ConnectionString = provider & ”;“ & datasource.CommandType = adCmdText.RecordSource = s.Refresh End With For I = 1 To Adodc2.Recordset.RecordCount Combo1.AddItem(Adodc2.Recordset.Fields(”日期“))Combo2.AddItem(Adodc2.Recordset.Fields(”日期“))Adodc2.Recordset.MoveNext Next Option1.Value = True Frame3.Visible = True Frame5.Visible = False Frame6.Visible = False 在單條刪除前要確定所有條件符合要求,單條刪除操作的代碼主要部分如下:
If(MsgBox(”你真的想刪除日期為
“ & Combo1.Text & ”
公寓為
“ & Text1.Text & ”
寢室為
“ & Text2.Text & ” 的記錄嗎?“, vbOKCancel, ”系統(tǒng)提示“))= vbOK Then Adodc1.Refresh Adodc1.Recordset.ActiveConnection.Execute ”delete from weisheng where 日期=''“ &
Trim(s)& ”''and 公寓=''“ & Trim(Text1.Text)& ”''and 寢室=''“ & Trim(Text2.Text)& ”''“
'', , adExecuteNoRecords Adodc1.Recordset.Update Combo1.Text = ”“ Text1.Text = ”“ Text2.Text = ”“ MsgBox ”刪除成功“, , ”系統(tǒng)提示“ End If Unload Me 當(dāng)選擇某一日期后進(jìn)行批量刪除代碼如下:
If(MsgBox(”你真的想刪除日期為
“ & Combo2.Text & ” 的記錄嗎?“, vbOKCancel, ”系統(tǒng)提示“))= vbOK Then Adodc1.Refresh Adodc1.Recordset.ActiveConnection.Execute ”delete from weisheng where 日期=''“ & Trim(Combo2.Text)& ”''“ Combo2.Text = ”“ MsgBox ”刪除成功“, , ”系統(tǒng)提示“ End If Unload Me 清空數(shù)據(jù)表代碼為:
If(MsgBox(”你真的想刪除所有的記錄嗎?一旦刪除即不可恢復(fù)“, vbOKCancel, ”系統(tǒng)提示“))= vbOK Then For I = 1 To Adodc1.Recordset.RecordCount Adodc1.Recordset.Delete Adodc1.Recordset.MoveNext Next I End If MsgBox ”刪除成功“, , ”系統(tǒng)提示“ Unload Me 4.8.2請(qǐng)假記錄 ①效果圖
[10]...>>
圖4.18請(qǐng)假記錄刪除效果圖 ②界面制作與實(shí)現(xiàn)方法
這個(gè)窗體與上面不同的是多了一個(gè)姓名條件,其它的都基本一致。由于在一個(gè)公寓中會(huì)有很多人要得名,但是在某一公寓某一寢室中只會(huì)有一個(gè)人,這也是一個(gè)公寓分配住宿人員時(shí)的基本標(biāo)準(zhǔn),因?yàn)檫@樣也便于公寓本身的管理。此刪除窗體只有單條刪除與上面不同,單條刪除部分代碼如下:
If(MsgBox(”你真的想刪除日期為
“ & Combo1.Text & ”
公寓為
“ & Text1.Text & ”
寢室為
“ & Text2.Text & ”
姓名為
“ & Text3.Text & ” 的請(qǐng)假記錄嗎?“, vbOKCancel, ”系統(tǒng)提示“))= vbOK Then Adodc1.Refresh Adodc1.Recordset.ActiveConnection.Execute ”delete from qingjia where 日期=''“ & Trim(s)& ”''and 公寓=''“ & Trim(Text1.Text)& ”''and 寢室=''“ & Trim(Text2.Text)& ”''and 姓名=''“ & Trim(Text3.Text)& ”''“
'', , adExecuteNoRecords Adodc1.Recordset.Update Combo1.Text = ”“ Text1.Text = ”“ Text2.Text = ”“ MsgBox ”刪除成功“, , ”系統(tǒng)提示“ End If 4.8.3 違規(guī)刪除 ①效果圖
圖4.19違規(guī)記錄刪除效果圖 ②界面制作與實(shí)現(xiàn)方法
違規(guī)刪除操作與請(qǐng)假刪除操作基本一致,不同之處只是在于后臺(tái)對(duì)不同的表進(jìn)行處理,前臺(tái)界面大體相同。其實(shí)現(xiàn)方法與上現(xiàn)的也差不太多,這里就不在敘述。單條刪除記錄: Dim sql As String Dim s As String Dim panduan As Boolean If Combo1.Text = ”“ And Text1.Text = ”“ And Text2.Text = ”“ Then MsgBox ”請(qǐng)輸入刪除條件!“, , ”提示“ Exit Sub End If s = Combo1.Text If(MsgBox(”你真的想刪除日期為
“ & Combo1.Text & ”
公寓為
“ & Text1.Text & ”
寢室為
“ & Text2.Text & ”
姓名為
“ & Text3.Text & ” 的違規(guī)記錄嗎?“, vbOKCancel, ”系統(tǒng)提示“))= vbOK Then Adodc1.Refresh Adodc1.Recordset.ActiveConnection.Execute ”delete from weigui where 日期=''“ & Trim(s)& ”''and 公寓=''“ & Trim(Text1.Text)& ”''and 寢室=''“ & Trim(Text2.Text)& ”'' and 姓名=''“ & Trim(Text3.Text)& ”''“
'', , adExecuteNoRecords Adodc1.Recordset.Update Combo1.Text = ”“ Text1.Text = ”“ Text2.Text = ”“ MsgBox ”刪除成功“, , ”系統(tǒng)提示“ End If Unload Me 成批刪除記錄:
If(MsgBox(”你真的想刪除日期為
“ & Combo2.Text & ” 的記錄嗎?“, vbOKCancel, ”系統(tǒng)提示“))= vbOK Then Adodc1.Refresh Adodc1.Recordset.ActiveConnection.Execute ”delete from weigui where 日期=''“ & Trim(Combo2.Text)& ”''“ Combo2.Text = ”“ MsgBox ”刪除成功“, , ”系統(tǒng)提示“ End If Unload Me 刪除所有記錄:
If(MsgBox(”你真的想刪除所有的記錄嗎?一旦刪除即不可恢復(fù)“, vbOKCancel, ”系統(tǒng)提示“))= vbOK Then For I = 1 To Adodc1.Recordset.RecordCount Adodc1.Recordset.Delete Adodc1.Recordset.MoveNext Next I End If MsgBox ”刪除成功“, , ”系統(tǒng)提示“ Unload Me 4.8.4 資產(chǎn)刪除 ①效果圖
圖4.20資產(chǎn)刪除效果圖 ② 界面制作與實(shí)現(xiàn)方法
與衛(wèi)生記錄刪除不同的是寢室改為了名稱(chēng)。值得注意的是,此處公寓與名稱(chēng)都要人工輸入,所以在輸入的時(shí)候要注意不要有多余字符,否則會(huì)出錯(cuò)刪除不掉的情況。單條刪除部分源碼如下:
If(MsgBox(”你真的想刪除日期為
“ & Combo1.Text & ”
公寓為
“ & Text1.Text & ”
名稱(chēng)為
“ & Text2.Text & ” 的資產(chǎn)記錄嗎?“, vbOKCancel, ”系統(tǒng)提示“))= vbOK Then Adodc1.Refresh Adodc1.Recordset.ActiveConnection.Execute ”delete from zichan where 日期=''“ & Trim(s)& ”''and 公寓=''“ & Trim(Text1.Text)& ”''and 名稱(chēng)=''“ & Trim(Text2.Text)& ”''“
'', , adExecuteNoRecords Adodc1.Recordset.Update Combo1.Text = ”“ Text1.Text = ”“ Text2.Text = ”“ MsgBox ”刪除成功“, , ”系統(tǒng)提示“ End If 4.9值班記錄
值班記錄這項(xiàng)可以說(shuō)是此軟件的一個(gè)新增功能。它的界面小巧,并且它可以讓值班人員記錄前天發(fā)生的一些事情,字?jǐn)?shù)在1000字左右。可以說(shuō)是一個(gè)小型的日記本。4.9.1 值班記錄 ①值班記錄效果圖
圖4.21值班記錄效果圖 ② 實(shí)現(xiàn)思想與功能
此窗體的功能以及其源代碼是經(jīng)過(guò)修改之后而形成的,源文件是一個(gè)電子記事本,發(fā)現(xiàn)后經(jīng)過(guò)修改后做出一個(gè)日記本。
在上面的日期后面的文本框中,你可以輸入如窗口標(biāo)題后面所示的日期格式后,點(diǎn)擊查看,即可以查看到所選日期的詳細(xì)記錄。這是一種查詢(xún)方法,當(dāng)然你也可以用右面簡(jiǎn)單的上一條與下一條進(jìn)行快速查看,但是它只能查看當(dāng)日日期起開(kāi)始的記錄,如果與你所想要查看的日期相差很遠(yuǎn),那么你就需要使用第一種方法了。這個(gè)日記本還支持修改與刪除功能。當(dāng)你想編輯或刪除某一日期的時(shí)候時(shí),你需要用查看方法找到該記錄,然后對(duì)當(dāng)前記錄使用編輯或刪除即可完成操作。刪除后,記錄即不可恢復(fù),且此日記目前還沒(méi)有備份功能,慎重操作。
如果你今天值班,還沒(méi)有寫(xiě)值班記錄,那么你可以點(diǎn)擊增加按鈕,開(kāi)始寫(xiě)當(dāng)日的值班記錄,說(shuō)明的是,每天只可以寫(xiě)一次記錄。當(dāng)你寫(xiě)完今天記錄后,在點(diǎn)擊增加時(shí)會(huì)提示你今日已寫(xiě)完。但是你可以對(duì)今日記錄進(jìn)行編輯修改。
本程序源碼較為復(fù)雜,主要都是對(duì)文件進(jìn)行操作,并沒(méi)有把記錄添加到數(shù)據(jù)庫(kù)中,所以不支持備份操作,且本窗體中的操作程序還用到了一個(gè)模塊。部分代碼如下: 查看上一條記錄:
If giCurrentRecord > 1 Then
giCurrentRecord = giCurrentRecord1
Form_Load
End If 4.9.2 增加記錄 ①增加記錄效果圖
圖4.22增加記錄效果圖 ② 實(shí)現(xiàn)思想與程序源碼
日期后顯示當(dāng)前日期,但是可以修改。每篇記錄的字?jǐn)?shù)要求在1000字以?xún)?nèi)。支持對(duì)當(dāng)前字符輸入的統(tǒng)計(jì),確定完成本日記錄后,點(diǎn)擊保存即可。部分代碼如下:
Dim bSaved As Boolean, bCF If txtDate = ”“ Or txtMemo = ”“ Then Exit Sub '' 如果記錄未填,則退出 If riji.Tag = ”addnew“ Then
If giRecordCount >= 1 Then
''新增時(shí),檢查記錄是否重復(fù)
gsSql = frminput.txtDate
bCF = FindData(gsSql)
If bCF Then
MsgBox ”今天你已經(jīng)寫(xiě)過(guò)日記了!“, vbExclamation + vbOKOnly, ”每日一記“
txtMemo.SetFocus
Exit Sub
End If
End If
giRecordCount = giRecordCount + 1
bSaved = WriteData()ElseIf riji.Tag = ”modify“ Then ''
bSaved = ModifyData()End If If bSaved = True Then
AddNext = MsgBox(”保存完畢!“, vbExclamation + vbOKOnly, ”每日一記“)End If Unload Me 由于此段代碼中用到了一個(gè)模塊,在模塊中定義了很多過(guò)程,各過(guò)程實(shí)現(xiàn)功能及代碼如下所示:
讀取數(shù)據(jù):
Public Sub ReadData(curRecord As Integer)''讀取數(shù)據(jù) On Error Resume Next Dim strcaption$
riji.txtDate = goDiarys(curRecord).fldDate
riji.txtMemo = goDiarys(curRecord).fldMemo
strcaption = ”每日一記
[“ & Date & ”] “ & Time & ” WeekdayName(Weekday(Date))& “ 記錄:” & giCurrentRecord & “/” & giRecordCount
riji.Caption = strcaption End Sub 查詢(xún)數(shù)據(jù):
Public Function FindData(sql As String)As Boolean ''查詢(xún)數(shù)據(jù) On Error Resume Next
Dim I%
For I = 1 To giRecordCount
If goDiarys(I).fldDate = sql Then
giCurrentRecord = I
FindData = True
Exit For
End If
Next
ReadData giCurrentRecord End Function 新增數(shù)據(jù):
Public Function WriteData()As Boolean ''新增數(shù)據(jù) On Error Resume Next
Dim iFreefile%, I%
iFreefile = FreeFile()
Open gsPath & “DATA.DAT” For Random As #iFreefile Len = en(goDiary)
ReDim Preserve goDiarys(giRecordCount)
goDiarys(giRecordCount).fldDate = frminput.txtDate
goDiarys(giRecordCount).fldMemo = frminput.txtMemo
goDiary = goDiarys(giRecordCount)
Put #iFreefile, giRecordCount, goDiary
giCurrentRecord = giRecordCount
ReadData(giCurrentRecord)
Close #iFreefile
WriteData = True
“ & End Function 修改數(shù)據(jù):
Public Function ModifyData()As Boolean ''修改數(shù)據(jù) On Error Resume Next
Dim iFreefile%, I%
iFreefile = FreeFile()
Open gsPath & ”DATA.DAT“ For Random As #iFreefile Len =len(goDiary)
goDiarys(giCurrentRecord).fldDate = frminput.txtDate
goDiarys(giCurrentRecord).fldMemo = frminput.txtMemo
goDiary = goDiarys(giCurrentRecord)
Put #iFreefile, giCurrentRecord, goDiary
ReadData(giCurrentRecord)
Close #iFreefile
ModifyData = True End Function 刪除數(shù)據(jù):
Public Sub DeleteData()''刪除數(shù)據(jù) On Error Resume Next
Dim iFreefile%, I%, J%
I = 1: J = 1
iFreefile = FreeFile()
Open gsPath & ”temp.dat“ For Random As #iFreefile Len = Len(goDiary)
goDiarys(giCurrentRecord).fldMemo = ”IWantToKillIt*“ & goDiarys(giCurrentRecord).fldMemo ''加刪除標(biāo)記
For I = 1 To giRecordCount
''無(wú)刪除標(biāo)記的記錄保存到臨時(shí)文件,TEMP.DAT
If Left(goDiarys(I).fldMemo, 14)<> ”IWantToKillIt*“ Then
goDiary = goDiarys(I)
Put #iFreefile, J, goDiary
''在此必須有I,J兩個(gè)變量,因?yàn)槭褂枚M(jìn)制保存文件,J = J + 1
''從1開(kāi)始到后面,中間如有間隔就會(huì)出現(xiàn)亂碼
End If
Next
Close #iFreefile
Kill gsPath & ”data.dat“
Name gsPath & ”temp.dat“ As gsPath & ”data.dat“
riji.txtDate = ”“
riji.txtMemo = ”“ End Sub 說(shuō)明:由于本人能力有限,對(duì)文件部分還不算是很了解,這個(gè)功能的實(shí)現(xiàn)主要是借用了網(wǎng)上的一個(gè)電子記事本。本人只是對(duì)其做了一些修改,做成了這個(gè)每日一記,但個(gè)人認(rèn)為此功能還算是可以。4.10 Help制作 Help文檔的制作也標(biāo)志著本軟件基本完成。制作help文檔需要一個(gè)專(zhuān)業(yè)制作軟件,本人使用的是破解版的QuickCHM,此軟件無(wú)論在功能上還在是操作上用起來(lái)都是很方便。QuickCHM軟件的界面及其使用如下:
[10]...>>
圖4.23 QuickCHM軟件的界面 它屬于一個(gè)傻瓜型的制作軟件,利用它可以快速的制作出各種你所需要的幫助文檔。但是如果想制作出如下圖所示的文檔,那么需要使用制作網(wǎng)頁(yè)的軟件把內(nèi)容先做成html形式,然后在用此軟件進(jìn)行加載,最后生成chm文檔。在制作前要制作出相差的網(wǎng)頁(yè)形式,本人使用Dreamweaver。用它先做出要用到的相差頁(yè)面,大約一共為十個(gè)。然后在用QuickCHM把所有的網(wǎng)頁(yè)添加進(jìn)去,然后對(duì)QuickCHM進(jìn)行各項(xiàng)設(shè)置,最后點(diǎn)擊編譯即可生成help文檔,后綴為.Chm。在本管理軟件中可以按F1或點(diǎn)擊幫助菜單下的幫助主題即可顯示該幫助文檔,調(diào)用的過(guò)程也很簡(jiǎn)單,兩條語(yǔ)句即可以實(shí)現(xiàn)。代碼如下:
在主窗體的load事件中添加下面語(yǔ)句: App.HelpFile = App.Path & ”help.chm“ 在幫助主題的click事件中添加下面語(yǔ)句: SendKeys ”{F1}" 上面這兩條語(yǔ)句即可以實(shí)現(xiàn)調(diào)用幫助文檔的功能。
第五章 系統(tǒng)測(cè)試
編寫(xiě)出的各功能模塊需要進(jìn)行測(cè)試,對(duì)于模塊化應(yīng)用程序,軟件開(kāi)發(fā)的最后一部分便是不斷的測(cè)試程序最終編譯成可執(zhí)行的.exe文件,該階段主要對(duì)系統(tǒng)的正確性及完整性等方面進(jìn)行測(cè)試。主要進(jìn)行:功能確認(rèn)測(cè)試、運(yùn)行測(cè)試、健壯性測(cè)試、安全性測(cè)試以及查錯(cuò)方面的測(cè)試等,系統(tǒng)測(cè)試的測(cè)試人員由測(cè)試組成員(或質(zhì)量保證人員)或測(cè)試組成員與用戶共同測(cè)試,在整個(gè)系統(tǒng)開(kāi)發(fā)完成,即將交付用戶使用前進(jìn)行。在這一階段,對(duì)整個(gè)系統(tǒng)進(jìn)行測(cè)試,系統(tǒng)測(cè)試結(jié)束后我們應(yīng)該打軟件打包,使其脫離VB的環(huán)境下也能正常運(yùn)行。打包應(yīng)將所有程序需要的文件加載進(jìn)去,如數(shù)據(jù)庫(kù)(DB.MDB),每日一記和幫助的文件都要進(jìn)行加載。在調(diào)試程序過(guò)程中,由于某些內(nèi)在的錯(cuò)誤影響程序的運(yùn)行,在采用上述調(diào)試方法對(duì)程序進(jìn)行調(diào)試后,程序運(yùn)行情況良好,達(dá)到了預(yù)期的設(shè)計(jì)目標(biāo),基本上滿足了用戶的需要。
總結(jié)
到目前為止,學(xué)生公寓管理軟件基本開(kāi)發(fā)完畢,軟件界面美觀,運(yùn)行時(shí)間短,執(zhí)行功能強(qiáng),其功能基本符合用戶需求。能夠完成對(duì)學(xué)生公寓中學(xué)生基本資料的存儲(chǔ)和查詢(xún),并提供數(shù)據(jù)轉(zhuǎn)換、數(shù)據(jù)備份等系統(tǒng)維護(hù)功能,可以使用查找、修改、添加和刪除對(duì)學(xué)生公寓管理軟件的操作等。
由于本人知識(shí)有限,又是剛初學(xué)軟件,時(shí)間比較倉(cāng)促,又缺乏經(jīng)驗(yàn),必定有不足和不周之處,希望各位老師給予指導(dǎo),本人將繼續(xù)完善修改,使此系統(tǒng)能更好地發(fā)揮性能。
參考文獻(xiàn)
Visual Basic 程序設(shè)計(jì)
王棟
清華大學(xué)出版社 Visual Basic 高級(jí)編程宋偉
吳建國(guó)
清華大學(xué)出版社 Visual Basic 6.0 入門(mén)與提高 戴紅 陳哲 清華大學(xué)出版社 Visual Basic 6.0應(yīng)用指南
何斌 王運(yùn)堅(jiān)
馮峰 劉醒
人民郵電出版社
Visual Basic 高級(jí)編程技術(shù) 陳 明
楊勁松
北京希望電子出版社
Visual Basic實(shí)用教程
陳弘原
中國(guó)水利水電出版社
數(shù)據(jù)庫(kù)系統(tǒng)概論
薩師煊、王珊 高等教育出版社
軟件系統(tǒng)開(kāi)發(fā)技術(shù)
潘錦平施小姚 西安電子科技大學(xué)出版
<<
[11]
第二篇:學(xué)生公寓管理系統(tǒng)
1.需求分析
需求分析的任務(wù)是通過(guò)詳細(xì)調(diào)查現(xiàn)實(shí)世界要處理的對(duì)象(組織、部門(mén)、企業(yè)等),充分了解原系統(tǒng)(手工系統(tǒng)或計(jì)算機(jī)系統(tǒng))的工作概況,明確用戶的各種需求,然后在此基礎(chǔ)上確定新系統(tǒng)的功能。
學(xué)生公寓管理系統(tǒng)
學(xué)校有若干公寓,每棟5層,每層18個(gè)房間,每個(gè)房間4個(gè)學(xué)生,需要一個(gè)管理系統(tǒng)實(shí)現(xiàn)管理。
(1)寢室分配:根據(jù)系別、年紀(jì)、班級(jí)分配寢室,查詢(xún)寢室狀態(tài)和入住信息(2)學(xué)生管理:實(shí)現(xiàn)入住學(xué)生信息的維護(hù)和查詢(xún)功能(3)信息查詢(xún):按公寓樓號(hào)、學(xué)生姓名等查詢(xún)住宿信息(4)出入登記:實(shí)現(xiàn)對(duì)外來(lái)人員進(jìn)行登記功能
1.1 數(shù)據(jù)流圖(DFD)
數(shù)據(jù)流圖用于表達(dá)和描述系統(tǒng)的數(shù)據(jù)流向和對(duì)數(shù)據(jù)的處理功能。
畫(huà)數(shù)據(jù)流圖
學(xué)生入住信息學(xué)生入住入住信息信息登記住宿信息寢室信息學(xué)生學(xué)生信息公寓管理訪客信息訪客
圖1-1公寓管理系統(tǒng)1層數(shù)據(jù)流圖
公寓管理分配信息學(xué)生入住信息住宿信息訪客信息寢室分配管理學(xué)生管理寢室信息查詢(xún)管理分配信息學(xué)生入住信息住宿信息寢室分配信息學(xué)生入住信息住宿信息圖1-2公寓管理系統(tǒng)1層數(shù)據(jù)流圖
學(xué)生公寓管理入住信息入住信息入住信息匯入住查詢(xún)條件總報(bào)表學(xué)生入住入住信息查詢(xún)統(tǒng)計(jì)入住信息入住信息入住信息圖1-3學(xué)生管理2層數(shù)據(jù)流圖
訪客管理訪客信息訪客信息 訪客公寓管理訪客信息訪客信息統(tǒng)計(jì)登記訪客信息訪客信息統(tǒng)計(jì)訪客信息訪客信息 圖1-4訪客管理2層數(shù)據(jù)流圖
1.2 數(shù)據(jù)字典(DD)
數(shù)據(jù)字典是數(shù)據(jù)庫(kù)中各類(lèi)數(shù)據(jù)描述的集合,是進(jìn)行詳細(xì)的數(shù)據(jù)收集和數(shù)據(jù)分析所獲得的主要結(jié)果。數(shù)據(jù)文件:學(xué)生信息
信息組成:系別、年級(jí)、班級(jí)、姓名
數(shù) 據(jù) 項(xiàng):系別 數(shù)據(jù)類(lèi)型:字符型 數(shù)據(jù)長(zhǎng)度:2
數(shù) 據(jù) 項(xiàng):年級(jí) 數(shù)據(jù)類(lèi)型:字符型 數(shù)據(jù)長(zhǎng)度:2
數(shù)據(jù)組成:班級(jí) 數(shù)據(jù)類(lèi)型:字符型 數(shù)據(jù)長(zhǎng)度:2 數(shù) 據(jù) 項(xiàng):姓名 數(shù)據(jù)類(lèi)型:可變字符類(lèi)型 數(shù)據(jù)長(zhǎng)度:20
數(shù)據(jù)文件:信息查詢(xún)
信息組成:公寓樓號(hào)、學(xué)生姓名
數(shù)據(jù)組成:公寓樓號(hào) 數(shù)據(jù)類(lèi)型:整型 數(shù)據(jù)長(zhǎng)度:1
數(shù) 據(jù) 項(xiàng):學(xué)生姓名 數(shù)據(jù)類(lèi)型:可變字符類(lèi)型 數(shù)據(jù)長(zhǎng)度:20
數(shù)據(jù)文件:訪客信息
信息組成:訪客姓名、學(xué)生姓名、日期
數(shù) 據(jù) 項(xiàng):訪客姓名 數(shù)據(jù)類(lèi)型:可變字符類(lèi)型 數(shù)據(jù)長(zhǎng)度:20
數(shù) 據(jù) 項(xiàng):學(xué)生姓名 數(shù)據(jù)類(lèi)型:可變字符類(lèi)型 數(shù)據(jù)長(zhǎng)度:20
數(shù) 據(jù) 項(xiàng):日期 數(shù)據(jù)類(lèi)型:日期類(lèi)型 數(shù)據(jù)長(zhǎng)度:10
2.概念結(jié)構(gòu)設(shè)計(jì)
概念結(jié)構(gòu)設(shè)計(jì)階段的任務(wù)就是把這些實(shí)際需求抽象成計(jì)算機(jī)能夠識(shí)別的信息世界的結(jié)構(gòu),這種將需求分析階段得到的用戶需求抽象為信息結(jié)構(gòu)即概念模型的過(guò)程就是概念結(jié)構(gòu)設(shè)計(jì)。
E-R圖(在Powerdesigner中創(chuàng)建概念模型,粘貼圖)
圖2-1 E-R圖
3.邏輯結(jié)構(gòu)設(shè)計(jì)
關(guān)系模式((在Powerdesigner中由概念模型轉(zhuǎn)化為物理數(shù)據(jù)模型,粘圖))
圖3-1物理數(shù)據(jù)模型圖
4.建表SQL語(yǔ)句
由物理數(shù)據(jù)模型生成SQL Server 2008數(shù)據(jù)庫(kù)的建表語(yǔ)句。
/*================*/ /* DBMS name: Microsoft SQL Server 2008 */ /* Created on: 2013-12-6 22:36:42 */ /*================*/
if exists(select 1 from sysindexes where id = object_id('學(xué)生')and name = '入住_FK' and indid > 0 and indid < 255)drop index 學(xué)生.入住_FK go
if exists(select 1 from sysobjects where id = object_id('學(xué)生')and type = 'U')drop table 學(xué)生 go
if exists(select 1 from sysobjects where id = object_id('宿舍')and type = 'U')drop table 宿舍 go
if exists(select 1 from sysindexes where id = object_id('訪客')and name = '探訪_FK' and indid > 0 and indid < 255)drop index 訪客.探訪_FK go
if exists(select 1 from sysobjects where id = object_id('訪客')and type = 'U')drop table 訪客 go
/*================*/ /* Table: 學(xué)生 */ /*================*/ create table 學(xué)生(姓名 varchar(20)not null, 公寓樓號(hào) int null, 學(xué)生姓名 varchar(20)null, 系別 char(2)not null, 班級(jí) char(2)not null, 年級(jí) char(2)not null, constraint PK_學(xué)生 primary key nonclustered(姓名))go
/*================*/ /* Index: 入住_FK */ /*================*/ create index 入住_FK on 學(xué)生(公寓樓號(hào) ASC, 學(xué)生姓名 ASC)go
/*================*/ /* Table: 宿舍 */ /*================*/ create table 宿舍(學(xué)生姓名 varchar(20)not null, 公寓樓號(hào) int not null, constraint PK_宿舍 primary key nonclustered(公寓樓號(hào), 學(xué)生姓名))go
/*================*/ /* Table: 訪客 */ /*================*/ create table 訪客(訪客姓名 varchar(20)not null, 日期 datetime not null, 姓名 varchar(20)null, constraint PK_訪客 primary key nonclustered(訪客姓名, 日期))go
/*================*/ /* Index: 探訪_FK */ /*================*/ create index 探訪_FK on 訪客(姓名 ASC)go
第三篇:VB+Access設(shè)計(jì)圖書(shū)管理系統(tǒng)
VB+Access設(shè)計(jì)圖書(shū)管理系統(tǒng)一、需求分析
在進(jìn)行一個(gè)項(xiàng)目的設(shè)計(jì)之前,先要進(jìn)行必要的需求分析。
現(xiàn)某圖書(shū)館需要管理其各種人員和圖書(shū)信息,希望實(shí)現(xiàn)辦公的信息化,通過(guò)建立一個(gè)圖書(shū)管理系統(tǒng)來(lái)管理圖書(shū)。其完成的功能如下:
(1)可以實(shí)現(xiàn)圖書(shū)的登記、借閱和賠償?shù)墓芾怼?/p>
(2)可以實(shí)現(xiàn)對(duì)圖書(shū)的各種信息的查詢(xún),包括逐個(gè)瀏覽,以及對(duì)圖書(shū)信息的增加、刪除和編輯操作。另外,可以根據(jù)輸入的信息來(lái)檢索某個(gè)圖書(shū)的信息。
(3)可以實(shí)現(xiàn)對(duì)管理人員的投訴管理。
(4)可以實(shí)現(xiàn)對(duì)值班人員的管理。
系統(tǒng)的功能模塊圖如圖1所示。
本實(shí)例根據(jù)上面的設(shè)計(jì)規(guī)劃出的實(shí)體有圖書(shū)登記實(shí)體、圖書(shū)借閱實(shí)體、圖書(shū)賠償實(shí)體、查詢(xún)輸出實(shí)體、值班管理實(shí)體、投訴管理實(shí)體。各個(gè)實(shí)體具體的描述E-R圖如下。
圖書(shū)登記實(shí)體E-R圖如圖2所示。
圖書(shū)借閱實(shí)體E-R圖如圖3所示。
圖1 系統(tǒng)的功能模塊圖
圖2 圖書(shū)登記實(shí)體E-R圖
圖3 圖書(shū)借閱實(shí)體E-R圖
圖書(shū)賠償實(shí)體E-R圖如圖4所示。
圖4 圖書(shū)賠償實(shí)體E-R圖
投訴管理實(shí)體E-R圖如圖5所示。
圖5 投訴管理實(shí)體E-R圖
值班管理實(shí)體E-R圖如圖6所示。
圖6 值班管理實(shí)體E-R圖
查詢(xún)輸出實(shí)體E-R圖如圖7所示。
圖7 查詢(xún)輸出實(shí)體E-R圖
二、結(jié)構(gòu)設(shè)計(jì)
根據(jù)上面的需求分析,設(shè)計(jì)好數(shù)據(jù)庫(kù)系統(tǒng),然后開(kāi)發(fā)應(yīng)用程序可以考慮的窗體的系統(tǒng),每一個(gè)窗體實(shí)現(xiàn)不同的功能,可以設(shè)計(jì)下面的幾個(gè)模塊。
● 圖書(shū)管理模塊:用來(lái)實(shí)現(xiàn)圖書(shū)的登記、借閱、賠償。
● 圖書(shū)資料模塊:用來(lái)實(shí)現(xiàn)圖書(shū)的查詢(xún)輸出。
● 值班管理模塊:用來(lái)實(shí)現(xiàn)管理人員的值班瀏覽。
● 投訴管理模塊:用來(lái)實(shí)現(xiàn)對(duì)管理人員的投訴管理。
● 系統(tǒng)管理模塊:用來(lái)實(shí)現(xiàn)用戶的增加、刪除和修改等操作。
三、數(shù)據(jù)庫(kù)設(shè)計(jì)
這里的數(shù)據(jù)庫(kù)采用Access,用ADO作為連接數(shù)據(jù)對(duì)象。
1、建立Access 數(shù)據(jù)庫(kù)
啟動(dòng)Access,建立一個(gè)空的數(shù)據(jù)庫(kù)book.mdb,如圖8所示。
使用程序設(shè)計(jì)器建立系統(tǒng)需要的表格如下。
圖書(shū)登記表,如圖9所示。
圖8 建立數(shù)據(jù)庫(kù)book.mdb 圖9 圖書(shū)登記表
圖書(shū)借閱表,如圖10所示。圖書(shū)賠償表,如圖11所示。
圖10 圖書(shū)借閱表 圖11 圖書(shū)賠償表
圖書(shū)資料表,如圖12所示。系統(tǒng)管理表,如圖13所示。
圖12 圖書(shū)資料表 圖13 系統(tǒng)管理表
投訴管理表,如圖14所示。
圖14 投訴管理表
值班管理表,如圖15所示。
圖15 值班管理表
2、連接數(shù)據(jù)
在Visual Basic環(huán)境下,選擇“工程”→“引用”命令,在隨后出現(xiàn)的對(duì)話框中選擇“Microsoft ActiveX Data Objects 2.0 Library”,然后單擊“確定”按鈕,如圖16所示。
圖16 引用ADO連接數(shù)據(jù)庫(kù)
在程序設(shè)計(jì)的公共模塊中,先定義ADO連接對(duì)象。語(yǔ)句如下:
Public conn As New ADODB.Connection ' 標(biāo)記連接對(duì)象
然后在子程序中,用如下的語(yǔ)句即可打開(kāi)數(shù)據(jù)庫(kù):
Dim connectionstring As String
connectionstring = “provider=Microsoft.Jet.oledb.4.0;” &_
“data source=book.mdb”
conn.Open connectionstring
3、設(shè)置ODBC
VB的ADO對(duì)象是通過(guò)ODBC來(lái)訪問(wèn)數(shù)據(jù)庫(kù),所以還要建立ODBC數(shù)據(jù)引擎接口。
打開(kāi)控制面板中的“管理工具”→“數(shù)據(jù)源”(ODBC),出現(xiàn)如圖17所示的對(duì)話框。
圖17 ODBC對(duì)話框
單擊“添加”按鈕,出現(xiàn)“創(chuàng)建新數(shù)據(jù)源”對(duì)話框,如圖18所示。
圖18 “創(chuàng)建新數(shù)據(jù)源”對(duì)話框
選擇Microsoft Access Driver(*.mdb),單擊“完成”按鈕,出現(xiàn)如圖19所示對(duì)話框。
圖19 設(shè)置連接數(shù)據(jù)源
在“數(shù)據(jù)源名”文本框中添加一個(gè)名字,單擊“確定”按鈕完成系統(tǒng)默認(rèn)連接設(shè)置。然后在ODBC對(duì)話框中單擊“確定”按鈕完成ODBC設(shè)置。
界面設(shè)計(jì)
設(shè)計(jì)好的界面如圖20所示。
圖20 圖書(shū)管理系統(tǒng)界面
這是一個(gè)多文檔界面(MDI)應(yīng)用程序,可以同時(shí)顯示多個(gè)文檔,每個(gè)文檔顯示在各自的窗體中。MDI 應(yīng)用程序中常有包含子菜單的“窗體”選項(xiàng),用于在窗體或文檔之間進(jìn)行切換。
菜單應(yīng)用程序中,有5個(gè)菜單選項(xiàng),每個(gè)選項(xiàng)對(duì)應(yīng)著E-R圖的一個(gè)子項(xiàng)目。
1、創(chuàng)建主窗體
首先創(chuàng)建一個(gè)工程,命名為圖書(shū)管理系統(tǒng),選擇“工程”→“添加MDI窗體”命令,則在項(xiàng)目中添加了主窗體。該窗體的一些屬性如表1所示。
表1 主窗體的屬性
屬
Caption Name Menu Windowstate
性值
圖書(shū)管理系統(tǒng) Main Mainmenu1 Maxsize
Windowstate的值為Maxsize,即程序啟動(dòng)之后自動(dòng)最大化。
將“菜單”組件從“工具箱”拖到窗體上。創(chuàng)建一個(gè) Text 屬性設(shè)置為“文件”的頂級(jí)菜單項(xiàng),且?guī)в忻麨椤瓣P(guān)閉”的子菜單項(xiàng)。類(lèi)似地創(chuàng)建一些菜單項(xiàng),如表2所示。
表2 菜 單 項(xiàng) 表
菜 單 名 稱(chēng) MenuItem1 MenuItem2 MenuItem3 MenuItem4 MenuItem5 MenuItem6 MenuItem7 MenuItem8 MenuItem9 MenuItem10 MenuItem11 MenuItem12
Text屬性 圖書(shū)管理 圖書(shū)登記 圖書(shū)借閱 圖書(shū)賠償 圖書(shū)資料 查詢(xún)輸出 值班管理 投訴管理 系統(tǒng)管理 增加用戶 修改密碼 退出
功 能 描 述
頂級(jí)菜單,包含子菜單 調(diào)出圖書(shū)登記窗體 調(diào)出圖書(shū)借閱窗體 調(diào)出圖書(shū)賠償窗體 頂級(jí)菜單,包含子菜單 調(diào)出查詢(xún)輸出窗體 頂級(jí)菜單,沒(méi)有子菜單 頂級(jí)菜單,沒(méi)有子菜單 頂級(jí)菜單,包含子菜單 調(diào)出用戶窗體 調(diào)出密碼窗體 系統(tǒng)退出
主窗體如圖21所示。
圖21 主窗體
2、創(chuàng)建各子窗體
選擇“工程”→“添加窗體”命令,添加子窗體。
在新建Visual Basic工程時(shí)自帶的窗體中,將其屬性MIDChild改成True,則這個(gè)窗體成為MID窗體的子窗體。
在這個(gè)項(xiàng)目中,要?jiǎng)?chuàng)建的子窗體如表3所示。
表3 所有子窗體
子 窗 體 名 圖書(shū)登記 圖書(shū)借閱 圖書(shū)賠償 增加新用戶 查詢(xún)輸出 登錄系統(tǒng) 修改密碼
Text frmdengji frmjieyue frmpeichang frmadduser frmfind frmlogin frmchangepwd
下面分別給出這些子窗體,以及它們所使用的控件。
(1)圖書(shū)登記子窗體如圖22所示,其控件如表4所示。
圖22 圖書(shū)登記子窗體
表4 圖書(shū)登記子窗體控件
控 件 類(lèi) 別
控件Name Label1 Label2 Label
Label3 Label4 Label5 Text1 Text2 TextBox
Text3 Text4 Text5 Command1 Command2 Command3 CommandButton
Command4 Command5 Command6 Command7 ADO DataGrid
DataAdodc1 DataGrid1
控件Text 編號(hào) 書(shū)名 類(lèi)型 購(gòu)買(mǎi)日期 定價(jià)(空)(空)(空)(空)(空)增加記錄 刪除記錄 下一條 上一條 第一條 最后一條 退出(空)(空)
圖書(shū)借閱和圖書(shū)賠償子窗體分別如圖23和圖24所示,因?yàn)樗鼈兊目丶c圖書(shū)登記子窗體的雷同,在此不作介紹。
圖23 圖書(shū)借閱子窗體
圖24 圖書(shū)賠償子窗體
(2)增加用戶子窗體如圖25所示,其控件如表5所示。
圖25 增加用戶子窗體
表5 增加用戶子窗體控件
控 件 類(lèi) 別
控件Name 控件Text
Label1 Label
Label2 Label3 Label4 Text1 TextBox ComboBox CommandButton
Text2 Text3 Comb1 Commandl Command2
輸入用戶名 輸入密碼 確認(rèn)密碼 選擇權(quán)限(空)(空)(空)(空)確定 取消
(3)修改密碼子窗體如圖26所示。
圖26 修改密碼子窗體
(4)庫(kù)房管理子窗體如圖27所示。
圖27 庫(kù)房管理子窗體
其控件如表6所示。
表6 庫(kù)房管理子窗體控件
控 件 類(lèi) 別 TextBox ComboBox MSFlexGrid
控件Name Text1 Combo1 MSFlexGrid1
控件Text(空)
(5)查詢(xún)子窗體如圖28所示,其控件如表7所示。
圖28 查詢(xún)子窗體
表7 查詢(xún)子窗體控件
控 件 類(lèi) 別 OptionButton
控件Name Option1 Option2 Label1 Label2 Label3 Label4 Label5 Label6 Label7 Label8 Label9 Label10
控件Text 按編號(hào)查詢(xún) 按購(gòu)買(mǎi)日期查詢(xún) 從 到 從 年 月 日 到 年 月 日(空)(空)(空)(空)(空)(空)(空)(空)查詢(xún) 取消 Label Combo(0)ComboBox Combo(1)ComboBox Comboy(0)ComboBox Comboy(1)ComboBox Combom(0)ComboBox Combom(1)ComboBox Combod(0)ComboBox Combod(1)ComboBox CommandButton
Combo1 Combo1 Comboy Comboy Combom Combom Combod Combod Command1 Command2
(6)用戶登錄子窗體如圖29所示。
(7)值班管理子窗體如圖30所示,其控件如表8所示。
圖29 用戶登錄子窗體 圖30 值班管理子窗體
(8)投訴管理子窗體如圖31所示,其控件如表9所示。
圖31 投訴管理子窗體
建立公共模塊
1、顯示目錄
建立公共模塊可以提高代碼的效率,同時(shí)使得修改和維護(hù)代碼都很方便。
創(chuàng)建公共模塊的步驟如下:
(1)在菜單中選擇“工程”→“添加模塊”命令,則出現(xiàn)模塊對(duì)話框,如圖32所示。
(2)選擇模塊圖標(biāo)后,單擊“打開(kāi)”按鈕,則模塊已經(jīng)添加到項(xiàng)目中了。默認(rèn)情況下名為Module1。
圖32 模塊對(duì)話框
(3)在模塊中定義整個(gè)項(xiàng)目的公共變量。
Public conn As New ADODB.Connection ' 標(biāo)記連接對(duì)象
Public userID As String ' 標(biāo)記當(dāng)前用戶ID
Public userpow As String ' 標(biāo)記用戶權(quán)限
Public find As Boolean ' 標(biāo)記查詢(xún)
Public sqlfind As String ' 查詢(xún)語(yǔ)句
Public rs_data1 As New ADODB.Recordset
Public findok As Boolean
Public frmdata As Boolean
Public Const keyenter = 13 ' enter鍵的ASCII碼
在主窗體添加完菜單之后,就要為各個(gè)子菜單創(chuàng)建事件處理程序。主窗體代碼
在本項(xiàng)目中,子菜單事件都是Click事件,這里先給出主窗體部分的代碼。
下面是響應(yīng)“增加用戶”子菜單Click事件,調(diào)出增加用戶窗體代碼。
Private Sub adduser_Click()
frmadduser.Show
End Sub
下面是響應(yīng)“查詢(xún)輸出”子菜單Click事件,調(diào)出查詢(xún)輸出窗體代碼。
Private Sub chaxunshuchu_Click()
frmfind.Show
End Sub
下面是響應(yīng)“退出”子菜單Click事件,調(diào)出退出窗體代碼。
Private Sub exit_Click()
Unload Me
End Sub 下面是響應(yīng)“圖書(shū)登記”子菜單Click事件,調(diào)出圖書(shū)登記窗體代碼。
Private Sub checkin_Click()
frmdengji.Show
End Sub
下面是響應(yīng)“修改密碼”子菜單Click事件,調(diào)出修改密碼窗體代碼。
Private Sub changepwd_Click()
frmchangepwd.Show
End Sub
下面是響應(yīng)“圖書(shū)借閱”子菜單Click事件,調(diào)出圖書(shū)借閱窗體代碼。
Private Sub borrow_Click()
frmjieyue.Show
End Sub
下面是響應(yīng)“圖書(shū)賠償”子菜單Click事件,調(diào)出圖書(shū)賠償窗體代碼。
Private Sub tushupeichang_Click()
frmpeichang.Show 1
End Sub
下面是響應(yīng)“值班管理”菜單Click事件,調(diào)出值班管理窗體代碼。
Private Sub zhibanguanli_Click()
frmzhiban.Show 1
End Sub
下面是響應(yīng)“投訴管理”子菜單Click事件,調(diào)出投訴管理窗體代碼。
Private Sub tousuguanli_Click()
frmtousu.Show 1
End Sub
2、各子窗體的代碼
在各個(gè)子窗體建立好后,就可以根據(jù)各個(gè)子窗體的功能給它們添加相應(yīng)代碼了。
(1)圖書(shū)登記子窗體代碼
本窗體用來(lái)填寫(xiě)圖書(shū)登記的信息,用ADO來(lái)連接數(shù)據(jù)庫(kù),是本窗體的重點(diǎn)。采用MDI的子程序,所以運(yùn)行后,它出現(xiàn)在主程序的界面下,如圖33所示。
圖33 圖書(shū)登記子窗體
按鈕控件要求先填寫(xiě)基本信息,然后與數(shù)據(jù)庫(kù)信息比較。Private Sub Command1_Click()On Error GoTo adderr Text1.SetFocus Adodc1.Recordset.AddNew Exit Sub adderr: MsgBox Err.Description End Sub Private Sub Command2_Click()On Error GoTo deleteerr With Adodc1.Recordset If Not.EOF And Not.BOF Then If MsgBox(“刪除當(dāng)前記錄嗎?”, vbYesNo + vbQuestion)= vbYes Then.Delete.MoveNext If.EOF Then.MoveLast End If End If End With Exit Sub deleteerr: MsgBox Err.Description End Sub Private Sub Command3_Click()Adodc1.Recordset.MoveNext If Adodc1.Recordset.EOF Then MsgBox “這是最后一條記錄”, vbOKCancel + vbQuestion Adodc1.Recordset.MoveLast End If
End Sub
Private Sub Command4_Click()
Adodc1.Recordset.MovePrevious
If Adodc1.Recordset.BOF Then
MsgBox “這是第一條記錄”, vbOKCancel + vbQuestion
Adodc1.Recordset.MoveFirst
End If
End Sub
Private Sub Command5_Click()
If Adodc1.Recordset.EOF Then
MsgBox “記錄空”, vbOKCancel + vbQuestion
End
Else
Adodc1.Recordset.MoveFirst
Exit Sub
End Sub
Private Sub Command6_Click()
If Adodc1.Recordset.RecordCount = 0 Then
MsgBox “空記錄”, vbOKCancel + vbQuestion
End
Else
Adodc1.Recordset.MoveLast
End If
End Sub
Private Sub Command7_Click()
MDIForm1.Show
frmdengji.Hide
End Sub 圖書(shū)借閱和圖書(shū)賠償子窗體運(yùn)行后如圖34和圖35所示,因?yàn)樗鼈兊拇a和圖書(shū)登記子窗體的代碼雷同,在此不做重復(fù)。
圖34 圖書(shū)借閱子窗體運(yùn)行效果
示。
圖35 圖書(shū)賠償子窗體運(yùn)行效果
(2)增加用戶子窗體代碼
增加用戶子窗體是用來(lái)增加用戶的用戶名、密碼和權(quán)限的。其運(yùn)行效果如圖36所 單擊“確定”按鈕后,還要返回一個(gè)信息框,提示成功信息,如圖37所示。
圖36 增加用戶子窗體運(yùn)行效果 圖37 成功信息框
窗體部分代碼的思路是,收集輸入的表中的字符串,然后與數(shù)據(jù)庫(kù)中的系統(tǒng)的用戶數(shù)據(jù)比較,如果不存在,則允許添加。
Private Sub Command1_Click()
Dim sql As String
Dim rs_add As New ADODB.Recordset
If Trim(Text1.Text)= “" Then
MsgBox ”用戶名不能為空“, vbOKOnly + vbExclamation, ”“
Exit Sub
Text1.SetFocus
Else
sql = ”select * from 系統(tǒng)管理“
rs_add.Open sql, conn, adOpenKeyset, adLockPessimistic
While(rs_add.EOF = False)
If Trim(rs_add.Fields(0))= Trim(Text1.Text)Then
MsgBox ”已有這個(gè)用戶“, vbOKOnly + vbExclamation, ”“
Text1.SetFocus
Text1.Text = ”“
Text2.Text = ”“
Text3.Text = ”“
Combo1.Text = ”“
Exit Sub
Else
rs_add.MoveNext
End If
Wend
If Trim(Text2.Text)<> Trim(Text3.Text)Then
MsgBox ”兩次密碼不一致“, vbOKOnly + vbExclamation, ”“
Text2.SetFocus
Text2.Text = ”“
Text3.Text = ”“
Exit Sub
ElseIf Trim(Combo1.Text)<> ”system“ And Trim(Combo1.Text)<> ”guest“ Then
MsgBox ”請(qǐng)選擇正確的用戶權(quán)限“, vbOKOnly + vbExclamation, ”“
Combo1.SetFocus
Combo1.Text = ”“
Exit Sub
Else
rs_add.AddNew
rs_add.Fields(0)= Text1.Text
rs_add.Fields(1)= Text2.Text
rs_add.Fields(2)= Combo1.Text
rs_add.Update
rs_add.Close 下面是返回成功信息對(duì)話框的代碼:
MsgBox ”添加用戶成功“, vbOKOnly + vbExclamation, ”“
Unload Me
End If
End If
End Sub
(3)修改密碼子窗體代碼
修改密碼子窗體是用來(lái)修改用戶密碼的。其運(yùn)行效果如圖38所示。
圖38 修改密碼子窗體運(yùn)行效果
在“確定”按鈕的Click事件中添加如下代碼: Private Sub Command1_Click()Dim rs_chang As New ADODB.Recordset
Dim sql As String If Trim(Text1.Text)<> Trim(Text2.Text)Then MsgBox ”密碼不一致!“, vbOKOnly + vbExclamation, ”“ Text1.SetFocus Text1.Text = ”“ Text2.Text = ”“ Else sql = ”select * from 系統(tǒng)管理 where 用戶名='“ & userID & ”'“ rs_chang.Open sql, conn, adOpenKeyset, adLockPessimistic rs_chang.Fields(1)= Text1.Text rs_chang.Update rs_chang.Close MsgBox ”密碼修改成功“, vbOKOnly + vbExclamation, ”“ Unload Me End If End Sub
在上述代碼中,首先比較兩個(gè)表中的數(shù)據(jù)是否一致,然后用rs_chang.Fields(1)= Text1.Text語(yǔ)句把代碼輸入到數(shù)據(jù)庫(kù)中。最后,用MsgBox ”密碼修改成功“, vbOKOnly + vbExclamation,”“語(yǔ)句彈出一個(gè)信息框,告訴修改成功,如圖39所示。
顯示目錄
(4)庫(kù)房管理子窗體代碼
庫(kù)房管理子窗體是用來(lái)管理圖書(shū)資料的。其運(yùn)行效果如圖40所示。
圖40 庫(kù)房管理子窗體
實(shí)際上,設(shè)計(jì)庫(kù)房管理子窗體的程序代碼與增加用戶子窗體的代碼在思路上是完全相同的。就是在DataGrid的文本框中顯示圖書(shū)進(jìn)出的清單,最后把填寫(xiě)的明細(xì)存儲(chǔ)到數(shù)據(jù)庫(kù)中。
檢查代碼如下:
Option Explicit
Else
Dim rs_data2 As New ADODB.Recordset Dim select_row As String Dim showgrid2 As Boolean Dim rs_custom As New ADODB.Recordset Dim jinchu As String ' 進(jìn)出庫(kù)標(biāo)志
Dim modify As Boolean ' 修改狀態(tài)標(biāo)志 Private Sub cmdexit_Click()Unload Me End Sub Private Sub Form_Load()On Error GoTo loaderror Dim sql As String sql = ”select * from 圖書(shū)資料“ rs_custom.CursorLocation = adUseClient rs_custom.Open sql, conn, adOpenKeyset, adLockPessimistic While Not rs_custom.EOF Combo1.AddItem rs_custom.Fields(0)rs_custom.MoveNext Wend findok = True modify = False ' 非修改狀態(tài) showgrid2 = False displaygrid1 ' 調(diào)用顯示Datagrid1子程序 loaderror: If Err.Number <> 0 Then MsgBox Err.Description End If End Sub '顯示msflexgrid1子程序 Public Sub displaygrid1()Dim i As Integer On Error GoTo displayerror setgrid setgridhead MSFlexGrid1.Row = 0 If Not rs_data1.EOF Then rs_data1.MoveFirst Do While Not rs_data1.EOF MSFlexGrid1.Row = MSFlexGrid1.Row + 1 MSFlexGrid1.Col = 0 If Not IsNull(rs_data1.Fields(0))Then MSFlexGrid1.Text = rs_data1.Fields(0)MSFlexGrid1.Text = ”“ MSFlexGrid1.Col = 1 Else
Else
Else
Else
Else
If Not IsNull(rs_data1.Fields(1))Then MSFlexGrid1.Text = rs_data1.Fields(1)MSFlexGrid1.Text = ”“ MSFlexGrid1.Col = 2 If Not IsNull(rs_data1.Fields(2))Then MSFlexGrid1.Text = rs_data1.Fields(2)MSFlexGrid1.Text = ”“ MSFlexGrid1.Col = 3 If Not IsNull(rs_data1.Fields(3))Then MSFlexGrid1.Text = rs_data1.Fields(3)MSFlexGrid1.Text = ”“ MSFlexGrid1.Col = 4 If Not IsNull(rs_data1.Fields(4))Then MSFlexGrid1.Text = rs_data1.Fields(4)MSFlexGrid1.Text = ”“ MSFlexGrid1.Col = 5 If Not IsNull(rs_data1.Fields(5))Then MSFlexGrid1.Text = rs_data1.Fields(5)
MSFlexGrid1.Text = ”“ rs_data1.MoveNext Loop End If displayerror: If Err.Number <> 0 Then MsgBox Err.Description End If End Sub Public Sub setgrid()Dim i As Integer On Error GoTo seterror With MSFlexGrid1.ScrollBars = flexScrollBarBoth.FixedCols = 0.Rows = rs_data1.RecordCount + 1.Cols = 6.SelectionMode = flexSelectionByRow For i = 0 To.Rows1.ColWidth(i)= 1300 Next i End With Exit Sub
seterror: MsgBox Err.Description End Sub Public Sub setgridhead()On Error GoTo setheaderror MSFlexGrid1.Row = 0 MSFlexGrid1.Col = 0 MSFlexGrid1.Text = ”編號(hào)“ MSFlexGrid1.Col = 1 MSFlexGrid1.Text = ”購(gòu)買(mǎi)日期“ MSFlexGrid1.Col = 2 MSFlexGrid1.Text = ”書(shū)名“ MSFlexGrid1.Col = 3 MSFlexGrid1.Text = ”類(lèi)型“ MSFlexGrid1.Col = 4 MSFlexGrid1.Text = ”定價(jià)“ MSFlexGrid1.Col = 5 MSFlexGrid1.Text = ”備注“ Exit Sub setheaderror: MsgBox Err.Description End Sub Private Sub Form_Unload(Cancel As Integer)findok = False rs_data1.Close rs_custom.Close End Sub Private Sub MSFlexGrid1_Click()On Error GoTo griderror Dim getrow As Long getrow = MSFlexGrid1.Row If MSFlexGrid1.Rows = 1 Then MsgBox ”無(wú)相關(guān)記錄“, vbOKOnly + vbExclamation, ”“ Else select_row = MSFlexGrid1.TextMatrix(getrow, 0)End If griderror: If Err.Number <> 0 Then MsgBox Err.Description End If End Sub Public Sub showdata()With MSFlexGrid2.Rows = rs_data2.RecordCount + 1
.Row = 0
If Not rs_data2.EOF Then
rs_data2.MoveFirst
Do While Not rs_data2.EOF
.Row =.Row + 1
.Col = 0
If Not IsNull(rs_data2.Fields(0))Then.Text = rs_data2.Fields(0)Else.Text = ”“
.Col = 1
If Not IsNull(rs_data2.Fields(1))Then.Text = rs_data2.Fields(1)Else.Text = ”“
.Col = 2
If Not IsNull(rs_data2.Fields(2))Then.Text = rs_data2.Fields(2)Else.Text = ”“
.Col = 3
If Not IsNull(rs_data2.Fields(3))Then.Text = rs_data2.Fields(3)Else.Text = ”“
.Col = 4
If Not IsNull(rs_data2.Fields(4))And CDbl(rs_data2.Fields(4))< 0 Then
.Text =-CDbl(rs_data2.Fields(4))
Else
.Text = rs_data2.Fields(4)
End If
.Col = 5
If Not IsNull(rs_data2.Fields(5))Then.Text = rs_data2.Fields(5)Else.Text = ”“
.Col = 6
If Not IsNull(rs_data2.Fields(6))Then.Text = rs_data2.Fields(6)Else.Text = ”“
.Col = 7
If Not IsNull(rs_data2.Fields(7))And CDbl(rs_data2.Fields(4))< 0 Then
.Text =-CDbl(rs_data2.Fields(7))
Else
.Text = rs_data2.Fields(7)
End If
.Col = 8
If Not IsNull(rs_data2.Fields(8))Then.Text = rs_data2.Fields(8)Else.Text = ”“
rs_data2.MoveNext
Loop
rs_data2.MoveLast
End If
End With
End Sub(5)查詢(xún)子窗體代碼
查詢(xún)子窗體是用來(lái)查詢(xún)庫(kù)房中圖書(shū)資料明細(xì)的。其運(yùn)行效果如圖41所示。
圖41 查詢(xún)子窗體運(yùn)行效果
在列表框中給出編號(hào)或年月日后,“查詢(xún)”按鈕的Click事件將給出與數(shù)據(jù)庫(kù)查找比較的結(jié)果。
Private Sub Command1_Click()
On Error GoTo cmderror
Dim find_date1 As String
Dim find_date2 As String
If Option1.Value = True Then
sqlfind = ”select * from 圖書(shū)資料 where 編號(hào) between '“ & _
Combo1(0).Text & ”'“ & ” and “ & ”'“ & Combo1(1).Text & ”'“
End If
If Option2.Value = True Then
find_date1 = Format(CDate(Comboy(0).Text & ”-“ & _
Combom(0).Text & ”-“ & Combod(0).Text), ”yyyy-mm-dd“)
find_date2 = Format(CDate(Comboy(1).Text & ”-“ & _
Combom(1).Text & ”-“ & Combod(1).Text), ”yyyy-mm-dd“)
sqlfind = ”select * from 圖書(shū)資料 where 購(gòu)買(mǎi)日期 between #“ & _
find_date1 & ”#“ & ” and“ & ” #“ & find_date2 & ”#“
End If
rs_data1.Open sqlfind, conn, adOpenKeyset, adLockPessimistic
frmdatamanage.displaygrid1
Unload Me
cmderror:
If Err.Number <> 0 Then
MsgBox Err.Description
End If
End Sub
運(yùn)行查詢(xún)子窗體時(shí),組合框中就已經(jīng)從數(shù)據(jù)庫(kù)中提取了貨單號(hào)和年月日兩個(gè)待查條件。
Dim i As Integer
Dim sql As String
If findok = True Then
rs_data1.Close
End If
sql = ”select * from 圖書(shū)資料 order by 編號(hào) desc“
rs_find.CursorLocation = adUseClient
rs_find.Open sql, conn, adOpenKeyset, adLockPessimistic If rs_find.EOF = False Then ' 添加編號(hào) With rs_find Do While Not.EOF Combo1(0).AddItem.Fields(0)Combo1(1).AddItem.Fields(0).MoveNext Loop End With End If For i = 2001 To 2005 ' 添加年 Comboy(0).AddItem i Comboy(1).AddItem i Next i For i = 1 To 12 ' 添加月 Combom(0).AddItem i Combom(1).AddItem i Next i For i = 1 To 31 ' 添加日 Combod(0).AddItem i Combod(1).AddItem i Next i End Sub 查詢(xún)完畢后,輸出查詢(xún)結(jié)果,如圖42所示。
圖42 查詢(xún)結(jié)果 顯示目錄
(6)用戶登錄子窗體代碼
運(yùn)行的用戶登錄子窗體如圖43所示。
圖43 運(yùn)行的用戶登錄子窗體
在本項(xiàng)目中,用戶登錄子窗體是運(yùn)行的第一個(gè)界面,它的作用是檢查用戶名和密碼是否正確。由于用戶的資料是存放在數(shù)據(jù)庫(kù)中,所以在啟動(dòng)該子窗體時(shí),就已經(jīng)連接了數(shù)據(jù)庫(kù)。其代碼如下:
Private Sub Form_Load()
Dim connectionstring As String
connectionstring = ”provider=Microsoft.Jet.oledb.4.0;“ & _
”data source=book.mdb“
conn.Open connectionstring
cnt = 0
End Sub
“確定”按鈕的作用是檢查輸入的數(shù)據(jù)是否與數(shù)據(jù)庫(kù)中的數(shù)據(jù)一致。
Private Sub Command1_Click()
Dim sql As String
Dim rs_login As New ADODB.Recordset
If Trim(txtuser.Text)= ”“ Then ' 判斷輸入的用戶名是否為空
MsgBox ”沒(méi)有這個(gè)用戶“, vbOKOnly + vbExclamation, ”“
txtuser.SetFocus
Else
sql = ”select * from 系統(tǒng)管理 where 用戶名='“ & txtuser.Text & ”'“
rs_login.Open sql, conn, adOpenKeyset, adLockPessimistic
If rs_login.EOF = True Then
MsgBox ”沒(méi)有這個(gè)用戶“, vbOKOnly + vbExclamation, ”“
txtuser.SetFocus
Else ' 檢驗(yàn)密碼是否正確
用戶名和密碼通過(guò)后,要關(guān)閉本窗體并打開(kāi)主窗體。
If Trim(rs_login.Fields(1))= Trim(txtpwd.Text)Then
userID = txtuser.Text
userpow = rs_login.Fields(2)
rs_login.Close
Unload Me
MDIForm1.Show
Else
MsgBox ”密碼不正確“, vbOKOnly + vbExclamation, ”“
txtpwd.SetFocus
End If
End If
End If
' 只能輸入3次
cnt = cnt + 1
If cnt = 3 Then
Unload Me
End If
Exit Sub
End Sub(7)值班管理子窗體代碼
值班管理子窗體的作用是把值班人員的時(shí)間安排形成列表。運(yùn)行的值班管理子窗體如圖44所示。
圖44 運(yùn)行的值班管理子窗體
先定義連接數(shù)據(jù)庫(kù)的變量:
Option Explicit
Dim rs_zhiban As New ADODB.Recordset
然后列出窗體部分的代碼。
Private Sub cmdadd_Click()
On Error GoTo adderror
If cmdadd.Caption = ”新增記錄“ Then ' 當(dāng)此按鈕的狀態(tài)為為“增加記錄”時(shí)
cmdadd.Caption = ”確定“ ' 按鈕名稱(chēng)改“確定”
cmddel.Enabled = False
DataGrid1.AllowAddNew = True
DataGrid1.AllowUpdate = True ' 設(shè)定DataGrid可以增加記錄
Else
If Not IsNull(DataGrid1.Bookmark)Then
If Not IsDate(Trim(DataGrid1.Columns(”值班開(kāi)始日期“).CellText(DataGrid1.Bookmark)))Then
MsgBox ”請(qǐng)按照格式y(tǒng)yyy-mm-dd輸入值班開(kāi)始日期“, vbOKOnly + vbExclamation, ”“
Exit Sub
End If
If Not IsDate(Trim(DataGrid1.Columns(”值班開(kāi)始時(shí)間“).CellText(DataGrid1.Bookmark)))Then
MsgBox ”請(qǐng)按照格式hh-mm輸入值班開(kāi)始時(shí)間“, vbOKOnly + vbExclamation, ”“
Exit Sub
End If
If Not IsDate(Trim(DataGrid1.Columns(”值班截止日期“).CellText(DataGrid1.Bookmark)))Then
MsgBox ”請(qǐng)按照格式y(tǒng)yyy-mm-dd輸入值班截止日期“, vbOKOnly + vbExclamation, ”“
Exit Sub
End If
If Not IsDate(Trim(DataGrid1.Columns(”值班截止時(shí)間“).CellText(DataGrid1.Bookmark)))Then
MsgBox ”請(qǐng)按照格式hh-mm輸入值班截止時(shí)間“, vbOKOnly + vbExclamation, ”“
Exit Sub
End If
If Trim(DataGrid1.Columns(”值班人“).CellText(DataGrid1.Bookmark))= ”“ Then
MsgBox ”值班人不能為空!“, vbOKOnly + vbExclamation, ”“
Exit Sub
End If
rs_zhiban.Update MsgBox ”添加信息成功!“, vbOKOnly + vbExclamation, ”“
DataGrid1.AllowAddNew = False
DataGrid1.AllowUpdate = False
Else
MsgBox ”沒(méi)有添加信息!“, vbOKOnly + vbExclamation, ”“
End If
cmdadd.Caption = ”新增記錄“
cmddel.Enabled = True
End If
adderror:
If Err.Number <> 0 Then
MsgBox Err.Description
End If
End Sub
Private Sub cmdcancel_Click()
Unload Me
MDIForm1.Show
End Sub
Private Sub cmddel_Click()
Dim answer As String
On Error GoTo delerror
answer = MsgBox(”確定要?jiǎng)h除嗎?“, vbYesNo, ”“)
If answer = vbYes Then
DataGrid1.AllowDelete = True
rs_zhiban.Delete
rs_zhiban.Update
DataGrid1.Refresh
MsgBox ”成功刪除!“, vbOKOnly + vbExclamation, ”“
DataGrid1.AllowDelete = False
Else
Exit Sub
End If
delerror:
If Err.Number <> 0 Then
MsgBox Err.Description
End If
End Sub
Private Sub Form_Load()
Dim sql As String
On Error GoTo loaderror
sql = ”select * from 值班管理“
rs_zhiban.CursorLocation = adUseClient
rs_zhiban.Open sql, conn, adOpenKeyset, adLockPessimistic ' 打開(kāi)數(shù)據(jù)庫(kù)
' 設(shè)定DataGrid控件屬性
DataGrid1.AllowAddNew = False ' 不可增加
DataGrid1.AllowDelete = False ' 不可刪除
DataGrid1.AllowUpdate = False
Set DataGrid1.DataSource = rs_zhiban
Exit Sub
loaderror:
MsgBox Err.Description
End Sub
Private Sub Form_Unload(Cancel As Integer)
Set DataGrid1.DataSource = Nothing
rs_zhiban.Close
End Sub
(8)投訴管理子窗體代碼
投訴管理子窗體是為了對(duì)人員進(jìn)行更好的管理而設(shè)置的,可以向其添加投訴的對(duì)象、時(shí)間和內(nèi)容等。投訴管理運(yùn)行后的子窗體如圖45所示。
圖45 運(yùn)行的投訴管理子窗體
以下為窗體的代碼:
Private Sub Command1_Click()
On Error GoTo adderr
Text1.SetFocus
Adodc1.Recordset.AddNew
Exit Sub
adderr:
MsgBox Err.Description
End Sub
Private Sub Command2_Click()
On Error GoTo deleteerr
With Adodc1.Recordset
If Not.EOF And Not.BOF Then
If MsgBox(”刪除當(dāng)前記錄嗎?“, vbYesNo + vbQuestion)= vbYes Then
.Delete
.MoveNext
If.EOF Then.MoveLast
End If
End If
End With
Exit Sub
deleteerr:
MsgBox Err.Description
End Sub
Private Sub Command3_Click()
Adodc1.Recordset.MovePrevious
If Adodc1.Recordset.BOF Then
MsgBox ”這是第一條記錄“, vbOKCancel + vbQuestion
Adodc1.Recordset.MoveFirst
End If End Sub Private Sub Command4_Click()Adodc1.Recordset.MoveNext If Adodc1.Recordset.EOF Then MsgBox ”這是最后一條記錄“, vbOKCancel + vbQuestion Adodc1.Recordset.MoveLast End If End Sub Private Sub Command5_Click()If Adodc1.Recordset.EOF Then MsgBox ”記錄空“, vbOKCancel + vbQuestion End Else Adodc1.Recordset.MoveFirst End If Exit Sub End Sub Private Sub Command6_Click()If Adodc1.Recordset.RecordCount = 0 Then MsgBox ”空記錄", vbOKCancel + vbQuestion End Else Adodc1.Recordset.MoveLast End If End Sub Private Sub Command7_Click()MDIForm1.Show frmtousu.Hide End Sub 到這里,各個(gè)窗體的界面和代碼都介紹完了。發(fā)布后可以作為一個(gè)實(shí)際的項(xiàng)目應(yīng)用。
第四篇:學(xué)生公寓管理系統(tǒng)-招標(biāo)書(shū)
1.5 學(xué)生公寓管理系統(tǒng)
采用頂層設(shè)計(jì)、分級(jí)管理的設(shè)計(jì)思路,將宿舍資源管理、學(xué)生入住管理、宿舍日常管理、學(xué)生退宿管理、宿舍檢查管理、校外人員入住宿舍管理等模塊集成,實(shí)現(xiàn)學(xué)生宿舍管理的數(shù)據(jù)信息化、流程信息化、決策信息化,最終達(dá)到數(shù)據(jù)共享、管理自動(dòng)化、管理智能化的目的。
目前我校宿舍管理方式如下:
? 迎新階段:
①.本科生:后勤分配新生房源給各學(xué)院,各學(xué)院在新生到校前安排新生到具體房間和床位,學(xué)生登錄迎新系統(tǒng)進(jìn)行查詢(xún)。
②.碩士、博士生:新生到校報(bào)到時(shí)可人工分配床位,也可床位自選。? 在校階段:
在校生調(diào)宿、退宿、申請(qǐng)入住時(shí)提出申請(qǐng)意向,經(jīng)過(guò)輔導(dǎo)員和學(xué)院審批后,由學(xué)生公寓審批通過(guò),至財(cái)務(wù)處核算費(fèi)用后,學(xué)生持材料(如:入住通知單)到公寓中心分配房間后在相關(guān)公寓樓棟辦理具體手續(xù)。
? 離校階段:
學(xué)生在結(jié)清相關(guān)費(fèi)用后,在公寓服務(wù)中心辦理退宿手續(xù),批量刪除畢業(yè)學(xué)生住宿信息。
? 在退宿、入住、調(diào)寢環(huán)節(jié),學(xué)生信息和門(mén)禁系統(tǒng)實(shí)時(shí)對(duì)接,確保學(xué)生
入住情況準(zhǔn)確。
系統(tǒng)包括6大模塊,具體功能說(shuō)明如下:
1)宿舍基本數(shù)據(jù)管理
? 學(xué)生信息管理
各級(jí)管理老師可以維護(hù)和查詢(xún)自己管轄范圍內(nèi)的學(xué)生信息;系統(tǒng)提供數(shù)據(jù)接口,可進(jìn)行批量數(shù)據(jù)導(dǎo)入,或?qū)⒉樵?xún)和統(tǒng)計(jì)的結(jié)果數(shù)據(jù)導(dǎo)出成EXCEL表格。系
統(tǒng)實(shí)現(xiàn)數(shù)據(jù)集成后,學(xué)生的部分信息可以通過(guò)數(shù)據(jù)集成平臺(tái)從教務(wù)、學(xué)工等系統(tǒng)共享而來(lái);宿舍管理系統(tǒng)只對(duì)宿舍業(yè)務(wù)相關(guān)的學(xué)生信息內(nèi)容進(jìn)行維護(hù)。? 宿舍設(shè)備資源管理
學(xué)校管理人員按管理權(quán)限可以對(duì)學(xué)校的宿舍區(qū)、宿舍樓、宿舍等基本信息進(jìn)行管理,如公共資源配置數(shù)量(如熱水器、洗衣機(jī)、開(kāi)水爐、彩電等)、住宿費(fèi)標(biāo)準(zhǔn)、住宿學(xué)生類(lèi)別、備注等信息。
? 住宿變更流程管理:
宿舍流程管理實(shí)現(xiàn)學(xué)校管理人員對(duì)學(xué)生入住、退宿、宿舍調(diào)整的申請(qǐng)與審核流程的設(shè)置與管理。
2)學(xué)生住宿管理
人工分配宿舍:對(duì)新進(jìn)學(xué)生分配宿舍,對(duì)住宿期間臨時(shí)調(diào)換宿舍、中途入住生進(jìn)行調(diào)整安排。
自動(dòng)分配宿舍:根據(jù)學(xué)院男女生入住人數(shù)在指定的樓棟、樓層、房間中自動(dòng)分配宿舍床位。
學(xué)生自選床位:特定的學(xué)生在指定床位范圍內(nèi)通過(guò)網(wǎng)絡(luò)自選床位。公寓空調(diào)安裝后,學(xué)生出現(xiàn)對(duì)空調(diào)需求差異,存在挑選有無(wú)空調(diào)宿舍的情況,學(xué)生可根據(jù)不同的需求選擇宿舍。
? 住宿管理:
學(xué)校相關(guān)管理人員對(duì)學(xué)生進(jìn)行安排入住,住宿日常管理類(lèi)型可包括:
中途變更住宿管理:入住登記、退宿登記、延期畢業(yè)登記等日常處理項(xiàng)目。批量管理:學(xué)生住宿信息的批量導(dǎo)入、變更、刪除等??刹捎萌斯な謩?dòng)分配、電腦自動(dòng)分配、自選床位分配的方式進(jìn)行登記。
? 非在校住宿學(xué)生管理
學(xué)校相關(guān)管理老師直接維護(hù)學(xué)生校外住宿學(xué)生的基本信息,進(jìn)行備案,供今后查詢(xún)使用,包括學(xué)號(hào)姓別、院系、年級(jí)、班級(jí)、校外住宿地址、聯(lián)系電話、聯(lián)系人、申請(qǐng)外住日期、家庭詳細(xì)信息等。
? 宿舍業(yè)務(wù)申請(qǐng)與受理
學(xué)生可以在線進(jìn)行入住、退宿及宿舍調(diào)整的相關(guān)業(yè)務(wù),填寫(xiě)詳細(xì)的申請(qǐng)理由,并送達(dá)管理人員進(jìn)行審核。各級(jí)管理老師對(duì)學(xué)生的入住、退宿、調(diào)整申請(qǐng)進(jìn)行審
核,并填寫(xiě)審批意見(jiàn)。
3)查詢(xún)統(tǒng)計(jì)
住宿信息管理功能主要用于住宿學(xué)生的各類(lèi)信息查詢(xún)和統(tǒng)計(jì),可以快速直接對(duì)住宿人員、宿舍房源)、公共設(shè)施設(shè)備、宿舍基礎(chǔ)數(shù)據(jù)進(jìn)行查詢(xún),滿足校內(nèi)各部門(mén)對(duì)宿舍資源使用情況的實(shí)時(shí)查詢(xún)統(tǒng)計(jì)。查詢(xún)分為總體查詢(xún)、分類(lèi)查詢(xún)、個(gè)別查詢(xún)、組合查詢(xún)。總體查詢(xún)可直接查詢(xún)校內(nèi)/區(qū)域內(nèi)總樓棟數(shù)、總床位數(shù)、總空床位數(shù)、總住宿人數(shù)等總體數(shù)據(jù)。分類(lèi)查詢(xún)可以根據(jù)校區(qū)、樓棟號(hào)、樓層數(shù)、房間號(hào)進(jìn)行統(tǒng)計(jì)查詢(xún);也可以根據(jù)學(xué)院、年級(jí)、學(xué)生屬性進(jìn)行統(tǒng)計(jì)查詢(xún);或者根據(jù)繳費(fèi)情況、住宿狀況進(jìn)行統(tǒng)計(jì)查詢(xún)。個(gè)別查詢(xún)是根據(jù)學(xué)生個(gè)人信息進(jìn)行詳細(xì)查詢(xún),可以查到學(xué)生的住宿情況、繳費(fèi)情況等。組合查詢(xún)是根據(jù)所需要的數(shù)據(jù)進(jìn)行篩選綜合的一種查詢(xún)方式。
住宿管理系統(tǒng)要有比對(duì)功能,住宿名單要與財(cái)務(wù)處收費(fèi)名單進(jìn)行比對(duì),可以實(shí)時(shí)查詢(xún)未交費(fèi)學(xué)生情況。
系統(tǒng)提供全校學(xué)生住宿情況查詢(xún)統(tǒng)計(jì)報(bào)表、學(xué)生宿舍調(diào)動(dòng)查詢(xún)統(tǒng)計(jì)報(bào)表。通過(guò)系統(tǒng)學(xué)校的相關(guān)管理人員可以查詢(xún)到各宿舍區(qū)房間總數(shù)、床位總數(shù)、已住總數(shù)、空余床位數(shù)等詳細(xì)信息。系統(tǒng)提供數(shù)據(jù)接口,可將查詢(xún)和統(tǒng)計(jì)的結(jié)果數(shù)據(jù)導(dǎo)出成EXCEL、WORD、PDF文件。
4)宿舍日常管理
? 樓棟管理員設(shè)置
學(xué)校相關(guān)管理老師設(shè)置樓棟管理人員清單以及其所管轄的樓棟。設(shè)置完成后,樓棟管理員可以維護(hù)本人管理范圍內(nèi)的樓棟的學(xué)生住宿情況、衛(wèi)生檢查情況等。? 衛(wèi)生檢查管理
根據(jù)學(xué)校對(duì)宿舍衛(wèi)生管理要求,學(xué)校相關(guān)管理老師或者樓棟管理員可對(duì)宿舍衛(wèi)生檢查情況進(jìn)行記錄和管理,具體可包括宿舍的房間號(hào)、檢查分?jǐn)?shù)、檢查日期、操作日期和操作人等。系統(tǒng)支持定期檢查和抽查等多種檢查類(lèi)型。
? 違章違紀(jì)管理
根據(jù)學(xué)校宿舍管理規(guī)定,學(xué)校相關(guān)管理老師或者樓棟管理員可對(duì)住宿人員的違章違紀(jì)情況進(jìn)行登記,供相關(guān)管理人員查詢(xún)使用。系統(tǒng)可自定義多種違紀(jì)類(lèi)型。其他數(shù)據(jù)的統(tǒng)計(jì)管理:對(duì)夜不歸宿、遲歸等學(xué)生情況的統(tǒng)計(jì)上傳,讓學(xué)院、輔導(dǎo)
員及時(shí)了解學(xué)生狀況,保障住宿生的人身安全,并為學(xué)生年終評(píng)優(yōu)評(píng)獎(jiǎng)提供依據(jù)。
5)公寓公共設(shè)施設(shè)備管理功能
公寓服務(wù)中心可通過(guò)該功能對(duì)公寓樓內(nèi)公共設(shè)施設(shè)備數(shù)量、使用年限、維修更換情況進(jìn)行有效地掌控。
將每棟公寓樓內(nèi)的公用電器和基礎(chǔ)設(shè)施,如熱水器、開(kāi)水爐、洗衣機(jī)、吸頂扇、空調(diào)、排風(fēng)扇、家具、消防設(shè)施設(shè)備等公共設(shè)施數(shù)據(jù)編入系統(tǒng)。根據(jù)中心的工作節(jié)點(diǎn)對(duì)各類(lèi)設(shè)施設(shè)備進(jìn)行檢查、維修、更換,并及時(shí)更新系統(tǒng)數(shù)據(jù)。
6)系統(tǒng)管理
? 待辦事宜:可根據(jù)系統(tǒng)中業(yè)務(wù)開(kāi)展情況,自動(dòng)的生成事務(wù)性的提醒??舍槍?duì)
不同的用戶提供不同的提醒。如:學(xué)生申請(qǐng)入住后,輔導(dǎo)員可收到待審的學(xué)生人數(shù)提醒。
? 系統(tǒng)設(shè)置:學(xué)校相關(guān)管理老師設(shè)置當(dāng)前學(xué)年、當(dāng)前學(xué)期等系統(tǒng)整體設(shè)置。? 日志管理:系統(tǒng)自行記錄每個(gè)用戶的訪問(wèn)時(shí)間IP地址等信息;每個(gè)功能的訪問(wèn)時(shí)間IP地址等信息;記錄系統(tǒng)的訪問(wèn)日志、數(shù)據(jù)變化日志以及發(fā)生問(wèn)題日志。
? 權(quán)限管理:可以靈活配置每個(gè)用戶所屬的用戶組,以及用戶組的的權(quán)限,保
證用戶在系統(tǒng)中的一切操作在授權(quán)范圍內(nèi)進(jìn)行,當(dāng)用戶發(fā)生崗位調(diào)整或者崗位職責(zé)發(fā)生變化時(shí)系統(tǒng)可以靈活調(diào)整。
本系統(tǒng)與學(xué)校其他部門(mén)的信息互通
宿舍管理系統(tǒng)作為學(xué)校信息化建設(shè)中重要一環(huán),不僅承載了和學(xué)生住宿相關(guān)的業(yè)務(wù)功能,在其他業(yè)務(wù)系統(tǒng)或科室信息化建設(shè)中也起到了不可替代的作用從迎新系統(tǒng)取得新生數(shù)據(jù),宿管系統(tǒng)將新生宿舍分配結(jié)果發(fā)給迎新系統(tǒng),讓學(xué)生未到校前在移動(dòng)端或PC端即可查詢(xún)自己的住宿位置;宿管系統(tǒng)將宿舍分配結(jié)果和學(xué)生日常表現(xiàn)放到公共數(shù)據(jù)交換平臺(tái)供學(xué)工系統(tǒng)使用,用于學(xué)生日常管理;學(xué)工處、研工部將學(xué)生基本信息及變更信息發(fā)送至公共數(shù)據(jù)交換平臺(tái)供宿舍管理信息系統(tǒng)使用,實(shí)現(xiàn)信息互通;宿舍管理系統(tǒng)比對(duì)財(cái)務(wù)系統(tǒng)的學(xué)生住宿費(fèi)繳納情況,為管理部門(mén)辦理學(xué)生入住調(diào)換退宿提供依據(jù);宿舍管理系統(tǒng)通過(guò)集成門(mén)禁系統(tǒng)和一卡通系統(tǒng),學(xué)生入住或退宿后系統(tǒng)學(xué)
生門(mén)卡可自動(dòng)啟用或關(guān)閉對(duì)用樓棟的門(mén)禁。門(mén)禁出入記錄統(tǒng)計(jì)便于學(xué)工處或后勤管理部門(mén)實(shí)時(shí)掌握學(xué)生動(dòng)向,提前預(yù)警。宿舍管理系統(tǒng)可與學(xué)校微信APP接口向?qū)W生推送相關(guān)信息,比如衛(wèi)生檢查通知、個(gè)人宿舍繳費(fèi)情況等等
第五篇:基于VB+ACCESS的車(chē)輛信息管理系統(tǒng)
華北水利水電大學(xué)畢業(yè)設(shè)計(jì)
目錄
摘要.....................................................................................................................................I Abstract..............................................................................................................................II 第一章 緒論......................................................................................................................1 1.1研究背景..............................................................................................................1 1.2研究現(xiàn)狀..............................................................................................................1 1.3研究?jī)?nèi)容..............................................................................................................2 第二章 系統(tǒng)的分析和設(shè)計(jì)..............................................................................................3 2.1系統(tǒng)的設(shè)計(jì)..........................................................................................................3 2.1.1系統(tǒng)設(shè)計(jì)的思想.......................................................................................3 2.1.2設(shè)計(jì)原則...................................................................................................3 2.1.3模塊劃分...................................................................................................3 2.2可行性分析..........................................................................................................5 第三章 系統(tǒng)功能的實(shí)現(xiàn)..................................................................................................7 3.1 工程與數(shù)據(jù)庫(kù)的創(chuàng)建.........................................................................................7 3.1.1創(chuàng)建工程...................................................................................................7 3.1.2創(chuàng)建數(shù)據(jù)庫(kù)...............................................................................................7 3.2登錄窗體和注冊(cè)窗體的設(shè)計(jì)..............................................................................8 3.2.1系統(tǒng)登錄表...............................................................................................8 3.2.2設(shè)置登錄窗體...........................................................................................9 3.2.3注冊(cè)窗體.................................................................................................12 3.2.4用戶信息管理窗體.................................................................................14 3.3用戶主窗體和管理員窗體................................................................................16 3.3.1普通用戶窗體.........................................................................................16 3.3.2管理員窗體.............................................................................................18 3.4車(chē)主信息管理窗體............................................................................................19 3.4.1車(chē)主信息表.............................................................................................19
I
華北水利水電大學(xué)畢業(yè)設(shè)計(jì)
3.4.2車(chē)主信息窗體設(shè)計(jì).................................................................................20 3.5年檢信息管理窗體............................................................................................22 3.5.1年檢信息表.............................................................................................22 3.5.2年檢記錄窗體設(shè)計(jì).................................................................................23 3.6事故信息管理窗體............................................................................................24 3.6.1事故信息表.............................................................................................24 3.6.2事故信息窗體設(shè)計(jì).................................................................................25 3.7違章信息管理窗體............................................................................................26 3.7.1違章信息表.............................................................................................26 3.7.2違章信息窗體設(shè)計(jì).................................................................................27 3.8保險(xiǎn)信息管理窗體............................................................................................28 3.8.1保險(xiǎn)信息表.............................................................................................28 3.8.2保險(xiǎn)信息查詢(xún)窗體設(shè)計(jì).........................................................................29 第四章 系統(tǒng)的具體實(shí)現(xiàn)與結(jié)論....................................................................................31 4.1軟件調(diào)試............................................................................................................31 4.2系統(tǒng)演示............................................................................................................32 4.2.1系統(tǒng)注冊(cè)與登錄.....................................................................................32 4.2.2普通用戶窗體.........................................................................................33 4.2.3管理員窗體.............................................................................................37 第五章 結(jié)論....................................................................................................................42 參考文獻(xiàn)..........................................................................................................................44 致
謝..............................................................................................................................46 附 錄1:外文原文.........................................................................................................48 附 錄2:外文譯文.........................................................................................................54 附 錄3:畢業(yè)設(shè)計(jì)任務(wù)書(shū).............................................................................................58 附 錄4:開(kāi)題報(bào)告.........................................................................................................60 附 錄5:程序.................................................................................................................66
II
華北水利水電大學(xué)畢業(yè)設(shè)計(jì)
車(chē)輛信息管理系統(tǒng)
摘要
進(jìn)入21世紀(jì),隨著人民生活質(zhì)量水平的提高,私家車(chē)的數(shù)量越來(lái)越多,車(chē)輛信息的有效管理成為了厄待解決的任務(wù)。在車(chē)輛信息管理方面很多信息需要處理。比如車(chē)輛的車(chē)主信息,事故信息,違章信息,年檢信息,保險(xiǎn)信息等等。人工處理這些信息會(huì)非常的繁瑣,而且容易出錯(cuò)。所以需要個(gè)車(chē)輛信息管理系統(tǒng)來(lái)解決問(wèn)題。
本次設(shè)計(jì)利用VB作為開(kāi)發(fā)工具,Access作為后臺(tái)數(shù)據(jù)庫(kù),并針對(duì)系統(tǒng)要求和車(chē)輛信息的分類(lèi)劃分了功能模塊。首先是登錄設(shè)計(jì),注冊(cè)賬號(hào)密碼之后可以登錄進(jìn)入主窗體,通過(guò)主窗體普通用戶進(jìn)入各查詢(xún)窗體包括車(chē)輛的車(chē)主信息,事故記錄,違章記錄,保險(xiǎn)記錄,年檢記錄等各方面信息。管理員進(jìn)入各查詢(xún)窗體包括車(chē)輛的車(chē)主信息,事故記錄,違章記錄,保險(xiǎn)記錄,年檢記錄等各方面信息進(jìn)行信息處理,并且可以對(duì)用戶的信息進(jìn)行管理,還可以設(shè)置管理權(quán)限。系統(tǒng)采用分模塊,程序化的設(shè)計(jì)方法,既方便于系統(tǒng)功能的實(shí)現(xiàn)和調(diào)整,又便于管理人員的對(duì)數(shù)據(jù)信息的管理和維護(hù)。
車(chē)輛信息管理系統(tǒng)具備數(shù)據(jù)庫(kù)信息處理功能,可以根據(jù)用戶需要對(duì)車(chē)輛相關(guān)的信息進(jìn)行查詢(xún)、添加、修改、刪除等操作。整個(gè)車(chē)輛信息管理系統(tǒng)體現(xiàn)了軟件工程的宗旨,并且使車(chē)輛信息管理變得規(guī)范化。系統(tǒng)還可以自動(dòng)完成信息的處理,從而達(dá)到提高車(chē)輛信息管理的目的。
關(guān)鍵字:VB ;車(chē)輛信息;數(shù)據(jù)庫(kù);管理系統(tǒng)
I
華北水利水電大學(xué)畢業(yè)設(shè)計(jì)
Vehicle information management system
Abstract With the improvement of people's living standard in 21st century, the effective management of vehicle information has become an urgent task because of more and more vehicles.A lot of aspects in the vehicle information management need to handle, such as, the owner of the vehicle information, accident, illegal information, yearly check information, insurance information and so on.Artificial processing this information is very cumbersome and error-prone.So we need a vehicle information management system to solve this problem.This design takes VB as the development tool, ACCESS database as the background and in view of the system requirements and vehicle information classification divides the function module.After the first login is designed, the registered account password can log into the main form, through the main form of ordinary users to enter the query form include the information of vehicle owners, accident record, endorsed, insurance records, annual inspection records and so on various aspects information.Administrators to enter the query form include the information of vehicle owners, accident record, endorsed, insurance records, annual inspection records information processing and so on various aspects information, and to manage the user's information, you can also set permissions management.System adopts modularized program design method, convenient for the combination of system function change, facilitate again complement and maintain that does not participate in the personnel.System has the function of database maintenance, timely data according to user needs to add, modify, delete, backup, etc.The development of the whole vehicle management system embodies the thought of software engineering and makes the vehicle information management systematization, standardization and automation, so as to achieve the goal of improving vehicle information management.Key words: VB;Vehicle information;Database;Management system.II
華北水利水電大學(xué)畢業(yè)設(shè)計(jì)
第一章緒論
1.1研究背景
進(jìn)入21世紀(jì)人們的生活質(zhì)量水平的提高,車(chē)輛的數(shù)量持續(xù)的增長(zhǎng)。車(chē)輛的增多必然會(huì)給車(chē)輛管理帶來(lái)不便,而車(chē)輛的使用又是社會(huì)發(fā)展必備工具.車(chē)輛增加可以讓人們享受高質(zhì)量的生活,但是如果沒(méi)有一個(gè)完善的車(chē)輛信息管理系統(tǒng)會(huì)隨之而來(lái)許多的社會(huì)問(wèn)題,因此開(kāi)發(fā)出一套功能完善的車(chē)輛信息管理系統(tǒng)成為一項(xiàng)十分重要的任務(wù),特別是汽車(chē)的數(shù)量還在不斷的增長(zhǎng).所以開(kāi)發(fā)車(chē)輛信息管理系統(tǒng)是管理車(chē)輛信息的主要措施.車(chē)輛信息管理系統(tǒng)的運(yùn)用,使人們不僅可以享受車(chē)輛帶來(lái)的便捷,還不用因?yàn)檐?chē)輛引起的諸多信息而感到煩躁.所以在這個(gè)背景下我們開(kāi)發(fā)出車(chē)輛信息管理系統(tǒng).方便人們對(duì)自己的愛(ài)車(chē)信息可以全面了解.數(shù)據(jù)庫(kù)是計(jì)算機(jī)設(shè)計(jì)信息管理系統(tǒng)的地一個(gè)重要組成部分,是人們進(jìn)行數(shù)據(jù)儲(chǔ)存,分享,管理的工具.其實(shí)信息管理系統(tǒng)應(yīng)用程序就是從數(shù)據(jù)庫(kù)獲取數(shù)據(jù)并進(jìn)行處理。它是目前最流行計(jì)算機(jī)程序之一,應(yīng)用范圍十分廣泛.。從簡(jiǎn)單的數(shù)據(jù)錄入到表中到復(fù)雜的信息管理系統(tǒng)后臺(tái)數(shù)據(jù)庫(kù)的建立都是信息管理的應(yīng)用。
Visual Basic 簡(jiǎn)稱(chēng)VB,VB是軟件開(kāi)發(fā)領(lǐng)域開(kāi)發(fā)效率較高程序設(shè)計(jì)語(yǔ)言,在設(shè)計(jì)小型的信息管理系統(tǒng)中有很大的優(yōu)勢(shì)。利用VB開(kāi)發(fā)數(shù)據(jù)庫(kù)應(yīng)用系統(tǒng),可以將所學(xué)習(xí)的知識(shí)融會(huì)貫通,培養(yǎng)自主學(xué)習(xí)能力,創(chuàng)新能力。數(shù)據(jù)庫(kù)開(kāi)發(fā)應(yīng)用管理系統(tǒng)包含測(cè)控,電子,計(jì)算機(jī)等多個(gè)學(xué)科的內(nèi)容,具有深厚的研究?jī)r(jià)值。
1.2研究現(xiàn)狀
本人在查閱了眾多的參考資料之后,充分了解了國(guó)內(nèi)現(xiàn)有的各種車(chē)輛相關(guān)的信息研究系統(tǒng),我國(guó)利用計(jì)算機(jī)管理車(chē)輛信息的技術(shù)應(yīng)用相對(duì)國(guó)外比較滯后,主要原因是國(guó)內(nèi)計(jì)算機(jī)技術(shù)的普及不到位和社會(huì)發(fā)展水平不高。針對(duì)我所理解的車(chē)輛信息管理系統(tǒng),國(guó)內(nèi)現(xiàn)有研究狀況進(jìn)行總結(jié):首先,很多車(chē)輛信息管理系統(tǒng)設(shè)計(jì)不合理,系統(tǒng)內(nèi)的各個(gè)模塊之間的數(shù)據(jù)信息有重復(fù)出現(xiàn)的情況,需要多次的屬入。不僅設(shè)計(jì)繁瑣,效率不高還容易產(chǎn)生錯(cuò)誤。其次,大部分的設(shè)計(jì)軟件在人機(jī)交互功能方面設(shè)計(jì)力度不夠,沒(méi)有錯(cuò)誤警報(bào)信息和關(guān)鍵操作驗(yàn)證功能。對(duì)于車(chē)輛信息的整理也不夠全面,很多車(chē)輛信息管理系統(tǒng)只關(guān)心車(chē)輛的少部分信息,對(duì)車(chē)輛整體信息涵蓋不完整。
華北水利水電大學(xué)畢業(yè)設(shè)計(jì)
相比而言國(guó)外的信息管理系統(tǒng)就比較成熟,很早以前國(guó)外就產(chǎn)生了簡(jiǎn)單的單位車(chē)輛管理系統(tǒng),通過(guò)計(jì)算機(jī)對(duì)車(chē)輛的相關(guān)信息進(jìn)行記錄,大大減少了人工進(jìn)行錄入和管理的繁雜,提高了對(duì)車(chē)輛使用情況的了解,現(xiàn)在國(guó)外的管理系統(tǒng)已經(jīng)十分的完善。
1.3研究?jī)?nèi)容
本次設(shè)計(jì)運(yùn)用VB和ACCESS的基本理論知識(shí),在此基礎(chǔ)上進(jìn)行了系統(tǒng)數(shù)據(jù)庫(kù)的設(shè)計(jì),訪問(wèn)連接及數(shù)據(jù)源的配制方法.根據(jù)系統(tǒng)功能及設(shè)計(jì)要求,進(jìn)行系統(tǒng)的模塊劃分,軟件流程的設(shè)計(jì)及系統(tǒng)的運(yùn)行界面設(shè)計(jì).通過(guò)VB的語(yǔ)言編寫(xiě)出個(gè)功能模塊的代碼,實(shí)現(xiàn)數(shù)據(jù)庫(kù)訪問(wèn)及系統(tǒng)界面的友好性設(shè)計(jì),滿足應(yīng)用系統(tǒng)的實(shí)際要求
首先是登錄設(shè)計(jì),登錄進(jìn)入主窗體,通過(guò)主窗體進(jìn)入各查詢(xún)窗體包括車(chē)輛的車(chē)主信息,事故記錄,違章記錄,保險(xiǎn)記錄,年檢記錄等各方面信息。對(duì)車(chē)輛的各種信息實(shí)現(xiàn)查詢(xún)、修改、刪除、添加等功能。系統(tǒng)采用分模塊,程序化的設(shè)計(jì)方法,既方便于系統(tǒng)功能的實(shí)現(xiàn)和調(diào)整,又便于管理人員的對(duì)數(shù)據(jù)信息的管理和維護(hù)。
華北水利水電大學(xué)畢業(yè)設(shè)計(jì)
第二章系統(tǒng)的分析和設(shè)計(jì)
經(jīng)過(guò)對(duì)大量的資料進(jìn)行研究,基本可以確定設(shè)計(jì)的方向。本章重點(diǎn):對(duì)系統(tǒng)進(jìn)行分析,制定設(shè)計(jì)的方案。
2.1系統(tǒng)的設(shè)計(jì)
系統(tǒng)設(shè)計(jì)是車(chē)輛信息管理系統(tǒng)開(kāi)發(fā)的重要階段,在這一階段。首先要了解用戶對(duì)車(chē)輛信息有哪些方面的需求,然后對(duì)系統(tǒng)進(jìn)行劃分,最后整理出各模塊之間的系統(tǒng)流程。這樣既提高了系統(tǒng)設(shè)計(jì)的準(zhǔn)確性,又讓設(shè)計(jì)流規(guī)范化。
2.1.1系統(tǒng)設(shè)計(jì)的思想
⑴實(shí)用性:在各項(xiàng)基本功能使用上進(jìn)一步完善系統(tǒng)。⑵先進(jìn)性:簡(jiǎn)化代碼去除多余,引用簡(jiǎn)單的編程方式。⑶易用性:授權(quán)實(shí)體在所需時(shí)間可以簡(jiǎn)單快捷的使用應(yīng)用程序。⑷保密性:確保信息不會(huì)暴漏給未授權(quán)查看的人使用。⑸系統(tǒng)性:將各個(gè)功能模塊有機(jī)融合在一個(gè)系統(tǒng)的整體中。
2.1.2設(shè)計(jì)原則
⑴目標(biāo)明確。在信息系統(tǒng)中的每一個(gè)子系統(tǒng)都是為了達(dá)到某種效果而設(shè)計(jì)。系統(tǒng)的邊界是否適合,系統(tǒng)內(nèi)部的目標(biāo)是否統(tǒng)一。這些將直接影響整個(gè)系統(tǒng)的功能。車(chē)輛信息管理系統(tǒng)就是實(shí)現(xiàn)一個(gè)節(jié)省人力,能使管理流程科學(xué)化的系統(tǒng)。
⑵結(jié)構(gòu)清晰。系統(tǒng)與系統(tǒng)之間的層次分清楚,比較要分明吧,這樣便于實(shí)現(xiàn)總目標(biāo),使得信息交流方便。
2.1.3模塊劃分
數(shù)據(jù)庫(kù)的設(shè)計(jì)需求具體實(shí)現(xiàn)對(duì)各種信息的保存修改和查詢(xún)等方面。因此一個(gè)滿足系統(tǒng)數(shù)據(jù)庫(kù)必須充分的照顧到各種新的輸入輸出以免遺漏導(dǎo)致開(kāi)發(fā)返工。通過(guò)對(duì)系統(tǒng)功能的分析,數(shù)據(jù)庫(kù)應(yīng)該包括登錄表、車(chē)主信息表、年檢記錄表、保險(xiǎn)信息表、違章記錄表、事故記錄表六個(gè)表。分別儲(chǔ)存我們必須的信息。
VB開(kāi)發(fā)根據(jù)系統(tǒng)的功能要求將系統(tǒng)分解為三層六大模塊,三個(gè)層次分為:登錄界面,主窗體,子查詢(xún)窗體。
華北水利水電大學(xué)畢業(yè)設(shè)計(jì)
1、登錄界面:當(dāng)我們打開(kāi)應(yīng)用程序的時(shí)候首先進(jìn)入登錄界面,分為注冊(cè)和登錄兩個(gè)窗體分別實(shí)現(xiàn)注冊(cè)新用戶和通過(guò)用戶密碼認(rèn)定進(jìn)入車(chē)輛信息管理系統(tǒng)功能
2、主窗體:登錄成功之后普通用戶進(jìn)入主窗體我們可以選擇我們要查詢(xún)的項(xiàng)目,管理員用戶可以進(jìn)入管理員窗體對(duì)數(shù)據(jù)進(jìn)行添加、修改、刪除、查詢(xún)功能。
3、子查詢(xún)窗體:普通用戶選擇查詢(xún)項(xiàng)目進(jìn)入子項(xiàng)目,輸入相應(yīng)的車(chē)牌號(hào)即可查詢(xún)相關(guān)的信息。管理員用戶進(jìn)入管理窗體,對(duì)車(chē)輛信息進(jìn)行添加、修改、刪除、查詢(xún)處理。
六大模塊分為:車(chē)主信息,年檢信息,事故信息,違章信息,保險(xiǎn)信息,用戶信息。
1、車(chē)主信息:包含了車(chē)主的姓名,出生日期,發(fā)證日期,車(chē)輛類(lèi)型,車(chē)主年齡,證件有效期,性別,證件號(hào),籍貫幾個(gè)方面。
2、年間信息:本模塊包含了車(chē)輛年間的信息記錄,從購(gòu)車(chē)到現(xiàn)在所有的年間信息在本模塊顯示
3、事故信息:事故的時(shí)間,地點(diǎn),原因。對(duì)方姓名,對(duì)方的車(chē)號(hào),處理方式,責(zé)任認(rèn)定等等信息。
4、違章信息:包括違章的原因,處罰,時(shí)間,扣分情況,處理情況等信息。
5、保險(xiǎn)信息:這里主要包括了保險(xiǎn)日期,類(lèi)型,備注生效情況。
6、賬戶信息:主要包括帳號(hào),密碼,用戶類(lèi)型信息。車(chē)輛信息管理系統(tǒng)流程圖如圖2-1所示。
華北水利水電大學(xué)畢業(yè)設(shè)計(jì)
圖2-1車(chē)輛信息管理系統(tǒng)流程圖
2.2可行性分析
1、經(jīng)濟(jì)可行性分析
通過(guò)計(jì)算機(jī)對(duì)車(chē)輛信息進(jìn)行全面的自動(dòng)化管理,大大提高了信息的管理效率。通過(guò)對(duì)車(chē)輛信息進(jìn)行全面的管理和分析,可以及時(shí)的發(fā)現(xiàn)各種問(wèn)題。提高對(duì)車(chē)輛信息的掌握度,使車(chē)輛信息管理更加科學(xué)化系統(tǒng)化。
2、技術(shù)可行性分析
利用VB+Access實(shí)現(xiàn)簡(jiǎn)單、實(shí)用、安全性高的技術(shù)特點(diǎn)、完全可以開(kāi)發(fā)出一套適合個(gè)人的車(chē)輛信息管理,而且計(jì)算機(jī)自動(dòng)化的辦公管理會(huì)使得車(chē)輛信息管理更加清晰,實(shí)現(xiàn)通過(guò)計(jì)算機(jī)對(duì)信息進(jìn)行查詢(xún),輸入,輸出等一系列功能。
3、社會(huì)可行性分析
對(duì)于車(chē)輛信息管理來(lái)說(shuō),主要考慮車(chē)輛信息獲取的獲取條件。在計(jì)算機(jī)軟硬件技術(shù)和網(wǎng)絡(luò)技術(shù)飛速發(fā)展與普及,要求車(chē)輛信息必須適應(yīng)自動(dòng)化管理的模式,而且軟件的易用性提高,可以使人們更方便快捷的使用車(chē)輛信息管理系統(tǒng)。
華北水利水電大學(xué)畢業(yè)設(shè)計(jì)
華北水利水電大學(xué)畢業(yè)設(shè)計(jì)
第三章系統(tǒng)功能的實(shí)現(xiàn)
經(jīng)過(guò)上一章的分析,和整體設(shè)計(jì)的方案確定。接下來(lái)我們將進(jìn)行具體的設(shè)計(jì),去實(shí)現(xiàn)我們想要實(shí)現(xiàn)的功能。本章重點(diǎn):創(chuàng)建數(shù)據(jù)庫(kù),創(chuàng)建工程,數(shù)據(jù)表的設(shè)計(jì),工程窗體的設(shè)計(jì)。
3.1工程與數(shù)據(jù)庫(kù)的創(chuàng)建
3.1.1創(chuàng)建工程
1、運(yùn)行VB程序選擇標(biāo)準(zhǔn)EXE點(diǎn)擊打開(kāi)創(chuàng)建工程界面如圖3-3所示。
圖3-1創(chuàng)建工程界面
2、保存工程:
保存工程界面如圖3-4所示文件名輸入車(chē)輛信息管理,下拉可以選擇文件的保存類(lèi)型,點(diǎn)擊保存即可保存工程,工程創(chuàng)建完成。
圖3-2保存工程界面
3.1.2創(chuàng)建數(shù)據(jù)庫(kù)
首先我們打開(kāi)VB程序,選擇我們創(chuàng)建好的工程初始界面如圖3-3所示在菜單欄藍(lán)
華北水利水電大學(xué)畢業(yè)設(shè)計(jì)
色標(biāo)識(shí)處點(diǎn)擊外接程序之后選擇可視化數(shù)據(jù)程序管理器。
圖3-3初始界面
可視化數(shù)據(jù)管理器如圖3-2所示點(diǎn)擊文件,下拉新建選擇Access,保存7.0MDB文件生成數(shù)據(jù)庫(kù),即可生成我們需要的數(shù)據(jù)庫(kù)。
圖3-4可視化數(shù)據(jù)管理器
3.2登錄窗體和注冊(cè)窗體的設(shè)計(jì)
3.2.1系統(tǒng)登錄表
系統(tǒng)登錄:包括登錄帳號(hào)、密碼、用戶類(lèi)型。登錄信息E-R圖如圖3-5所示。
圖3-5登錄信息E-R圖
登錄表設(shè)計(jì)如圖3-6所示右鍵單擊表一部分可以進(jìn)入設(shè)計(jì)視圖,這個(gè)時(shí)候會(huì)彈出對(duì)話框提示我們保存表。
圖3-6登錄表設(shè)計(jì)
華北水利水電大學(xué)畢業(yè)設(shè)計(jì)
保存對(duì)話框如圖3-7所示以賬戶登錄為表名稱(chēng)保存之后進(jìn)入設(shè)計(jì)視圖,可以繼續(xù)進(jìn)行設(shè)計(jì)。
圖3-7保存對(duì)話框
賬戶信息表設(shè)計(jì)視圖如圖3-8所示,設(shè)置賬號(hào)為主鍵,密碼和用戶類(lèi)型。帳號(hào)和密碼數(shù)據(jù)類(lèi)型為數(shù)字,用戶類(lèi)型的數(shù)據(jù)類(lèi)型為文本。
圖3-8賬戶信息表設(shè)計(jì)視圖
完成了數(shù)據(jù)的屬性設(shè)置之后我們要對(duì)數(shù)據(jù)進(jìn)行數(shù)據(jù)的錄入,錄入數(shù)據(jù)后的數(shù)據(jù)表視圖如圖3-9所示。
圖3-9數(shù)據(jù)表視圖
3.2.2設(shè)置登錄窗體
首先我們進(jìn)行登錄表窗體的設(shè)計(jì),控件的布局設(shè)置,登錄窗體設(shè)計(jì)視圖如圖3-10所示。
圖3-10登錄窗體設(shè)計(jì)視圖
華北水利水電大學(xué)畢業(yè)設(shè)計(jì)
登錄窗體包含用戶名,密碼兩個(gè)輸入框。登錄,退出兩個(gè)按鈕。三個(gè)標(biāo)簽框,一個(gè)圖片框,一個(gè)ADO控件。
選擇Form窗體在屬性中把Caption改為車(chē)輛信息管理。
標(biāo)簽控件Label1屬性中把Caption 改為車(chē)輛信息管理系統(tǒng),F(xiàn)ont字體設(shè)置為宋體粗體傾斜48號(hào)字體,Alignment設(shè)置為2-Center,Autosize設(shè)置為T(mén)rue,BackStyle選擇設(shè)為0-Transparent。
標(biāo)簽控件Label2屬性設(shè)置中在Caption 后輸入帳號(hào),標(biāo)簽控件Label3屬性設(shè)置中在Caption 后輸入密碼。公用屬性Font字體選擇為宋體粗體傾斜二號(hào)號(hào)字體,Alignment選擇為2-Center,Autosize選擇為T(mén)rue.BackStyle選擇設(shè)為0-Transparent.文本控件Text1對(duì)應(yīng)帳號(hào)標(biāo)簽,文本控件Text2對(duì)應(yīng)密碼標(biāo)簽。公用屬性設(shè)置中把Text對(duì)應(yīng)的名字刪除,字體選擇宋體三號(hào)字體。在Text2中另外設(shè)PaxxWordChar后邊輸入“*”,設(shè)置密文密碼。
按鈕控件Command1屬性設(shè)置中Caption 后邊輸入登錄,按鈕控件Command2屬性設(shè)置中Caption后輸入注冊(cè), 公用屬性Font字體設(shè)置為宋體三號(hào)字體。
圖片控件Image1屬性中選擇Picture后邊可以選擇你喜歡背景的圖片,Stretch選擇設(shè)為T(mén)rue.使圖片適應(yīng)控件大小。右鍵單擊圖片控件會(huì)出現(xiàn)一個(gè)選擇菜單,選擇置后可以使其他控件顯示在圖片之前顯示,圖片控件設(shè)置以后不在贅述。
ADO控件的屬性設(shè)置Visible設(shè)置為False,以后ADO控件均執(zhí)行此設(shè)置以后出現(xiàn)不再贅述。
在工具欄右鍵單擊選擇部件,勾選添加控件圖如圖3-11所示,可以添加ADO控件到工具欄。
圖3-11添加控件圖
華北水利水電大學(xué)畢業(yè)設(shè)計(jì)
之后點(diǎn)擊確定即可在工具欄顯示ADO控件,添加進(jìn)窗體即可。
ADO控件鏈接數(shù)據(jù)庫(kù),右鍵點(diǎn)擊ADODC控件選擇屬性出現(xiàn)屬性頁(yè)如圖3-12所示。
圖3-12屬性頁(yè)
點(diǎn)擊生成選擇界面選擇數(shù)據(jù)鏈接界面如圖3-13藍(lán)線選項(xiàng),點(diǎn)擊下一步進(jìn)行鏈接。
圖3-13選擇數(shù)據(jù)鏈接界面
選擇已創(chuàng)建好的數(shù)據(jù)庫(kù),測(cè)試鏈接成功測(cè)試連接界面如圖3-14所示點(diǎn)擊確定。提示測(cè)試鏈接成功就代表我們成功鏈接數(shù)據(jù),之后我們可以對(duì)數(shù)據(jù)的信息進(jìn)行操作。
圖3-14測(cè)試鏈接界面
華北水利水電大學(xué)畢業(yè)設(shè)計(jì)
返回屬性頁(yè)選擇記錄源命令類(lèi)型,選擇2-adCndTable下邊可以選擇調(diào)用的表如果沒(méi)有出現(xiàn)需要調(diào)用表的名字,記錄源如圖3-15所示只需輸入表的名字即可,就可以選擇我們需要的數(shù)據(jù)打開(kāi)的是哪個(gè)表。點(diǎn)擊確定即可確定我們需要鏈接的表。
圖3-15記錄源
登錄窗體關(guān)鍵程序如下:
Adodc1.ConnectionString = “Provider=Microsoft.Jet.OLEDB.4.0;Data Source=” + App.Path + “車(chē)輛信息.mdb;” Adodc1.CommandType = adCmdText Adodc1.RecordSource = “select * from 登錄
where 帳號(hào) ='”& Trim(Text1.Text)&“'” Adodc1.Refresh '(這是給ADODC設(shè)置數(shù)據(jù)庫(kù)及數(shù)據(jù)源并刷新數(shù)據(jù)源)If Adodc1.Recordset.Fields(“用戶類(lèi)型”)= “管理員” Then
身份權(quán)限判斷 If Adodc1.Recordset.RecordCount >“ 0” Then
'查找存在該用戶 If Adodc1.Recordset.Fields(“密碼”)<> Text2.Text Then
'核對(duì)用戶密碼 MsgBox “密碼錯(cuò)誤,請(qǐng)重新輸入!”
’消息盒子 Text2.SetFocus’獲取焦點(diǎn)
3.2.3注冊(cè)窗體
添加窗體在工程欄中右鍵單擊出現(xiàn)添加選項(xiàng),再選擇窗體,點(diǎn)擊確定即完成創(chuàng)建窗體,右鍵單擊新建好的窗體選擇保存窗體即可保存新窗體。打開(kāi)新的窗體跟登陸窗體操作類(lèi)似。
對(duì)于注冊(cè)窗體的控件布局設(shè)置,注冊(cè)窗體的設(shè)計(jì)視圖如圖3-16所示。
華北水利水電大學(xué)畢業(yè)設(shè)計(jì)
圖3-16注冊(cè)窗體的設(shè)計(jì)視圖
選擇Form窗體在屬性中把Caption改為注冊(cè)界面。
標(biāo)簽控件Label1屬性中Caption 改為歡迎注冊(cè)本系統(tǒng),Font字體設(shè)置為宋體粗體傾斜48號(hào)字體,Alignment設(shè)置為2-Center,Autosize設(shè)置為T(mén)rue.BackStyle選擇設(shè)為0-Transparent.標(biāo)簽控件Label2屬性中Caption 后輸入“帳號(hào)”,Font把字體設(shè)置為宋體粗體傾斜二號(hào)字體,Alignment選擇為2-Center,Autosize選擇為T(mén)rue, BackStyle選擇設(shè)為0-Transparent.標(biāo)簽控件Label3屬性中Caption 后輸入密碼,Font字體選擇為宋體粗體傾斜二號(hào)號(hào)字體,Alignment選擇為2-Center,Autosize選擇為T(mén)rue.BackStyle選擇設(shè)為0-Transparent.文本控件Text1對(duì)應(yīng)帳號(hào)標(biāo)簽在屬性設(shè)置中把Text對(duì)應(yīng)的名字刪除,字體選擇宋體常規(guī)三號(hào)字體。
文本控件Text2對(duì)應(yīng)密碼標(biāo)簽在屬性設(shè)置中把Text對(duì)應(yīng)的名字刪除,字體選擇宋體三號(hào)字體。
按鈕控件Command1屬性設(shè)置界面中Caption 后邊改為注冊(cè), ,Font字體設(shè)置為宋體三號(hào)字體。
按鈕控件Command2屬性設(shè)置界面中Caption 后邊改為返回,Font字體設(shè)置為宋體三號(hào)字體。
ADO的鏈接方法與登錄窗體的相同此處不再贅述。注冊(cè)程序代碼如下:
華北水利水電大學(xué)畢業(yè)設(shè)計(jì)
Adodc1.RecordSource = “ select * from 登錄” Adodc1.Refresh’獲取數(shù)據(jù)表信息 Adodc1.Recordset.AddNew Adodc1.Recordset.Fields(“帳號(hào)”)= Trim(Text1.Text)Adodc1.Recordset.Fields(“密碼”)= Trim(Text2.Text)Adodc1.Recordset.Update
’添加信息到登錄表
3.2.4用戶信息管理窗體
用戶信息窗體控件布局設(shè)置,用戶信息窗體設(shè)計(jì)圖如圖3-17所示。
圖3-17用戶信息窗體設(shè)計(jì)圖
選擇Form窗體在屬性中把Caption改為用戶信息管理。添加一個(gè)Frame1控件選擇置后可以在里邊添加控件。
標(biāo)簽控件Label1屬性中Caption 后邊改為用戶信息管理界面,Font字體設(shè)置為宋體傾斜小初字體,Alignment設(shè)置為2-Center,Autosize設(shè)置為T(mén)rue.BackStyle選擇設(shè)為0-Transparent.標(biāo)簽控件Label2屬性中Caption后邊改為帳號(hào),標(biāo)簽控件Label3屬性中Caption 后邊改為密碼,標(biāo)簽控件Label4屬性中Caption 后邊改為用戶類(lèi)型,公用屬性Font字體設(shè)置為宋體2號(hào)字體,Alignment設(shè)置為2-Center,Autosize設(shè)置為T(mén)rue.BackStyle選擇設(shè)為0-Transparent.文本控件Text1對(duì)應(yīng)帳號(hào)標(biāo)簽,文本控件Text2對(duì)應(yīng)密碼標(biāo)簽,文本控件Text3對(duì)應(yīng)用戶類(lèi)型標(biāo)簽在屬性設(shè)置中把Text對(duì)應(yīng)的名字刪除,字體選擇宋體常規(guī)三號(hào)字體。
按鈕控件Command1屬性中Caption 后邊改為查詢(xún)用戶, 按鈕控件Command2屬性
華北水利水電大學(xué)畢業(yè)設(shè)計(jì)
中Caption 后邊改為添加管理 ,按鈕控件Command3屬性界面中Caption 后邊改為刪除用戶 ,按鈕控件Command4屬性界面中Caption 后邊改為返回 ,他們的Font字體選擇為宋體三號(hào)字體。Style設(shè)置為1-Graphical,BackColor可以設(shè)置想要的顏色。
DataGrid控件在登錄界面引用ADO控件時(shí)已經(jīng)引用過(guò)了,在工具欄里邊直接放進(jìn)窗體即可,屬性中的DataSource選為Adoac1。本設(shè)置此控件設(shè)置屬性均相同其他窗體不再贅述。
ADO控件的設(shè)置與登錄窗體,不贅述。注冊(cè)窗體是添加按鈕,而添加管理,查詢(xún)用戶,刪除用戶分別是修改和查詢(xún),查出功能的實(shí)現(xiàn)主要代碼如下:
Adodc1.RecordSource = “SELECT * FROM 登錄 WHERE 帳號(hào)='” + Trim(Text1.Text)+ “'” Adodc1.Refresh
’獲取查詢(xún)條件
With Text2
’設(shè)置控件綁定信息 Set Text2.DataSource = Adodc1 Text2.DataField = “密碼” End With With Text3 Set Text3.DataSource = Adodc1 Text3.DataField = “用戶類(lèi)型” End With End Sub Private Sub Command2_Click()
’修改程序
Adodc1.RecordSource = “select * from 違章 where 車(chē)牌號(hào)碼=”& Text1.Text &“"
’ 通過(guò)主鍵修改
Adodc1.Recordset.Fields(”帳號(hào)“)= Text1.Text Adodc1.Recordset.Fields(”密碼“)= Text2.Text Adodc1.Recordset.Fields(”用戶類(lèi)型“)= Text3.Text Adodc1.Recordset.Update MsgBox ”修改成功!“ End Sub
華北水利水電大學(xué)畢業(yè)設(shè)計(jì)
Private Sub Command3_Click()If Me.Adodc1.Recordset.RecordCount
=
0
Or
Me.Adodc1.Recordset.EOF Then
’判斷記錄是否為空
Exit Sub End If
Me.Adodc1.Recordset.Delete
’刪除記錄
Me.Adodc1.Recordset.MoveNext
’移到嚇一條記錄 If Me.Adodc1.Recordset.RecordCount = 0 Then Exit Sub End If If Me.Adodc1.Recordset.EOF Then Me.Adodc1.Recordset.MoveLast MsgBox ”刪除成功!" End Sub 3.3用戶主窗體和管理員窗體
3.3.1普通用戶窗體
普通用戶窗體控件布局設(shè)置,普通用戶窗體的設(shè)計(jì)視圖如圖3-19所示。
圖3-18普通用戶窗體的設(shè)計(jì)視圖
普通用戶窗體所示包含系統(tǒng)菜單欄,兩個(gè)標(biāo)簽控件,六個(gè)按鈕控件,一個(gè)Timer1
華北水利水電大學(xué)畢業(yè)設(shè)計(jì)
控件。
Unload Me 關(guān)閉當(dāng)前窗體。Form1.Show 打開(kāi)相應(yīng)的窗體。
右鍵單擊窗體空白部分選擇菜單欄編輯器,設(shè)置內(nèi)容菜單欄編輯器視圖如圖3-19所示。
圖3-19欄編輯器視圖
輸入標(biāo)題和名字,按向下的箭頭即可添加,添加結(jié)束后點(diǎn)擊確定按鈕即可完成創(chuàng)建,注意如果要?jiǎng)?chuàng)建子菜單可以選擇左右的箭頭來(lái)設(shè)置子菜單。菜單的效果可以設(shè)置與按鈕的效果相同可以打開(kāi)其他的窗體,子窗體具有相同的效果。
選擇Form窗體在屬性中把Caption改為車(chē)輛信息管理系統(tǒng)。
時(shí)間顯示設(shè)置要添加Timer1控件,寫(xiě)入代碼在窗體內(nèi)加入Timer1.Interval = 1000,在控件內(nèi)加入Label1.Caption = Now()即可顯示現(xiàn)在時(shí)間。把Timer1右鍵單擊選擇置后即可在運(yùn)行界面不顯示。
標(biāo)簽控件Label1屬性界面中Caption 后邊的值刪除,Font字體選擇為宋體三號(hào)字體。標(biāo)簽控件Label2屬性中Caption 后邊改為現(xiàn)在時(shí)間,Font字體設(shè)置為宋體二號(hào)字體,公共屬性Alignment設(shè)置為2-Center,Autosize設(shè)置為T(mén)rue.BackStyle后選擇0-Transparent。
按鈕控件Command1屬性中Caption 后邊改為車(chē)主信息,按鈕控件Command2屬性界面中Caption 后邊改為年檢信息,按鈕控件Command3屬性中Caption 后邊改為保險(xiǎn)信息,按鈕控件Command4屬性中Caption 后邊改為事故信息,按鈕控件Command5屬性中Caption 后邊改為違章信息, 按鈕控件Command6屬性中Caption 后邊改為退出, ,公用屬性Font字體選擇為宋體三號(hào)字體。
窗體的完整程序見(jiàn)附錄,以后不做特殊說(shuō)明本論文所有程序均在附錄顯示。
華北水利水電大學(xué)畢業(yè)設(shè)計(jì)
3.3.2管理員窗體
管理員窗體的控件設(shè)置內(nèi)容位置,管理員窗體的設(shè)計(jì)視圖如圖3-20所示。
圖3-20管理員窗體的設(shè)計(jì)視圖
管理員窗體有一個(gè)菜單欄,兩個(gè)標(biāo)簽控件,六個(gè)按鈕控件,一個(gè)Timer1控件。首先是菜單欄的設(shè)置內(nèi)容,菜單欄設(shè)計(jì)視圖如圖3-21所示。
圖3-21菜單欄設(shè)計(jì)視圖
選擇Form窗體在屬性中把Caption改為車(chē)輛信息管理系統(tǒng)。時(shí)間顯示設(shè)置要添加Timer1控件,屬性設(shè)置與普通用戶界面相同。標(biāo)簽控件屬性與普通用戶界面相同此處不贅述。
按鈕控件Command1屬性中Caption 后邊改為車(chē)主信息管理,按鈕控件Command2
華北水利水電大學(xué)畢業(yè)設(shè)計(jì)
屬性中Caption 后邊改為年檢信息管理 ,按鈕控件Command3屬性中Caption 后邊改為保險(xiǎn)信息管理 ,按鈕控件Command4屬性中Caption 后邊改為事故信息管理 ,按鈕控件Command5屬性中Caption 后邊改為違章信息管理,按鈕控件Command6屬性中Caption 后邊改為切換普通界面。公用屬性Font字體設(shè)置為宋體三號(hào)字體。
按Ctrl加鼠標(biāo)左鍵可以選定多個(gè)按鈕控件,選擇菜單欄里邊的格式可以編輯控件的大小統(tǒng)一和位置的統(tǒng)一??梢皂敹耍锥?,靠左右對(duì)齊可以使界面更加美觀優(yōu)化。
主要用到程序語(yǔ)言Form3.CD.Visible = True可以使指定的窗體控件改變顯示屬性。
3.4車(chē)主信息管理窗體
3.4.1車(chē)主信息表
車(chē)主信息:包含了車(chē)主的姓名,車(chē)輛類(lèi)型,車(chē)主年齡,性別,證件號(hào),籍貫,駕駛信息等等。車(chē)主信息E-R圖如圖3-22所示。
圖3-22車(chē)主信息E-R圖
在工具菜單欄選擇創(chuàng)建,創(chuàng)建車(chē)主信息表對(duì)表內(nèi)容的屬性設(shè)置,車(chē)牌號(hào)碼,車(chē)主的姓名,籍貫,車(chē)輛類(lèi)型,性別,證件號(hào),車(chē)主年齡,發(fā)證日期,證件有效期,出生日期。數(shù)據(jù)的屬性車(chē)主信息表設(shè)計(jì)視圖如圖3-23所示。
圖3-23車(chē)主信息表設(shè)計(jì)視圖
華北水利水電大學(xué)畢業(yè)設(shè)計(jì)
這里出生日期文本里邊日期可以輸入掩碼顯示格式,點(diǎn)擊輸入掩碼后邊彈出窗體,選擇長(zhǎng)日期下一步即可設(shè)定提起掩碼。輸入掩碼圖如圖3-24所示。
圖3-24輸入掩碼圖
經(jīng)過(guò)數(shù)據(jù)屬性的設(shè)計(jì),對(duì)數(shù)據(jù)進(jìn)行錄入之后車(chē)主信息表的數(shù)據(jù)表,數(shù)據(jù)表視圖如圖3-25所示。
圖3-25數(shù)據(jù)表視圖
3.4.2車(chē)主信息窗體設(shè)計(jì)
車(chē)主信息窗體主的控件布局視圖,車(chē)主信息窗體設(shè)計(jì)視圖如圖3-26所示。
圖3-26車(chē)主信息窗體設(shè)計(jì)視圖
車(chē)主信息窗體包括十個(gè)標(biāo)簽控件,十個(gè)文本控件,六個(gè)按鈕控件,一個(gè)ADO控件,一個(gè)DataGrid控件。
選擇Form窗體在屬性中把Caption改為車(chē)輛信息管理系統(tǒng)。
標(biāo)簽控件Label1屬性中Caption 后邊改為車(chē)牌號(hào),標(biāo)簽控件Label2屬性中Caption 后邊改為車(chē)牌類(lèi)型,標(biāo)簽控件Label3屬性中Caption 后邊改為性別, 標(biāo)簽控件Label屬性
華北水利水電大學(xué)畢業(yè)設(shè)計(jì)
中Caption 后邊改為籍貫,標(biāo)簽控件Label5屬性中Caption 后邊改為車(chē)主姓名,標(biāo)簽控件Label6屬性中Caption 后邊改為證件有效期,標(biāo)簽控件Label7屬性中Caption 后邊改為駕駛年齡,標(biāo)簽控件Label8屬性中Caption 后邊改為證件號(hào),標(biāo)簽控件Label9屬性中Caption 后邊改為出生日期,標(biāo)簽控件Label10屬性中Caption 后邊改為發(fā)證日期,公共屬性Font字體設(shè)置為宋體2號(hào)字體,Alignment設(shè)置為2-Center,Autosize設(shè)置為T(mén)rue.BackStyle選擇為0-Transparent.文本控件Text1對(duì)應(yīng)車(chē)牌號(hào)標(biāo)簽,文本控件Text2對(duì)應(yīng)車(chē)輛類(lèi)型標(biāo)簽,文本控件Text3對(duì)應(yīng)車(chē)主姓名標(biāo)簽,文本控件Text4對(duì)應(yīng)性別標(biāo)簽,文本控件Text5對(duì)應(yīng)出生日期標(biāo)簽,文本控件Text6對(duì)應(yīng)證件有效期標(biāo)簽,文本控件Text7對(duì)應(yīng)籍貫標(biāo)簽,文本控件Text8對(duì)應(yīng)駕駛年齡標(biāo)簽,文本控件Text9對(duì)應(yīng)發(fā)證日期標(biāo)簽,文本控件Text10對(duì)應(yīng)證件號(hào)標(biāo)簽。公用屬性設(shè)置中把Text對(duì)應(yīng)的名字刪除,字體選擇宋體常規(guī)三號(hào)字體。
按鈕控件Command1屬性中Caption 后邊改為查詢(xún), 按鈕控件Command2屬性中Caption 后邊改為返回 ,公用屬性Font字體設(shè)置為宋體三號(hào)字體。
按鈕控件Command3屬性中Caption 后邊改為添加 按鈕控件Command4屬性中Caption 后邊改為修改 ,按鈕控件Command5屬性中Caption 后邊改為刪除,按鈕控件Command6屬性中Caption 后邊改為返回 ,公用屬性Font字體設(shè)置為宋體三號(hào)字體。Visible設(shè)置為False。Style設(shè)置1-Graphical,BackColor可以設(shè)置想要的顏色。
車(chē)主,年檢,保險(xiǎn),違章,事故。六個(gè)按鈕控件屬性設(shè)置是相同的其他窗體出現(xiàn)不再贅述。標(biāo)簽控件和文本控件的公用屬性相同在其他窗體不再贅述。
ADO控件的操作與上邊的數(shù)據(jù)連接操作相同只有表記錄選擇改變,ADO控件記錄選擇車(chē)主屬性頁(yè)如圖3-27所示。
華北水利水電大學(xué)畢業(yè)設(shè)計(jì)
圖3-27車(chē)主屬性頁(yè)
3.5年檢信息管理窗體
3.5.1年檢信息表
年檢信息:包括從購(gòu)車(chē)到現(xiàn)在所有的年間信息,年檢信息E-R圖如圖3-28所示。
圖3-28年檢信息E-R圖
年檢記錄表的設(shè)計(jì)為文本屬性,年檢記錄表設(shè)計(jì)視圖如圖3-29所示。
圖3-29年檢記錄表設(shè)計(jì)視圖
年檢記錄的數(shù)據(jù)輸入之后,年檢記錄數(shù)據(jù)表視圖如圖3-30所示。
圖3-30年檢記錄數(shù)據(jù)表視圖
華北水利水電大學(xué)畢業(yè)設(shè)計(jì)
3.5.2年檢記錄窗體設(shè)計(jì)
年檢記錄窗體的控件布局,年檢記錄窗體設(shè)計(jì)視圖如圖3-31所示。
圖3-31年檢記錄窗體設(shè)計(jì)視圖
年檢信息窗體包括七個(gè)標(biāo)簽控件,七個(gè)文本控件,六個(gè)按鈕控件,一個(gè)ADO控件,一個(gè)DataGrid控件。
選擇Form窗體在屬性中把Caption改為年檢記錄。
標(biāo)簽控件Label1屬性中Caption 后邊改為車(chē)牌號(hào),標(biāo)簽控件Label2屬性中Caption 后邊改為檢查日期,標(biāo)簽控件Label3屬性中Caption 后邊改為檢查日期,標(biāo)簽控件Label4屬性中Caption 后邊改為檢查日期,標(biāo)簽控件Label5屬性中Caption 后邊改為備注,標(biāo)簽控件Label6屬性中Caption 后邊改為備注,標(biāo)簽控件Label7屬性中Caption后邊 改為備注。
文本控件Text1對(duì)應(yīng)車(chē)牌號(hào)標(biāo)簽,文本控件Text2對(duì)應(yīng)檢查日期標(biāo)簽,文本控件Text3對(duì)應(yīng)檢查日期標(biāo)簽,文本控件Text4對(duì)應(yīng)檢查日期標(biāo)簽,文本控件Text5對(duì)應(yīng)備注標(biāo)簽,文本控件Text6對(duì)應(yīng)備注標(biāo)簽,文本控件Text7對(duì)應(yīng)備注標(biāo)簽。
ADO控件的操作與上邊的數(shù)據(jù)連接操作相同只有表記錄選擇改變,ADO控件記錄選擇年檢屬性頁(yè)如圖3-32所示。
華北水利水電大學(xué)畢業(yè)設(shè)計(jì)
圖3-32年檢屬性頁(yè)
3.6事故信息管理窗體
3.6.1事故信息表
事故信息:包括事故的時(shí)間,地點(diǎn),原因。對(duì)方姓名,對(duì)方的車(chē)號(hào),處理方式,責(zé)任認(rèn)定等信息。事故信息E-R圖如圖3-33所示。
圖3-33事故信息E-R圖
事故信息的數(shù)據(jù)屬性設(shè)置,事故信息設(shè)計(jì)視圖如圖3-34所示。
圖3-34事故信息設(shè)計(jì)視圖
華北水利水電大學(xué)畢業(yè)設(shè)計(jì)
事故信息輸入數(shù)據(jù),事故信息數(shù)據(jù)表視圖如圖3-35所示。
圖3-35事故信息數(shù)據(jù)表視圖
3.6.2事故信息窗體設(shè)計(jì)
事故窗體的控件布局,事故窗體設(shè)計(jì)視圖如圖3-36所示。
圖3-36事故窗體設(shè)計(jì)視圖
事故信息窗體包括九個(gè)標(biāo)簽控件,九個(gè)文本控件,六個(gè)按鈕控件,一個(gè)ADO控件,一個(gè)DataGrid控件。
選擇Form窗體在屬性中把Caption改為事故記錄。
標(biāo)簽控件Label1屬性中Caption 后邊改為車(chē)牌號(hào),標(biāo)簽控件Label2屬性中Caption 后邊改為事故時(shí)間,標(biāo)簽控件Label3屬性中Caption 后邊改為事故地點(diǎn),標(biāo)簽控件Label4屬性中Caption后邊改為事故原因,標(biāo)簽控件Label5屬性中Caption 后邊改為對(duì)方車(chē)號(hào),標(biāo)簽控件Label6屬性中Caption 后邊改為對(duì)方姓名,標(biāo)簽控件Label7屬性中Caption 后邊改為處理方式,標(biāo)簽控件Label8屬性中Caption后邊 改為責(zé)任認(rèn)定,標(biāo)簽控件Label9屬性中Caption后邊改為賠付內(nèi)容, 文本控件Text1對(duì)應(yīng)車(chē)牌號(hào)標(biāo)簽,文本控件Text2對(duì)應(yīng)事故時(shí)間標(biāo)簽,文本控件Text3對(duì)應(yīng)事故地點(diǎn)標(biāo)簽,文本控件Text4對(duì)應(yīng)事故原因標(biāo)簽,文本控件Text5對(duì)應(yīng)對(duì)方車(chē)號(hào)標(biāo)簽,文本控件Text6對(duì)應(yīng)對(duì)方姓名標(biāo)簽,文本控件Text7對(duì)應(yīng)處理方式標(biāo)簽,文本控件Text8對(duì)應(yīng)責(zé)任認(rèn)定標(biāo)簽,文本控件Text9對(duì)應(yīng)賠付內(nèi)容標(biāo)簽。
華北水利水電大學(xué)畢業(yè)設(shè)計(jì)
ADO控件的操作與上邊的數(shù)據(jù)連接操作相同只有表記錄選擇改變,ADO控件記錄選擇事故屬性頁(yè)如圖3-37所示。
圖3-37事故屬性頁(yè)
3.7違章信息管理窗體
3.7.1違章信息表
違章信息:包括違章的原因,處罰,時(shí)間,扣分情況,處理情況等等均在本模塊顯示。違章信息E-R圖如圖3-38所示:
圖3-38違章信息E-R圖
違章信息的數(shù)據(jù)屬性設(shè)置,違章信息表設(shè)計(jì)視圖如圖3-39所示。
圖3-39違章信息表設(shè)計(jì)視圖
違章信息輸入數(shù)據(jù)后數(shù)據(jù)表視圖,違章信息數(shù)據(jù)表視圖如圖3-40所示。
華北水利水電大學(xué)畢業(yè)設(shè)計(jì)
圖3-40違章信息數(shù)據(jù)表視圖
3.7.2違章信息窗體設(shè)計(jì)
違章信息窗體的控件布局設(shè)置,違章信息窗體設(shè)計(jì)視圖如圖3-41所示。
圖3-41違章信息窗體設(shè)計(jì)視圖
違章信息窗體包括六個(gè)標(biāo)簽控件,六個(gè)文本控件,六個(gè)按鈕控件,一個(gè)ADO控件,一個(gè)DataGrid控件。
選擇Form窗體在屬性中把Caption改為違章記錄。
標(biāo)簽控件Label1屬性中Caption 后邊改為車(chē)牌號(hào),標(biāo)簽控件Label2屬性中Caption 后邊改為違章原因,標(biāo)簽控件Label3屬性中Caption 后邊改為違章時(shí)間,標(biāo)簽控件Label4屬性中Caption 后邊改為處罰,標(biāo)簽控件Label5屬性中Caption 后邊改為扣分,標(biāo)簽控件Label6屬性中Caption 后邊改為備注, 文本控件Text1對(duì)應(yīng)車(chē)牌號(hào)標(biāo)簽,文本控件Text2對(duì)應(yīng)違章原因標(biāo)簽,文本控件Text3對(duì)應(yīng)違章時(shí)間標(biāo)簽,文本控件Text4對(duì)應(yīng)處罰標(biāo)簽,文本控件Text5對(duì)應(yīng)扣分標(biāo)簽,文本控件Text6對(duì)應(yīng)備注標(biāo)簽。
華北水利水電大學(xué)畢業(yè)設(shè)計(jì)
ADO控件的操作與上邊的數(shù)據(jù)連接操作相同只有表記錄選擇改變,ADO控件記錄選擇,違章屬性頁(yè)如圖3-42所示。
圖3-42違章屬性頁(yè)
3.8保險(xiǎn)信息管理窗體
3.8.1保險(xiǎn)信息表
保險(xiǎn)信息:這里主要包括了保險(xiǎn)日期,類(lèi)型,備注生效情況。保險(xiǎn)信息E-R圖如圖3-43所示。
圖3-43保險(xiǎn)信息E-R圖
保險(xiǎn)信息表數(shù)據(jù)屬性的設(shè)置,保險(xiǎn)信息表設(shè)計(jì)視圖如圖3-44所示。
華北水利水電大學(xué)畢業(yè)設(shè)計(jì)
圖3-44保險(xiǎn)信息設(shè)計(jì)視圖
數(shù)據(jù)屬如之后的數(shù)據(jù)表視圖,數(shù)據(jù)表視圖如圖3-45所示。
圖3-45數(shù)據(jù)表視圖
3.8.2保險(xiǎn)信息查詢(xún)窗體設(shè)計(jì)
保險(xiǎn)信息窗體的控件布局設(shè)置視圖,保險(xiǎn)信息設(shè)計(jì)視圖如圖3-46所示。
圖3-46保險(xiǎn)信息設(shè)計(jì)視圖
保險(xiǎn)信息窗體包括四個(gè)標(biāo)簽控件,四個(gè)文本控件,六個(gè)按鈕控件,一個(gè)ADO控件,一個(gè)DataGrid控件。
選擇Form窗體在屬性中把Caption改為保險(xiǎn)記錄。
標(biāo)簽控件Label1屬性中Caption 后邊改為車(chē)牌號(hào),標(biāo)簽控件Label2屬性中Caption 后邊改為保險(xiǎn)日期,標(biāo)簽控件Label3屬性中Caption 后邊改為保險(xiǎn)類(lèi)型,標(biāo)簽控件Label4屬性中Caption 后邊改為備注, 文本控件Text1對(duì)應(yīng)車(chē)牌號(hào)標(biāo)簽,文本控件Text2對(duì)應(yīng)保險(xiǎn)日期標(biāo)簽,文本控件Text3對(duì)應(yīng)保險(xiǎn)類(lèi)型標(biāo)簽,文本控件Text4對(duì)應(yīng)備注標(biāo)簽。
華北水利水電大學(xué)畢業(yè)設(shè)計(jì)
ADO控件的操作與上邊的數(shù)據(jù)連接操作相同只有表記錄選擇改變,ADO控件記錄選擇保險(xiǎn)屬性頁(yè)如圖3-47所示。
圖3-47保險(xiǎn)屬性頁(yè)
華北水利水電大學(xué)畢業(yè)設(shè)計(jì)
第四章系統(tǒng)的具體實(shí)現(xiàn)與結(jié)論
通過(guò)第三章的設(shè)計(jì)和制作,車(chē)輛信息管理系統(tǒng)以設(shè)計(jì)完成?,F(xiàn)在進(jìn)行系統(tǒng)功能的演示。本章重點(diǎn):對(duì)軟件調(diào)試,生成應(yīng)用程序,程序功能的演示與注釋。
4.1軟件調(diào)試
打開(kāi)工程之后,點(diǎn)擊任務(wù)欄上的運(yùn)行,啟動(dòng)進(jìn)行程序調(diào)試圖如圖4-1所示。
圖4-1調(diào)試圖
當(dāng)所有程序運(yùn)行正常時(shí)。點(diǎn)擊任務(wù)欄的運(yùn)行結(jié)束運(yùn)行,點(diǎn)擊文件下拉列表里邊有生成應(yīng)用程序。保存文件名稱(chēng)為車(chē)輛信息管理系統(tǒng),保存到桌面成工程界面如圖4-2生所示。
華北水利水電大學(xué)畢業(yè)設(shè)計(jì)
圖4-2生成工程界面
生成桌面應(yīng)用程序桌面圖如圖4-3所示,到此設(shè)計(jì)全部完成。
圖4-3桌面圖
4.2系統(tǒng)演示
4.2.1系統(tǒng)注冊(cè)與登錄
1,系統(tǒng)注冊(cè)演示:打開(kāi)車(chē)輛信息管理應(yīng)用程序,點(diǎn)擊注冊(cè)按鈕即可進(jìn)入系統(tǒng)注冊(cè)窗體如圖4-4所示。通過(guò)注冊(cè)窗體用戶可以注冊(cè)新用戶使用本系統(tǒng),點(diǎn)擊注冊(cè)會(huì)有注冊(cè)成功的提示并且跳轉(zhuǎn)到登錄窗體,返回可以返回到登錄窗體。
華北水利水電大學(xué)畢業(yè)設(shè)計(jì)
圖4-4系統(tǒng)注冊(cè)窗體
2,系統(tǒng)登錄演示:打開(kāi)車(chē)輛信息管理程序首先是系統(tǒng)登陸窗體,登錄窗體實(shí)現(xiàn)對(duì)帳號(hào)密碼的判定,如果輸入為空則提示重新輸入,登錄成功若是普通用戶即進(jìn)入普通用戶窗體,若是管理員用戶則進(jìn)入管理員窗體。注冊(cè)按鈕可以進(jìn)入注冊(cè)窗體。系統(tǒng)登陸窗體如圖4-5所示。
圖4-5系統(tǒng)登陸窗體
4.2.2普通用戶窗體
普通用戶登陸進(jìn)入普通用戶窗體,該窗體有菜單欄按鈕,包括車(chē)主信息,年檢記錄,保險(xiǎn)記錄,事故記錄,違章記錄,退出系統(tǒng)選項(xiàng)。可以進(jìn)入對(duì)應(yīng)的窗體,退出系統(tǒng)可退出系統(tǒng)。界面上的車(chē)主信息按鈕可以進(jìn)入車(chē)主信息查詢(xún)窗體,年檢記錄按鈕可以進(jìn)入年
華北水利水電大學(xué)畢業(yè)設(shè)計(jì)
檢記錄查詢(xún)窗體,保險(xiǎn)記錄可以進(jìn)入保險(xiǎn)記錄查詢(xún)窗體,事故記錄按鈕可以進(jìn)入事故記錄查詢(xún)按鈕,違章記錄按鈕可以進(jìn)圖違章記錄查詢(xún)窗體,退出按鈕就是退出程序,普通用戶窗體運(yùn)行圖如圖4-6所示。
圖4-6普通用戶窗體
車(chē)主信息查詢(xún)窗體可以對(duì)車(chē)輛的類(lèi)型,車(chē)主姓名,性別,籍貫,出生日期,證件號(hào),發(fā)證日期,證件有效期,駕駛年齡等信息進(jìn)行查詢(xún)。車(chē)主信息查詢(xún)窗體運(yùn)行程序如圖4-7所示。
華北水利水電大學(xué)畢業(yè)設(shè)計(jì)
圖4-7車(chē)主信息查詢(xún)窗體
年檢記錄查詢(xún)窗體可以對(duì)車(chē)輛近幾年的年檢記錄日期和備注信息進(jìn)行查詢(xún),年檢記錄查詢(xún)窗體運(yùn)行程序如圖4-8所示。
圖4-8年檢記錄查詢(xún)窗體
保險(xiǎn)記錄查詢(xún)窗體可以對(duì)車(chē)輛的保險(xiǎn)日期,保險(xiǎn)類(lèi)型,保險(xiǎn)備注信息進(jìn)行查詢(xún)。保險(xiǎn)記錄查詢(xún)窗體運(yùn)行程序如圖4-9所示。
華北水利水電大學(xué)畢業(yè)設(shè)計(jì)
圖4-9保險(xiǎn)記錄查詢(xún)窗體
事故記錄查詢(xún)窗體可以對(duì)車(chē)輛的事故時(shí)間,地點(diǎn),原因,對(duì)方車(chē)號(hào),對(duì)方姓名,處理方式,責(zé)任認(rèn)定,賠付內(nèi)容進(jìn)行查詢(xún)。事故記錄查詢(xún)窗體運(yùn)行程序如圖4-10所示。
圖4-10事故記錄查詢(xún)窗體
違章記錄查詢(xún)窗體可以對(duì)車(chē)輛的違章原因,時(shí)間,處罰,扣分,備注信息查詢(xún)。違章記錄查詢(xún)窗體程序運(yùn)行如圖4-11所示。
華北水利水電大學(xué)畢業(yè)設(shè)計(jì)
圖4-11違章記錄查詢(xún)窗體
4.2.3管理員窗體
管理員登錄管理員窗體。管理員窗體有菜單欄按鈕,包括車(chē)主信息管理,年檢記錄管理,保險(xiǎn)記錄管理,事故記錄管理,違章記錄管理,用戶信息管理,界面切換管理,退出系統(tǒng)選項(xiàng)。可以進(jìn)入對(duì)應(yīng)的窗體,退出系統(tǒng)可退出系統(tǒng)。界面上的車(chē)主信息管理按鈕可以進(jìn)入車(chē)主信息管理窗體,年檢記錄管理按鈕可以進(jìn)入年檢記錄管理窗體,保險(xiǎn)記錄管理可以進(jìn)入保險(xiǎn)記錄管理窗體,事故記錄管理按鈕可以進(jìn)入事故記錄管理按鈕,違章記錄管理按鈕可以進(jìn)圖違章記錄管理窗體,切換普通界面就是切換至普通用戶窗體,管理員窗體視圖窗體程序運(yùn)行如圖4-12所示。
圖4-12管理員窗體
華北水利水電大學(xué)畢業(yè)設(shè)計(jì)
車(chē)主信息管理窗體可以對(duì)車(chē)輛的類(lèi)型,車(chē)主姓名,性別,籍貫,出生日期,證件號(hào),發(fā)證日期,證件有效期,駕駛年齡等信息進(jìn)行查詢(xún),修改,添加和刪除操作。車(chē)主信息管理窗體程序運(yùn)行如圖如圖4-13所示。
圖4-13車(chē)主信息管理窗體
年檢記錄管理窗體可以對(duì)對(duì)車(chē)輛近幾年的年檢記錄日期和備注信息進(jìn)行查詢(xún),添加修改和刪除操作,年檢記錄管理窗體運(yùn)行程序如圖4-14所示。
圖4-14年檢記錄管理窗體
保險(xiǎn)記錄管理窗體可以對(duì)車(chē)輛的保險(xiǎn)日期,保險(xiǎn)類(lèi)型,保險(xiǎn)備注信息進(jìn)行查詢(xún),添加,修改,刪除操作。保險(xiǎn)記錄管理窗體運(yùn)行程序如圖4-15所示。
華北水利水電大學(xué)畢業(yè)設(shè)計(jì)
圖4-15保險(xiǎn)記錄管理窗體
事故記錄管理窗體可以對(duì)車(chē)輛的事故時(shí)間,地點(diǎn),原因,對(duì)方車(chē)號(hào),對(duì)方姓名,處理方式,責(zé)任認(rèn)定,賠付內(nèi)容進(jìn)行查詢(xún),添加,修改,刪除操作。事故記錄管理窗體程序運(yùn)行如圖4-16所示。
圖4-16事故記錄管理窗體
違章記錄管理窗體可以對(duì)車(chē)輛的違章原因,時(shí)間,處罰,扣分,備注信息查詢(xún),添加,修改和刪除操作。違章記錄管理窗體程序運(yùn)行如圖4-17所示。
華北水利水電大學(xué)畢業(yè)設(shè)計(jì)
圖4-17違章記錄管理窗體
用戶信息管理窗體可以對(duì)用戶的信息進(jìn)行查詢(xún),設(shè)置管理員,刪除用戶操作。用戶信息管理窗體程序運(yùn)行如圖4-18所示。
圖4-18用戶信息管理窗體
華北水利水電大學(xué)畢業(yè)設(shè)計(jì)
華北水利水電大學(xué)畢業(yè)設(shè)計(jì)
第五章結(jié)論
本次設(shè)計(jì)是車(chē)輛信息管理系統(tǒng)的設(shè)計(jì),車(chē)輛信息管理系統(tǒng)是對(duì)車(chē)輛信息信息進(jìn)行有效的管理的最高效的處理工具。信息管理學(xué)系統(tǒng)發(fā)展到今天,其技術(shù)已經(jīng)成熟。但是對(duì)于我們還沒(méi)踏出校門(mén)的大學(xué)生來(lái)說(shuō)。其中的設(shè)計(jì)思想還是值得我們?nèi)W(xué)習(xí)和研究的。
對(duì)于本設(shè)計(jì)的車(chē)輛信息管理系統(tǒng)來(lái)說(shuō),其特點(diǎn)是管理信息覆蓋所有車(chē)輛相關(guān)的信息,系統(tǒng)的整體設(shè)計(jì)條理清晰,分層次分模塊設(shè)計(jì)。三個(gè)層次登錄,主窗體,子查詢(xún)窗體和子管理窗體。登錄部分包括登錄和注冊(cè),主窗體部分包括普通用戶窗體和管理員窗體。子查詢(xún)窗體包括普通用戶可以對(duì)車(chē)輛的相關(guān)信息進(jìn)行查詢(xún),子管理窗體可以對(duì)信息進(jìn)行處理操作。五個(gè)模塊分別是車(chē)主信息,年檢信息,違章信息,事故信息,保險(xiǎn)信息。另外我還在各個(gè)窗體上添加了時(shí)間的顯示控件,可以讓我們使用程序可以很方便的看到時(shí)間,除了在文本控件中顯示信息之外,我還在窗體控件中添加了表格。在我們進(jìn)行查詢(xún)和修改時(shí)可以更加的直觀去了解車(chē)輛相關(guān)信息。
緊張忙碌的畢業(yè)設(shè)計(jì)已經(jīng)接近尾聲,我所設(shè)計(jì)的車(chē)輛信息管理系統(tǒng)也已經(jīng)完成。經(jīng)過(guò)這次畢業(yè)設(shè)計(jì)我發(fā)現(xiàn)信息管理系統(tǒng)是通用的,不僅僅是車(chē)輛信息管理對(duì)于以后我們進(jìn)入公司也可以制作相應(yīng)員工信息管理系統(tǒng),進(jìn)出場(chǎng)物料信息管理系統(tǒng)等等。都可以稍加更改即可開(kāi)發(fā)成功。另外本系統(tǒng)還可以與車(chē)牌號(hào)識(shí)別系統(tǒng)進(jìn)行結(jié)合做成小型社區(qū)門(mén)禁系統(tǒng)。在小型社區(qū)車(chē)輛信息管理方面能得到廣泛的應(yīng)用。但是由于畢業(yè)設(shè)計(jì)的時(shí)間較短,用戶界面還不夠完美,系統(tǒng)的反應(yīng)速度不是很快。開(kāi)始設(shè)計(jì)資料查找出錯(cuò)浪費(fèi)了好多時(shí)間,這些在以后的工作中都要避免。
經(jīng)過(guò)本次為期半年的畢業(yè)設(shè)計(jì),使自主學(xué)習(xí)的能力有了很大的提升,并且與同學(xué)之間的團(tuán)結(jié)協(xié)作能力也有了很大的提高。我相信在以后的工作當(dāng)中,我一定可以吧所學(xué)的知識(shí)融入到工作當(dāng)中去,理論聯(lián)系實(shí)踐。把所學(xué)的理論知識(shí)充分的發(fā)揮,學(xué)以致用。為社會(huì)主義的建設(shè)貢獻(xiàn)自己的一份力量。
華北水利水電大學(xué)畢業(yè)設(shè)計(jì)
華北水利水電大學(xué)畢業(yè)設(shè)計(jì)
參考文獻(xiàn)
[1]:王世迪.Visual Basic程序設(shè)計(jì)教程[M].重慶:重慶大學(xué)出版社,2002.26-106 [2]:蔡翠平.Visual Basic程序設(shè)計(jì)[M].北京:清華大學(xué)出版社,2002.1-24 [3]:任芳芳,姚建軍,陳江等.圖解精通ACCESS2007中文版[M].北京:中國(guó)水利水電出版社,2008.26-28 [4]:明日科技.Visual Basic管理信息系統(tǒng)完整項(xiàng)目實(shí)例剖析[M].北京:人民郵電出版社,2006.36-48 [5]:白鵬.Visual Basic編程實(shí)例與技巧[M].北京:科學(xué)出版社,2003.48-58 [6]:李言照.Visual Basic 程序設(shè)計(jì)教程[M].北京:中國(guó)農(nóng)業(yè)出版社,2007.70-104 [7]:李雁翎.Visual Basic程序設(shè)計(jì) [M].北京:清華大學(xué)出版社,2005.60-90 [8]:羅朝盛.Visual Basic 6.0程序設(shè)計(jì)教程[M].北京:人民郵電出版社,2005.50-70 [9]:唐大仕.Visual Basic 程序設(shè)計(jì)[M].北京:清華大學(xué)出版社,2004.20-50 [10]:王樵民.ACCESS2003數(shù)據(jù)庫(kù)開(kāi)發(fā)典型范例[M].北京:人民郵電出版社,2006.40-80
華北水利水電大學(xué)畢業(yè)設(shè)計(jì)
華北水利水電大學(xué)畢業(yè)設(shè)計(jì)
致謝
為期一個(gè)學(xué)期的畢業(yè)設(shè)計(jì)即將就要結(jié)束了。在本次畢業(yè)設(shè)計(jì)中,我從指導(dǎo)老師張濤老師身上學(xué)到了很多東西。他循循善誘的指導(dǎo)給予我很大的啟迪,他在學(xué)習(xí)工作中嚴(yán)謹(jǐn)細(xì)致,一絲不茍的工作作風(fēng)將一直是我學(xué)習(xí)的榜樣。張濤老師認(rèn)真負(fù)責(zé)的工作態(tài)度,嚴(yán)謹(jǐn)?shù)闹螌W(xué)精神更和深厚的理論水平都使我受益頗深。無(wú)論在理論還是實(shí)踐上都給予我很大的幫助,讓我得到了很大的提高。這對(duì)我以后的工作和學(xué)習(xí)都是巨大的幫主,感謝他耐心的指導(dǎo),及華北水水電大學(xué)為我們提供的設(shè)計(jì)環(huán)境。并感謝我們一組的其他同學(xué)從他們身上我學(xué)到了很多東西并且培養(yǎng)團(tuán)隊(duì)合作的精神。最后我還要感謝我的父母是他們一直在背后默默地支持我。畢業(yè)設(shè)計(jì)做為大學(xué)的最后一個(gè)教學(xué)環(huán)節(jié)。是對(duì)我們動(dòng)手實(shí)踐能力,理論結(jié)合實(shí)踐的能力一個(gè)很好的檢驗(yàn)方法。在這次的畢業(yè)設(shè)計(jì)過(guò)程中,我通過(guò)自己的努力學(xué)習(xí),在老師的細(xì)心指導(dǎo)下,加上本小組同學(xué)的探討。讓我不僅在知識(shí)水平和解決實(shí)際問(wèn)題的能力上有了很大的提高,認(rèn)識(shí)到綜合掌握知識(shí)和合理運(yùn)用知識(shí)解決實(shí)際問(wèn)題的重要性。