畢業(yè)設(shè)計(jì)-房屋租賃管理系統(tǒng)_第1頁(yè)
畢業(yè)設(shè)計(jì)-房屋租賃管理系統(tǒng)_第2頁(yè)
畢業(yè)設(shè)計(jì)-房屋租賃管理系統(tǒng)_第3頁(yè)
畢業(yè)設(shè)計(jì)-房屋租賃管理系統(tǒng)_第4頁(yè)
畢業(yè)設(shè)計(jì)-房屋租賃管理系統(tǒng)_第5頁(yè)
已閱讀5頁(yè),還剩106頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

畢業(yè)設(shè)計(jì)-房屋租賃管理系統(tǒng)LTPAGEPAGE45屆XXXX班畢業(yè)論文存檔編號(hào):XX大學(xué)畢業(yè)論文題目房屋租賃管理系統(tǒng)專業(yè):計(jì)算機(jī)科學(xué)與技術(shù)年級(jí):2002學(xué)號(hào):200000000000論文作者:XXX指導(dǎo)教師:XXX職稱:教授XX大學(xué)計(jì)算機(jī)學(xué)院制完成時(shí)間:2006年03月20日摘要隨著我國(guó)市場(chǎng)經(jīng)濟(jì)的快速發(fā)展和人們生活水平的不斷提高,簡(jiǎn)單的租憑服務(wù)已經(jīng)不能滿足人們的需求。如何利用先進(jìn)的管理手段,提高房屋租憑管理水平,是當(dāng)今社會(huì)所面臨的一個(gè)重要課題。本文通過(guò)用VB6.0編寫房屋租賃管理系統(tǒng),利用軟件工程原理,采用面向?qū)ο蟮木幊谭椒?,其開(kāi)發(fā)主要包括后臺(tái)數(shù)據(jù)庫(kù)的建立和維護(hù)以及前端應(yīng)用程序的開(kāi)發(fā)兩個(gè)方面,實(shí)現(xiàn)了房屋租賃管理的自動(dòng)化和信息化.整個(gè)系統(tǒng)從符合操作簡(jiǎn)便、界面友好、靈活、實(shí)用、安全的要求出發(fā),完成基本資料管理、客戶資料管理、租憑合同管理、財(cái)務(wù)管理、統(tǒng)計(jì)報(bào)表管理等功能.經(jīng)過(guò)實(shí)際測(cè)試證明,本文所設(shè)計(jì)的房屋租賃管理系統(tǒng)可以用于物業(yè)管理部門從第一章序論1.1課題來(lái)源隨著我國(guó)市場(chǎng)經(jīng)濟(jì)的快速發(fā)展和信息化水平的不斷提高,如何利用先進(jìn)的管理手段,提高物業(yè)管理的水平,是當(dāng)今社會(huì)所面臨的一個(gè)課題。提高企業(yè)的管理水平,必須全方位地提高企業(yè)的管理意識(shí)。只有高標(biāo)準(zhǔn)、高質(zhì)量的管理才能滿足企業(yè)的發(fā)展需求。面對(duì)信息時(shí)代的挑戰(zhàn),利用高科技手段來(lái)提高房屋租賃管理無(wú)疑是一條行之有效的途徑。在某種意義上,信息與科技在企業(yè)管理與現(xiàn)代化建設(shè)中顯現(xiàn)出越來(lái)越重要的地位。房租租賃管理方面的信息化與科學(xué)化,已成為現(xiàn)代化生活水平步入高臺(tái)階的重要標(biāo)志。隨著計(jì)算機(jī)技術(shù)不斷的飛速發(fā)展,計(jì)算機(jī)以及計(jì)算機(jī)控制的自動(dòng)處理技術(shù)已融入人類社會(huì)的各個(gè)領(lǐng)域并發(fā)揮著越來(lái)越重要的作用。對(duì)于當(dāng)今的科學(xué)信息是一次重大的飛越,為人們的生活、工作、學(xué)習(xí)帶來(lái)潛移默化的影響。今天我們使用計(jì)算機(jī)對(duì)房屋租賃信息進(jìn)行管理,具有手工管理所無(wú)法比擬的優(yōu)點(diǎn)。例如:檢索迅速、查找方便、可靠性高、存儲(chǔ)量大、保密性好、壽命長(zhǎng)、成本低等。這些優(yōu)點(diǎn)能夠極大地提高房屋租賃管理的效率。面對(duì)目前的實(shí)際狀況,迫切需要開(kāi)發(fā)一個(gè)新系統(tǒng)來(lái)適應(yīng)這一些工作.1.2開(kāi)發(fā)背景和開(kāi)發(fā)目的利用計(jì)算機(jī)實(shí)現(xiàn)物業(yè)管理中的房屋租賃管理勢(shì)在必行。對(duì)于物業(yè)管理企業(yè)來(lái)說(shuō),利用計(jì)算機(jī)支持企業(yè)高效率完成房屋租賃管理的日常事務(wù),是適應(yīng)現(xiàn)代企業(yè)制度要求、推動(dòng)企業(yè)勞動(dòng)型管理走向科學(xué)化、規(guī)范化的必要條件;而房屋租賃管理是一項(xiàng)瑣碎、復(fù)雜而又十分細(xì)致的工作,房屋的基本資料,客戶資料的管理,房屋租賃管理,各項(xiàng)收費(fèi)以及統(tǒng)計(jì)報(bào)表的管理,一般不允許出錯(cuò),如果實(shí)行手工操作,須手工填制大量的表格,這就會(huì)耗費(fèi)工作人員大量的時(shí)間和精力,計(jì)算機(jī)進(jìn)行房屋租賃工作的管理,不僅能夠保證各項(xiàng)信息準(zhǔn)確無(wú)誤、快速輸出,同時(shí)計(jì)算機(jī)具有手工管理所無(wú)法比擬的優(yōu)點(diǎn).例如:檢索迅速、查找方便、可靠性高、存儲(chǔ)量大、保密性好、壽命長(zhǎng)、成本低等。這些優(yōu)點(diǎn)能夠極大地提高物業(yè)管理的效率,也是企業(yè)的科學(xué)化、正規(guī)化管理,與世界接軌的重要條件。開(kāi)發(fā)本系統(tǒng)就是為了解決物業(yè)管理企業(yè)在房屋租賃信息管理中的一些不規(guī)范,使房屋租賃信息的管理向著規(guī)范化、簡(jiǎn)單化、有效化的方向發(fā)展。1.3可行性分析1.3.1經(jīng)濟(jì)可行性分析 本系統(tǒng)開(kāi)發(fā)簡(jiǎn)單但要耗去一定的時(shí)間,所用的開(kāi)發(fā)工具和軟件都差不多是免費(fèi)的。而且,由于系統(tǒng)能夠在未來(lái)較長(zhǎng)的一段時(shí)期內(nèi)穩(wěn)定地發(fā)揮作用,這對(duì)于學(xué)生房屋租賃信息的自動(dòng)化管理,稱業(yè)管理企業(yè)的人力和財(cái)力都有很大的幫助。由此可見(jiàn)在,開(kāi)發(fā)此系統(tǒng)在經(jīng)濟(jì)上是完全可行的。1.3.2操作可行性分析 如今的計(jì)算機(jī)已經(jīng)走進(jìn)千家萬(wàn)戶,硬件成本的下降,導(dǎo)致計(jì)算機(jī)購(gòu)買成本的降低.我的這套系統(tǒng)是利用自己的計(jì)算機(jī)加MicrosoftVisualFoxPro6.0作為軟件的開(kāi)發(fā)平臺(tái),使開(kāi)發(fā)出來(lái)的系統(tǒng)有友好的用戶界面、有良好的安全性設(shè)置、有詳細(xì)的操作說(shuō)明書,這樣更使各類用戶很快地掌握系統(tǒng)的使用方法,操作友好因此在操作上是可行的.1.3.3技術(shù)可行性分析 從目前IT業(yè)界比較流行的數(shù)據(jù)庫(kù)開(kāi)發(fā)、管理軟件來(lái)看,對(duì)于比較簡(jiǎn)單的中小型數(shù)據(jù)庫(kù),VisualBasic6.0和Windows2000的結(jié)合無(wú)疑是在實(shí)際應(yīng)用中較為成功的一種解決方案。為用戶提供了業(yè)界軟件開(kāi)發(fā)一直堅(jiān)持的非常友好、操作簡(jiǎn)單的用戶界面、完善強(qiáng)大的數(shù)據(jù)庫(kù)操作功能和簡(jiǎn)潔明了的數(shù)據(jù)庫(kù)接口。所以技術(shù)實(shí)行起來(lái)相對(duì)會(huì)容易。1.4本文所做的工作第一章緒論部分主要敘述課題來(lái)源、開(kāi)發(fā)背景和開(kāi)發(fā)目的,可行性分析,分析比較當(dāng)前開(kāi)發(fā)工具,數(shù)據(jù)庫(kù)技術(shù)的比較。第二章結(jié)合軟件工程方法,對(duì)系統(tǒng)進(jìn)行需求分析、系統(tǒng)目標(biāo)和應(yīng)用現(xiàn)狀調(diào)查、系統(tǒng)總體流程圖與功能調(diào)查圖繪制與分析。第三章在需求分析的基礎(chǔ)上選擇好開(kāi)發(fā)工具,并對(duì)開(kāi)發(fā)工具做簡(jiǎn)要描述.第四章根據(jù)需求分析的結(jié)果,對(duì)系統(tǒng)進(jìn)行概要設(shè)計(jì),主要介紹用VisualBasic6.0創(chuàng)建應(yīng)用程序的步驟,以及在本系統(tǒng)開(kāi)發(fā)的所用到控件.實(shí)現(xiàn)每一個(gè)模塊的具體功能。第五章根據(jù)第四章的創(chuàng)建應(yīng)用程序步驟及VisualBasic6.0提供的控件進(jìn)行房屋租賃管理系統(tǒng)的詳細(xì)設(shè)計(jì).重點(diǎn)分析數(shù)據(jù)庫(kù)的設(shè)計(jì)以及主要功能模塊的實(shí)現(xiàn).第六章在完成了主要功能模塊的設(shè)計(jì)后,本章進(jìn)行的系統(tǒng)主程序的設(shè)計(jì),以及怎樣在VisualBasic6.0環(huán)境下生成應(yīng)用程序.第七章畢業(yè)設(shè)計(jì)小結(jié),總結(jié)部分介紹了設(shè)計(jì)體會(huì)和編程體會(huì).設(shè)計(jì)存在的不足,及今后的學(xué)習(xí)方向.第二章需求分析2.1系統(tǒng)目標(biāo)采用企業(yè)現(xiàn)有的軟硬件環(huán)境及科學(xué)的管理系統(tǒng)開(kāi)發(fā)方案,建立房屋租賃信息管理系統(tǒng),實(shí)現(xiàn)房屋租賃信息管理的計(jì)算機(jī)自動(dòng)化。系統(tǒng)應(yīng)符合物業(yè)管理企業(yè)原有的房屋租賃管理制度,并達(dá)到操作直觀、方便、實(shí)用、安全等要求。2.2應(yīng)用現(xiàn)狀調(diào)查當(dāng)前,很多物業(yè)管理企業(yè)的房屋租賃信息管理都是以紙張為介質(zhì)作記錄,人力管理的比例比較大,往往是各個(gè)主要負(fù)責(zé)人以書面的形式管理房屋租賃信息,效率低下。數(shù)據(jù)打印,匯總,成績(jī)更新不及時(shí),容易丟失,損壞數(shù)據(jù)給學(xué)校學(xué)生帶來(lái)?yè)p失,不易保存且數(shù)據(jù)保密性較差。2.3系統(tǒng)總體流程圖如下:2.4系統(tǒng)的數(shù)據(jù)流程圖及分析:房屋登記房屋登記基本信息輸入定金管理下定金,預(yù)定管理合同簽訂押金管理租戶求租資料客戶登記信息求租數(shù)據(jù)流程圖整個(gè)系統(tǒng)從總體上分為基本資料管理、客戶資料管理、租賃管理、財(cái)務(wù)管理以及統(tǒng)計(jì)報(bào)表五大部分,每一部分實(shí)現(xiàn)的功能如下:基本資料管理功能:實(shí)現(xiàn)房屋基本資料的管理.客戶資料管理:分租戶基本資料跟求租戶基本資料管理租賃管理:分為合同簽訂,合同續(xù)簽,合同管理,預(yù)定租房,合同查詢,預(yù)定單查詢,出租到期提醒,預(yù)定到期提醒。財(cái)務(wù)管理功能分定金、押金、租金收取,租金管理,定金退還,押金退還。統(tǒng)計(jì)報(bào)表功能:房屋統(tǒng)計(jì)報(bào)表,租戶統(tǒng)計(jì)報(bào)表,求租客戶信息表,歷史租戶表,現(xiàn)有合同表,歷史合同表,預(yù)定金統(tǒng)計(jì),押金,定金統(tǒng)計(jì),租金統(tǒng)計(jì)等功能2.5系統(tǒng)功能模塊圖房屋租賃管理系統(tǒng)基本資料房屋租賃管理系統(tǒng)基本資料客戶資料租賃管理財(cái)務(wù)管理統(tǒng)計(jì)報(bào)表房屋基本管理租戶基本資料求租客戶資料合同續(xù)簽合同管理預(yù)定租房合同查詢預(yù)定單查詢出租到期提醒預(yù)定到期提醒合同簽定財(cái)務(wù)管理財(cái)務(wù)財(cái)務(wù)管理定金收取租金收取押金收取租金管理定金退還押金退還統(tǒng)計(jì)報(bào)表財(cái)務(wù)財(cái)務(wù)管理基本資料基本資料基本資料基本資料基本資料預(yù)定單統(tǒng)計(jì)租戶信息表求租客戶房屋統(tǒng)計(jì)歷史租戶現(xiàn)有合同歷史合同定金統(tǒng)計(jì)租金統(tǒng)計(jì)第三章開(kāi)發(fā)工具的選擇及簡(jiǎn)介3.1開(kāi)發(fā)工具的選擇針對(duì)目前世界上流行的大量軟件和開(kāi)發(fā)工具,經(jīng)過(guò)認(rèn)真分析其優(yōu)缺點(diǎn),結(jié)合數(shù)據(jù)庫(kù)管理系統(tǒng)的需要和目前的硬件環(huán)境,我們選用微軟WINDOWS平臺(tái)下的VisualBasic6.0(簡(jiǎn)寫為VB6.0)作為房屋租賃管理系統(tǒng)的開(kāi)發(fā)工具.3.2開(kāi)發(fā)工具簡(jiǎn)介現(xiàn)在,市場(chǎng)上可以選購(gòu)的應(yīng)用開(kāi)發(fā)產(chǎn)品很多,流行的也有數(shù)十種。目前在我國(guó)市場(chǎng)上最為流行、使用最多、最為先進(jìn)的可用作企業(yè)級(jí)開(kāi)發(fā)工具的產(chǎn)品有:Microsoft公司的VisualBasicMicrosoft公司的VisualCMicrosoft公司的VisualFoxProBorland公司的DelphiPowersoft公司的PowerBuliderJava等等在目前市場(chǎng)上這些眾多的程序開(kāi)發(fā)工具中,有些強(qiáng)調(diào)程序語(yǔ)言的彈性與執(zhí)行效率;有些則偏重于可視化程序開(kāi)發(fā)工具所帶來(lái)的便利性與效率的得高,各有各的優(yōu)點(diǎn)和特色,也滿足了不同用戶的需求。然而,語(yǔ)言的彈性和工具的便利性是密不可分的,只有便利的工具,卻沒(méi)有彈性的語(yǔ)言作支持,許多特殊化的處理動(dòng)作必需要耗費(fèi)數(shù)倍的工夫來(lái)處理,使得原來(lái)所標(biāo)榜的效率提高的優(yōu)點(diǎn)失去了作用;相反,如果只強(qiáng)調(diào)程序語(yǔ)言的彈性,卻沒(méi)有便利的工具作配合,會(huì)使一些即使非常簡(jiǎn)單的界面處理動(dòng)作,也會(huì)嚴(yán)重地浪費(fèi)程序設(shè)計(jì)師的寶貴時(shí)間。VisualBasic是美國(guó)微軟公司的第一個(gè)編程工具和系統(tǒng)開(kāi)發(fā)的第一個(gè)產(chǎn)品,VisualBasic以優(yōu)良的性能、較強(qiáng)的系統(tǒng)開(kāi)發(fā)功能、完美的視覺(jué)界面和簡(jiǎn)單易學(xué)的特點(diǎn),已經(jīng)贏得了全世界廣大用戶的偏愛(ài)。VisualBasic的編程環(huán)境包含了快速有效的開(kāi)發(fā)功能,尤其是數(shù)據(jù)窗口這一方便而簡(jiǎn)潔操縱數(shù)據(jù)庫(kù)的智能化對(duì)象,使系統(tǒng)的開(kāi)發(fā)更人性化,操作更簡(jiǎn)便。作為管理信息系統(tǒng)的開(kāi)發(fā),VisualBasic是一個(gè)非常理想選擇。VisualBasic是一種可視化的、面對(duì)對(duì)象和條用事件驅(qū)動(dòng)方式的結(jié)構(gòu)化高級(jí)程序設(shè)計(jì),可用于開(kāi)發(fā)Windows環(huán)境下的種類應(yīng)用程序。它簡(jiǎn)單易學(xué)、效率高,且功能強(qiáng)大,可以與Windows的專業(yè)開(kāi)發(fā)工具SDK相媲美,而且程序開(kāi)發(fā)人員不必具有C/C++編程基礎(chǔ)。在VisualBasic環(huán)境下,利用事件驅(qū)動(dòng)的編程機(jī)制、新穎易用的可視化設(shè)計(jì)工具,使用Windows內(nèi)部的應(yīng)用程序接口(API)函數(shù),以及動(dòng)態(tài)鏈接庫(kù)(DLL)、動(dòng)態(tài)數(shù)據(jù)交換(DDE)、對(duì)象的鏈接與嵌入(OLE)、開(kāi)放式數(shù)據(jù)訪問(wèn)(ODBC)等技術(shù),可以高效、快速地開(kāi)發(fā)出Windows環(huán)境下功能強(qiáng)大、圖形界面豐富的應(yīng)用軟件系統(tǒng)。總的來(lái)說(shuō),VisualBasic6.0具有以下特點(diǎn):VisualBasic是一種可視化的、面對(duì)對(duì)象和條用事件驅(qū)動(dòng)方式的結(jié)構(gòu)化高級(jí)程序設(shè)計(jì),可用于開(kāi)發(fā)Windows環(huán)境下的種類應(yīng)用程序。它簡(jiǎn)單易學(xué)、效率高,且功能強(qiáng)大,可以與Windows的專業(yè)開(kāi)發(fā)工具SDK相媲美,而且程序開(kāi)發(fā)人員不必具有C/C++編程基礎(chǔ)。在VisualBasic環(huán)境下,利用事件驅(qū)動(dòng)的編程機(jī)制、新穎易用的可視化設(shè)計(jì)工具,使用Windows內(nèi)部的應(yīng)用程序接口(API)函數(shù),以及動(dòng)態(tài)鏈接庫(kù)(DLL)、動(dòng)態(tài)數(shù)據(jù)交換(DDE)、對(duì)象的鏈接與嵌入(OLE)、開(kāi)放式數(shù)據(jù)訪問(wèn)(ODBC)等技術(shù),可以高效、快速地開(kāi)發(fā)出Windows環(huán)境下功能強(qiáng)大、圖形界面豐富的應(yīng)用軟件系統(tǒng)。可視化編程:用傳統(tǒng)程序設(shè)計(jì)語(yǔ)言設(shè)計(jì)程序時(shí),都是通過(guò)編寫程序代碼來(lái)設(shè)計(jì)用戶界面,在設(shè)計(jì)過(guò)程中看不到界面的實(shí)際顯示效果,必須編譯后運(yùn)行程序才能觀察。如果對(duì)界面的效果不滿意,還要回到程序中修改。有時(shí)候,這種編程-編譯-修改的操作可能要反復(fù)多次,大大影響了軟件開(kāi)發(fā)效率。VisualBasic提供了可視化設(shè)計(jì)工具,把Windows界面設(shè)計(jì)的復(fù)雜性“封裝”起來(lái),開(kāi)發(fā)人員不必為界面設(shè)計(jì)而編寫大量程序代碼。只需要按設(shè)計(jì)要求的屏幕布局,用系統(tǒng)提供的工具,在屏幕上畫出各種“部件”,即圖形對(duì)象,并設(shè)置這些圖形對(duì)象的屬性。VisualBasic自動(dòng)產(chǎn)生界面設(shè)計(jì)代碼,程序設(shè)計(jì)人員只需要編寫實(shí)現(xiàn)程序功能的那部分代碼,從而可以大大提高程序設(shè)計(jì)的效率。面向?qū)ο蟮某绦蛟O(shè)計(jì)4.0版以后的VisualBasic支持面向?qū)ο蟮某绦蛟O(shè)計(jì),但它與一般的面向?qū)ο蟮某绦蛟O(shè)計(jì)語(yǔ)言(C++)不完全相同。在一般的面向?qū)ο蟪绦蛟O(shè)計(jì)語(yǔ)言中,對(duì)象由程序代碼和數(shù)據(jù)組成,是抽象的概念;而VisualBasic則是應(yīng)用面向?qū)ο蟮某绦蛟O(shè)計(jì)方法(OOP),把程序和數(shù)據(jù)封裝起來(lái)作為一個(gè)對(duì)象,并為每個(gè)對(duì)象賦予應(yīng)有的屬性,使對(duì)象成為實(shí)在的東西。在設(shè)計(jì)對(duì)象時(shí),不必編寫建立和描述每個(gè)對(duì)象的程序代碼,而是用工具畫在界面上,VisualBasic自動(dòng)生成對(duì)象的程序代碼并封裝起來(lái)。每個(gè)對(duì)象以圖形方式顯示在界面上,都是可視的。結(jié)構(gòu)化程序設(shè)計(jì)語(yǔ)言VisualBasic是在BASIC語(yǔ)言的基礎(chǔ)上發(fā)展起來(lái)的,具有高級(jí)程序設(shè)計(jì)語(yǔ)言的語(yǔ)句結(jié)構(gòu),接近于自然語(yǔ)言和人類的邏輯思維方式。VisualBasic語(yǔ)句簡(jiǎn)單易懂,其編輯器支持彩色代碼,可自動(dòng)進(jìn)行語(yǔ)法錯(cuò)誤檢查,同時(shí)具有功能強(qiáng)大且使用靈活的調(diào)試器和編譯器。VisualBasic是解釋型語(yǔ)言,在輸入代碼的同時(shí),解釋系統(tǒng)將高級(jí)語(yǔ)言分解翻譯成計(jì)算機(jī)可以識(shí)別的機(jī)器指令,并判斷每個(gè)語(yǔ)句的語(yǔ)法錯(cuò)誤。在設(shè)計(jì)VisualBasic程序的過(guò)程中,隨時(shí)可以運(yùn)行程序,而在整個(gè)程序設(shè)計(jì)好之后,可以編譯生成可執(zhí)行文件(.EXE),脫離VisualBasic環(huán)境,直接在Windows環(huán)境下運(yùn)行。事件驅(qū)動(dòng)編程機(jī)制VisualBasic通過(guò)事件來(lái)執(zhí)行對(duì)象的操作。一個(gè)對(duì)象可能會(huì)產(chǎn)生多個(gè)事件,每個(gè)事件都可以通過(guò)一段程序來(lái)響應(yīng)。例如,命令按鈕是一個(gè)對(duì)象,當(dāng)用戶單擊該按鈕時(shí),將產(chǎn)生一個(gè)“單擊”(CLICK)事件,而在產(chǎn)生該事件時(shí)將執(zhí)行一段程序,用來(lái)實(shí)現(xiàn)指定的操作。在用VisualBasic設(shè)計(jì)大型應(yīng)用軟件時(shí),不必建立具有明顯開(kāi)始和結(jié)束的程序,而是編寫若干個(gè)微小的子程序,即過(guò)程。這些過(guò)程分別面向不同的對(duì)象,由用戶操作引發(fā)某個(gè)事件來(lái)驅(qū)動(dòng)完成某種特定的功能,或者由事件驅(qū)動(dòng)程序調(diào)用通用過(guò)程來(lái)執(zhí)行指定的操作,這樣可以方便編程人員,提高效率。訪問(wèn)數(shù)據(jù)庫(kù)VisualBasic具有強(qiáng)大的數(shù)據(jù)庫(kù)管理功能,利用數(shù)據(jù)控件和數(shù)據(jù)庫(kù)管理窗口,可以直接建立或處理MicrosoftAccess格式的數(shù)據(jù)庫(kù),并提供了強(qiáng)大的數(shù)據(jù)存儲(chǔ)和檢索功能。同時(shí),VisualBasic還能直接編輯和訪問(wèn)其他外部數(shù)據(jù)庫(kù),如dBASE,F(xiàn)oxPro,Paradox等,這些數(shù)據(jù)庫(kù)格式都可以用VisualBasic編輯和處理。VisualBasic提供開(kāi)放式數(shù)據(jù)連接,即ODBC功能,可通過(guò)直接訪問(wèn)或建立連接的方式使用并操作后臺(tái)大型網(wǎng)絡(luò)數(shù)據(jù)庫(kù),如SQLServer,Oracle等。在應(yīng)用程序中,可以使用結(jié)構(gòu)化查詢語(yǔ)言SQL數(shù)據(jù)標(biāo)準(zhǔn),直接訪問(wèn)服務(wù)器上的數(shù)據(jù)庫(kù),并提供了簡(jiǎn)單的面向?qū)ο蟮膸?kù)操作指令和多用戶數(shù)據(jù)庫(kù)訪問(wèn)的加鎖機(jī)制和網(wǎng)絡(luò)數(shù)據(jù)庫(kù)的SQL的編程技術(shù),為單機(jī)上運(yùn)行的數(shù)據(jù)庫(kù)提供了SQL網(wǎng)絡(luò)接口,以便在分布式環(huán)境中快速而有效地實(shí)現(xiàn)客戶/服務(wù)器(client/server)方案。動(dòng)態(tài)數(shù)據(jù)交換(DDE)利用動(dòng)態(tài)數(shù)據(jù)交換(DynamicDataExchange)技術(shù),可以把一種應(yīng)用程序中的數(shù)據(jù)動(dòng)態(tài)地鏈接到另一種應(yīng)用程序中,使兩種完全不同的應(yīng)用程序建立起一條動(dòng)態(tài)數(shù)據(jù)鏈路。當(dāng)原始數(shù)據(jù)變化時(shí),可以自動(dòng)更新鏈接的數(shù)據(jù)。VisualBasic提供了動(dòng)態(tài)數(shù)據(jù)交換的編程技術(shù),可以在應(yīng)用程序中與其他Windows應(yīng)用程序建立動(dòng)態(tài)數(shù)據(jù)交換,在不同的應(yīng)用程序之間進(jìn)行通信。對(duì)象的鏈接與嵌入(OLE)對(duì)象的鏈接與嵌入(OLE)將每個(gè)應(yīng)用程序都看作是一個(gè)對(duì)象(object),將不同的對(duì)象鏈接(link)起來(lái),再嵌入(embed)某個(gè)應(yīng)用程序中,從而可以得到具有聲音、影像、圖像、動(dòng)畫、文字等各種信息的集合式的文件。OLE技術(shù)是Microsoft公司對(duì)象技術(shù)的戰(zhàn)略,它把多個(gè)應(yīng)用程序合為一體,將每個(gè)應(yīng)用程序看作是一個(gè)對(duì)象進(jìn)行鏈接和嵌入,是一種應(yīng)用程序一體化的技術(shù)。利用OLE技術(shù),可以方便地建立復(fù)合式文檔(compounddocument),這種文檔由來(lái)自多個(gè)不同應(yīng)用程序的對(duì)象組成,文檔中的每個(gè)對(duì)象都與原來(lái)的應(yīng)用程序相聯(lián)系,并可執(zhí)行與原來(lái)應(yīng)用程序完全相同的操作。動(dòng)態(tài)鏈接庫(kù)(DLL)VisualBasic是一種高級(jí)程序設(shè)計(jì)語(yǔ)言,不具備低級(jí)語(yǔ)言的功能,對(duì)訪問(wèn)機(jī)器硬件的操作不太容易實(shí)現(xiàn)。但它可以通過(guò)動(dòng)態(tài)鏈接庫(kù)技術(shù)將C/C++或匯編語(yǔ)言編寫的程序加入到VisualBasic應(yīng)用程序中,可以像調(diào)用內(nèi)部函數(shù)一樣調(diào)用其他語(yǔ)言編寫的函數(shù)。此外,通過(guò)動(dòng)態(tài)鏈接庫(kù),還可以調(diào)用Windows應(yīng)用程序接口(API)函數(shù),實(shí)現(xiàn)SDK所具有的功能第四章房屋租賃管理系統(tǒng)的詳細(xì)設(shè)計(jì)4.1數(shù)據(jù)庫(kù)概要4.1.1數(shù)據(jù)庫(kù)的含義所謂數(shù)據(jù)庫(kù),就是為了滿足某些系統(tǒng)、某些用戶的需要,在計(jì)算機(jī)系統(tǒng)中按照一定的數(shù)據(jù)模型、數(shù)據(jù)結(jié)構(gòu)等方式進(jìn)行組織、存儲(chǔ)和使用的互相關(guān)聯(lián)的數(shù)據(jù)集合,是數(shù)據(jù)按科學(xué)的結(jié)構(gòu)形式組織的“倉(cāng)庫(kù)”。在實(shí)際中,人們把數(shù)據(jù)庫(kù)以文件形式存入于磁盤(軟盤、硬盤或磁帶)中,數(shù)據(jù)庫(kù)管理系統(tǒng)以文件形式對(duì)其進(jìn)行調(diào)度管理。4.1.2數(shù)據(jù)庫(kù)管理系統(tǒng)數(shù)據(jù)庫(kù)管理系統(tǒng),簡(jiǎn)稱DBMS,是為數(shù)據(jù)庫(kù)的建立,使用和維護(hù)而配置的軟件,它提供了安全性和完整性等統(tǒng)一控制機(jī)制,方便用戶管理和存取大量的數(shù)據(jù)資源。例如,VisualBasic6.0就是微機(jī)上使用的一種數(shù)據(jù)管理系統(tǒng)。在數(shù)據(jù)庫(kù)管理系統(tǒng)的支持下,數(shù)據(jù)完全獨(dú)立于應(yīng)用程序,并且能被多個(gè)用戶或程序共享,其關(guān)系如圖所示。應(yīng)用程序1應(yīng)用程序1數(shù)據(jù)庫(kù)管理系統(tǒng)數(shù)據(jù)庫(kù)管理系統(tǒng)數(shù)據(jù)庫(kù)應(yīng)用程序2應(yīng)用程序2應(yīng)用程序3應(yīng)用程序3應(yīng)用程序與數(shù)據(jù)庫(kù)的關(guān)系數(shù)據(jù)庫(kù)管理系統(tǒng)一般具備數(shù)據(jù)庫(kù)的定義、操作、查詢及控制等功能。它將所有應(yīng)用程序使用的數(shù)據(jù)匯集起來(lái),建立數(shù)據(jù)庫(kù),使之面對(duì)所有應(yīng)用程序的查詢和訪問(wèn)。因此,作為訪問(wèn)者的應(yīng)用程序相對(duì)于數(shù)據(jù)庫(kù)來(lái)說(shuō)是獨(dú)立的,而作為被訪問(wèn)的數(shù)據(jù)在數(shù)據(jù)庫(kù)中同樣是獨(dú)立的。當(dāng)要建立新的數(shù)據(jù)管理系統(tǒng)時(shí),只要生成一個(gè)新的應(yīng)用程序即可,它可以立即使用現(xiàn)成的數(shù)據(jù)庫(kù),而不必建立新的數(shù)據(jù)文件。數(shù)據(jù)庫(kù)管理系統(tǒng)是為數(shù)據(jù)庫(kù)的建立、使用、管理和維護(hù)而配置的軟件。它建立在操作系統(tǒng)的基礎(chǔ)上,對(duì)數(shù)據(jù)庫(kù)進(jìn)行統(tǒng)一的管理和控制。用戶使用的各種數(shù)據(jù)庫(kù)命令以及應(yīng)用程序的執(zhí)行都要通過(guò)數(shù)據(jù)庫(kù)管理系統(tǒng)。數(shù)據(jù)庫(kù)管理系統(tǒng)還承擔(dān)著數(shù)據(jù)庫(kù)的維護(hù)工作,保證數(shù)據(jù)庫(kù)的安全性和完整性。數(shù)據(jù)庫(kù)管理系統(tǒng)的功能體現(xiàn)在“管理”二字上。它針對(duì)不同的用戶及不同的使用目的,提供給用戶各種操作、管理數(shù)據(jù)庫(kù)的命令、函數(shù)、控件和對(duì)象,以幫助用戶完成任務(wù)。其主要功能如下:定義數(shù)據(jù)庫(kù)根據(jù)用戶設(shè)計(jì)的數(shù)據(jù)結(jié)構(gòu),建立數(shù)據(jù)庫(kù)結(jié)構(gòu)組織.存取數(shù)據(jù)它包括很多基本操作:輸入、更新、插入、檢索、刪除、輸出、統(tǒng)計(jì)、排序、索引等。數(shù)據(jù)庫(kù)運(yùn)行管理所有數(shù)據(jù)庫(kù)的操作都要在數(shù)據(jù)庫(kù)管理系統(tǒng)的餓控制程序的統(tǒng)一管理下進(jìn)行,以保證正確運(yùn)行,保證數(shù)據(jù)庫(kù)正確有效。數(shù)據(jù)庫(kù)系統(tǒng)的維護(hù)系統(tǒng)維護(hù)是一項(xiàng)重要的工作,它包括數(shù)據(jù)庫(kù)的轉(zhuǎn)存、恢復(fù)、數(shù)據(jù)庫(kù)的重組及性能監(jiān)視、分析等。由上可見(jiàn),數(shù)據(jù)庫(kù)管理系統(tǒng)是一個(gè)能使用和管理數(shù)據(jù)庫(kù)中數(shù)據(jù)的軟件。這是數(shù)據(jù)庫(kù)系統(tǒng)與文件系統(tǒng)的一個(gè)最大的區(qū)別。數(shù)據(jù)庫(kù)管理系統(tǒng)功能的強(qiáng)弱基本上決定了整個(gè)數(shù)據(jù)庫(kù)系統(tǒng)功能。4.1.3數(shù)據(jù)庫(kù)應(yīng)用系統(tǒng)數(shù)據(jù)庫(kù)應(yīng)用系統(tǒng)是指系統(tǒng)開(kāi)發(fā)人員利用數(shù)據(jù)庫(kù)系統(tǒng)資源開(kāi)發(fā)出來(lái)的,面向某一類信息處理問(wèn)題而建立的軟件系統(tǒng)。數(shù)據(jù)庫(kù)系統(tǒng)的用戶自己編寫的、基于數(shù)據(jù)庫(kù)數(shù)據(jù)的程序稱為應(yīng)用程序,針對(duì)某一數(shù)據(jù)庫(kù)管理而編制的一組應(yīng)用程序形成該數(shù)據(jù)庫(kù)的應(yīng)用系統(tǒng),它是數(shù)據(jù)庫(kù)系統(tǒng)的一個(gè)重要組成部分,它們與數(shù)據(jù)庫(kù)上的數(shù)據(jù)構(gòu)成數(shù)據(jù)庫(kù)中最活躍的部分。4.2數(shù)據(jù)庫(kù)的結(jié)構(gòu)設(shè)計(jì) 為了實(shí)現(xiàn)管理信息系統(tǒng)的計(jì)算機(jī)化,僅僅用文字來(lái)描述信息的流動(dòng)和存儲(chǔ)還遠(yuǎn)遠(yuǎn)不夠,還要進(jìn)一步調(diào)查分析舍去物質(zhì)流,抽象出信息流,定義出數(shù)據(jù)庫(kù),各數(shù)據(jù)表的結(jié)構(gòu),并對(duì)各種數(shù)據(jù)的屬性和各項(xiàng)處理功能進(jìn)行詳細(xì)分析。系統(tǒng)分析的主要成果是系統(tǒng)的邏輯模型。通過(guò)對(duì)該系統(tǒng)的研究,將系統(tǒng)數(shù)據(jù)分為以下幾個(gè)表:客戶信息表,定金表,房屋表,押金表,求租,預(yù)定表以及租金等幾個(gè)表,各表的具體設(shè)計(jì)結(jié)構(gòu)如下:客戶信息表:字段名類型寬度小數(shù)位數(shù)客戶編號(hào)字符型10租戶姓名字符型6工作單位字符型20聯(lián)系電話字符型2性別字符型8租戶人數(shù)字符型20身份證編號(hào)字符型20備注備注型4定金表:字段名類型寬度小數(shù)位數(shù)收費(fèi)編號(hào)字符型10定金金額字符型10預(yù)定金編號(hào)字符型10收費(fèi)日期日期型8預(yù)定客戶字符型10預(yù)定房屋編號(hào)字符型10備注備注型房屋表:字段名類型寬度小數(shù)位數(shù)房屋編號(hào)字符型8物業(yè)地址字符型10房型字符型20建筑面積數(shù)值型52使用面積數(shù)值型52裝修情況字符型10出租價(jià)位數(shù)值型52目前狀態(tài)字符型字符型備注備注型押金表:字段名類型寬度小數(shù)位數(shù)收費(fèi)編號(hào)字符型10押金金額數(shù)值型52收費(fèi)日期日期型8合同編號(hào)字符型10客戶姓名字符型8房屋編號(hào)字符型10備注備注型求租表:字段名類型寬度小數(shù)位數(shù)求租客戶編號(hào)字符型10求租客戶姓名字符型10電話字符型15房型要求字符型50面積要求數(shù)值型52裝修要求字符型50意向價(jià)位數(shù)值型52意向房屋編號(hào)字符型10備注備注租金表:字段名類型寬度小數(shù)位數(shù)收費(fèi)編號(hào)字符型10租金年份日期型8租金月份日期型8應(yīng)交租金數(shù)值型52已交租金數(shù)值型52久費(fèi)金額數(shù)值型52客戶姓名字符型10交費(fèi)日期日期型8備注備注4.3系統(tǒng)主界面的設(shè)計(jì)啟動(dòng)系統(tǒng)后,主界面設(shè)計(jì)效果圖如下:公用模塊的設(shè)計(jì)代碼分析如下:OptionExplicitPublicconnAsNewADODB.Connection'定義全局變量queryhouse作為判斷frmHouse窗體顯示查詢的數(shù)據(jù)還是全體數(shù)據(jù)PublicqueryhouseAsBoolean'定義全局變量sqlqh作為查詢房屋信息時(shí)的sql語(yǔ)句PublicsqlqhAsString'定義全局變量querycf作為判斷frmClient窗體家庭租戶選項(xiàng)卡顯示查詢的數(shù)據(jù)還是全體數(shù)據(jù)PublicquerycfAsBoolean'定義全局變量sqlqcf作為查詢家庭租戶信息時(shí)的sql語(yǔ)句PublicsqlqcfAsString'定義全局變量querycg作為判斷frmClient窗體家公司戶選項(xiàng)卡顯示查詢的數(shù)據(jù)還是全體數(shù)據(jù)PublicquerycgAsBoolean'定義全局變量sqlqcg作為查詢公司租戶信息時(shí)的sql語(yǔ)句PublicsqlqcgAsString'定義全局變量queryemp作為判斷frmEmp窗體顯示查詢的數(shù)據(jù)還是全體數(shù)據(jù)PublicqueryempAsBoolean'定義全局變量sqlqe作為查詢員工信息時(shí)的sql語(yǔ)句PublicsqlqeAsString'定義全局變量queryqzc作為判斷frmQZClient窗體顯示查詢的數(shù)據(jù)還是全體數(shù)據(jù)PublicqueryqzcAsBoolean'定義全局變量sqlqzc作為查詢求租客戶信息時(shí)的sql語(yǔ)句PublicsqlqzcAsString'定義全局變量querycon作為判斷frmAdminContract窗體顯示查詢的數(shù)據(jù)還是全體數(shù)據(jù)PublicqueryconAsBoolean'定義全局變量sqlqcon作為查詢合同信息時(shí)的sql語(yǔ)句PublicsqlqconAsString'定義全局變量sqlqyd作為查詢預(yù)定單信息時(shí)的sql語(yǔ)句PublicsqlqydAsString'定義全局變量fromqzc作為判斷frmYuDing窗體是從frmQZClient窗體中單擊下定金預(yù)定調(diào)用的'還是直接菜單調(diào)用的PublicfromqzcAsBoolean'定義全局變量fromYuding作為判斷frmPayDingJin窗體是從frmYuDing窗體中單擊收取定金調(diào)用的'還是直接菜單調(diào)用的PublicfromYudingAsBoolean'定義全局變量fromContract作為判斷frmPayYaJin窗體是從frmSignContract窗體中單擊收取押金調(diào)用的'還是直接菜單調(diào)用的PublicfromContractAsBoolean'定義全局變量ZuJinfromContract作為判斷frmPayZuJin窗體是從frmSignContract窗體中單擊收取租金調(diào)用的'還是直接菜單調(diào)用的PublicZuJinfromContractAsBoolean'定義全局變量queryZuJin作為判斷frmAdminZuJin窗體顯示查詢的數(shù)據(jù)還是全體數(shù)據(jù)PublicqueryZuJinAsBoolean'定義全局變量sqlqzj作為查詢合同信息時(shí)的sql語(yǔ)句PublicsqlqzjAsString'定義全局變量sqlqdj作為查詢定金信息時(shí)的sql語(yǔ)句PublicsqlqdjAsString'定義全局變量sqlqyj作為查詢押金信息時(shí)的sql語(yǔ)句PublicsqlqyjAsString4.3各主要功能模塊的設(shè)計(jì)與實(shí)現(xiàn)4.3.1基本資料管理模塊設(shè)計(jì)房屋基本資料管理的運(yùn)行效果圖如下:其表單界面的屬性設(shè)計(jì)比較直觀,在此重點(diǎn)分析新增,修改,刪除,保存四個(gè)命令按鈕的源代碼設(shè)計(jì):新增按鈕源碼:PrivateSubcmdAdd_Click()'設(shè)置除保存和取消按鈕外的其他按鈕不可用cmdAdd.Enabled=FalsecmdEdit.Enabled=FalsecmdDel.Enabled=FalsecmdSave.Enabled=TruecmdCancel.Enabled=TruecmdFirst.Enabled=FalsecmdPrev.Enabled=FalsecmdNext.Enabled=FalsecmdLast.Enabled=FalsecmdQuery.Enabled=False'需要清空所有text框,并且設(shè)置它們可寫Fori=0To7Text1(i).Text=""Text1(i).Enabled=TrueNextiCombo1.Enabled=True'add變量用于保存時(shí)判斷是從添加還是修改后保存add=1Text1(0).SetFocusEndSubPrivateSubcmdCancel_Click()'取消按鈕用于用戶添加或修改過(guò)程中放棄添加或修改操作cmdSave.Enabled=FalsecmdCancel.Enabled=FalsecmdAdd.Enabled=TruecmdQuery.Enabled=True'如果是從添加后取消Ifadd=1Then'如果當(dāng)前House表中有數(shù)據(jù)則顯示第一條數(shù)據(jù)IfNotrs_house.EOFAndNotrs_house.BOFThenFori=0To7Text1(i).Text=rs_house.Fields(i)NextiIfrs_house.Fields(8)="已租"ThenCombo1.ListIndex=0ElseIfrs_house.Fields(8)="未租"ThenCombo1.ListIndex=1ElseIfrs_house.Fields(8)="意向"ThenCombo1.ListIndex=2EndIfcmdEdit.Enabled=TruecmdDel.Enabled=TruecmdFirst.Enabled=TruecmdPrev.Enabled=TruecmdNext.Enabled=TruecmdLast.Enabled=True'如果沒(méi)有數(shù)據(jù),則顯示空ElseFori=0To7Text1(i).Text=""NexticmdEdit.Enabled=FalsecmdDel.Enabled=FalsecmdFirst.Enabled=FalsecmdPrev.Enabled=FalsecmdNext.Enabled=FalsecmdLast.Enabled=FalseEndIf'如果是修改后取消,則恢復(fù)到修改前的數(shù)據(jù)ElseIfadd=0ThenFori=0To7Text1(i).Text=rs_house.Fields(i)NextiIfrs_house.Fields(8)="已租"ThenCombo1.ListIndex=0ElseIfrs_house.Fields(8)="未租"ThenCombo1.ListIndex=1ElseIfrs_house.Fields(8)="意向"ThenCombo1.ListIndex=2EndIfEndIf'開(kāi)始時(shí)設(shè)置各個(gè)text框不可寫Fori=0To7Text1(i).Enabled=FalseNexti'先設(shè)置ComboBox的默認(rèn)值及不可改Combo1.Enabled=FalseEndSubPrivateSubcmdClose_Click()UnloadMeEndSub刪除按鈕的源代碼:PrivateSubcmdDel_Click()'當(dāng)單擊刪除記錄時(shí),需要彈出一個(gè)提示框,警告用戶DimanswerAsStringanswer=MsgBox("確定要?jiǎng)h除嗎?",vbYesNo,"")'確實(shí)刪除Ifanswer=vbYesThenrs_house.Delete'刪除當(dāng)前記錄rs_house.Update'更新刪除MsgBox"成功刪除!",vbOKOnly+vbExclamation,""ElseExitSubEndIf'刪除之后,顯示總信息條數(shù)需要減1Text2.Text=Val(Text2.Text)-1'刪除當(dāng)前記錄后,需要顯示下一條記錄,如果刪除的是最后一條記錄,則顯示上一條記錄'先移動(dòng)rs_house記錄到后一條rs_house.MoveNextIfrs_house.EOFThenrs_house.MovePrevious'如果沒(méi)有到記錄首則顯示該記錄IfNotrs_house.BOFThenFori=0To7Text1(i).Text=rs_house.Fields(i)NextiIfrs_house.Fields(8)="已租"ThenCombo1.ListIndex=0ElseIfrs_house.Fields(8)="未租"ThenCombo1.ListIndex=1ElseIfrs_house.Fields(8)="意向"ThenCombo1.ListIndex=2EndIf'如果到記錄首,則表格已經(jīng)為空,置所有text框顯示為空ElseIfrs_house.BOFThenFori=0To7Text1(i).Text=""NexticmdFirst.Enabled=FalsecmdPrev.Enabled=FalsecmdNext.Enabled=FalsecmdLast.Enabled=FalseEndIf'如果刪除的不是首尾記錄,則顯示當(dāng)前記錄即可ElseFori=0To7Text1(i).Text=rs_house.Fields(i)NextiIfrs_house.Fields(8)="已租"ThenCombo1.ListIndex=0ElseIfrs_house.Fields(8)="未租"ThenCombo1.ListIndex=1ElseIfrs_house.Fields(8)="意向"ThenCombo1.ListIndex=2EndIfEndIfEndSub保存按鈕的源代碼:PrivateSubcmdEdit_Click()'設(shè)置除保存和取消按鈕外的其他按鈕不可用cmdAdd.Enabled=FalsecmdEdit.Enabled=FalsecmdDel.Enabled=FalsecmdSave.Enabled=TruecmdCancel.Enabled=TruecmdFirst.Enabled=FalsecmdPrev.Enabled=FalsecmdNext.Enabled=FalsecmdLast.Enabled=FalsecmdQuery.Enabled=False'需要設(shè)置除主鍵之外的text框可寫Fori=1To7Text1(i).Enabled=TrueNextiCombo1.Enabled=Trueadd=0EndSubPrivateSubcmdFirst_Click()'先移動(dòng)rs_house記錄到第一條rs_house.MoveFirst'同時(shí)需要設(shè)置相應(yīng)按鈕為不可用和不可用cmdPrev.Enabled=FalsecmdFirst.Enabled=FalsecmdNext.Enabled=TruecmdLast.Enabled=True'如果已經(jīng)是第一條記錄,則提示用戶Ifrs_house.BOF=TrueThenMsgBox"對(duì)不起,已經(jīng)是第一條記錄了!",vbOKOnly+vbInformation,"注意"ExitSub'如果不是,則個(gè)數(shù)據(jù)表的記錄位置移到第一條記錄,并且顯示之ElseFori=0To7Text1(i).Text=rs_house.Fields(i)NextiIfrs_house.Fields(8)="已租"ThenCombo1.ListIndex=0ElseIfrs_house.Fields(8)="未租"ThenCombo1.ListIndex=1ElseIfrs_house.Fields(8)="意向"ThenCombo1.ListIndex=2EndIfEndIfEndSubPREV檢索按鈕的源代碼:4.3.2客戶資料管理模塊的設(shè)計(jì)4.3.2.1租戶基本資料的設(shè)計(jì)運(yùn)行效果圖如下所示:在租戶基本資料中,我們重點(diǎn)分析查找家庭租戶功能的源碼,如下:PrivateSubcmdQuery_Click()IfText1.Text=""ThenMsgBox"查詢條件不可為空!",vbOKOnly+vbInformation,"注意"Text1.SetFocusExitSubEndIf'設(shè)置查詢家庭租戶變量為真querycf=Truesqlqcf="where"&Combo1.Text&"="&"'"&Text1.Text&"'"frmClient.Show'關(guān)閉本窗體UnloadMeEndSub4.3.2.2求租戶基本資料的設(shè)計(jì)其保存按鈕的源碼分析如下:PrivateSubcmdSave_Click()'檢測(cè)數(shù)據(jù)是否完整IfText1(0).Text=""ThenMsgBox"求租客戶編號(hào)不可為空!",vbOKOnly+vbInformation,"注意"Text1(0).SetFocusExitSubElseIfText1(1).Text=""ThenMsgBox"求租客戶姓名不可為空!",vbOKOnly+vbInformation,"注意"Text1(1).SetFocusExitSubElseIfText1(2).Text=""ThenMsgBox"求租客戶電話不可為空!",vbOKOnly+vbInformation,"注意"Text1(2).SetFocusExitSubElseIfNotText1(4).Text=""AndIsNumeric(Text1(4).Text)=FalseThenMsgBox"面積要求不為空則應(yīng)為數(shù)字!",vbOKOnly+vbInformation,"注意"Text1(4).SetFocusExitSubElseIfNotText1(6).Text=""AndIsNumeric(Text1(6).Text)=FalseThenMsgBox"意向價(jià)位不為空則應(yīng)為數(shù)字!",vbOKOnly+vbInformation,"注意"Text1(6).SetFocusExitSubElseIfNotText1(7).Text=""AndIsNumeric(Text1(7).Text)=FalseThenMsgBox"意向租期不為空則應(yīng)為數(shù)字!",vbOKOnly+vbInformation,"注意"Text1(7).SetFocusExitSubEndIf'如果意向房屋編號(hào)不為空,需要檢查是否存在IfNotText1(8).Text=""ThenDimsqlhcheckAsStringDimrs_hcheckAsNewADODB.Recordsetsqlhcheck="select*fromHousewhere房屋編號(hào)='"&Text1(8).Text&"'"rs_hcheck.Opensqlhcheck,conn,adOpenStatic,adLockOptimisticIfrs_hcheck.EOFThenMsgBox"該房屋編號(hào)不存在,請(qǐng)重填或清空!",vbOKOnly+vbInformation,"注意"Text1(8).SetFocusrs_hcheck.CloseExitSubEndIfrs_hcheck.CloseEndIf'添加數(shù)據(jù)后保存Ifadd=1Then'檢測(cè)房屋編號(hào)這個(gè)主鍵是否已經(jīng)在表中存在Dimrs_checkAsNewADODB.RecordsetDimsqlCheckAsStringsqlCheck="select*fromQZClientwhere求租客戶編號(hào)='"&(Text1(0).Text)&"'"rs_check.OpensqlCheck,conn,adOpenStatic,adLockOptimisticIfNotrs_check.EOFAndNotrs_check.BOFThenMsgBox"該求租客戶編號(hào)已經(jīng)存在,請(qǐng)重填一個(gè)!",vbOKOnly+vbInformation,"注意"rs_check.CloseText1(0).SetFocusText1(0).Text=""ExitSubEndIfrs_check.Close'主鍵不重復(fù),可以加入表中rs_QZClient.AddNewFori=0To9rs_QZClient.Fields(i)=Text1(i).TextNextirs_QZClient.Update'添加之后顯示總共條數(shù)信息加1Text2.Text=Val(Text2.Text)+1'修改數(shù)據(jù)后的保存Elsers_QZClient.UpdateEndIfMsgBox"保存數(shù)據(jù)成功!",vbOKOnly+vbInformation,"祝賀"'保存后需要設(shè)置其他按鈕可用,以及各個(gè)text框不可寫cmdAdd.Enabled=TruecmdEdit.Enabled=TruecmdDel.Enabled=TruecmdSave.Enabled=FalsecmdCancel.Enabled=FalsecmdFirst.Enabled=TruecmdPrev.Enabled=TruecmdNext.Enabled=TruecmdLast.Enabled=TruecmdQuery.Enabled=TruecmdYuDing.Enabled=TrueFori=0To9Text1(i).Enabled=FalseNextiEndSub4.3.3租賃管理模塊的設(shè)計(jì)4.3.3.1簽訂合同的設(shè)計(jì)因租賃管理,財(cái)務(wù)管理和統(tǒng)計(jì)報(bào)表三個(gè)模塊的窗體設(shè)計(jì)比較多,無(wú)法一一描述,故選擇有代表性的窗體設(shè)計(jì)加以分析,其合同簽訂窗體的運(yùn)行效果圖如下:如圖所示,簽訂的源碼設(shè)計(jì)如下:PrivateSubcmdSign_Click()'先檢查輸入數(shù)據(jù)完整性Fori=0To2IfText1(i).Text=""ThenMsgBox"除備注外的所有項(xiàng)不可為空!",vbOKOnly+vbInformation,"注意"Text1(i).SetFocusExitSubEndIfNextiFori=3To4IfText1(i).Text=""OrIsDate(Text1(i).Text)=FalseThenMsgBox"日期應(yīng)為這樣的格式:2003-7-15!",vbOKOnly+vbInformation,"注意"Text1(i).SetFocusExitSubEndIfNextiIfText1(6).Text=""OrIsNumeric(Text1(6).Text)=FalseThenMsgBox"月租金應(yīng)為數(shù)字!",vbOKOnly+vbInformation,"注意"Text1(6).SetFocusExitSubEndIfIfText1(8).Text=""OrIsNumeric(Text1(8).Text)=FalseThenMsgBox"押金應(yīng)為數(shù)字!",vbOKOnly+vbInformation,"注意"Text1(8).SetFocusExitSubEndIfIfText1(9).Text=""ThenMsgBox"業(yè)務(wù)員不可為空!",vbOKOnly+vbInformation,"注意"Text1(9).SetFocusExitSubEndIfIfText1(10).Text=""OrIsDate(Text1(10).Text)=FalseThenMsgBox"簽訂日期應(yīng)為這樣的格式:2003-7-15!",vbOKOnly+vbInformation,"注意"Text1(10).SetFocusExitSubEndIf'止租日期不能前于起租日期IfDateValue(Text1(4).Text)<DateValue(Text1(3).Text)ThenMsgBox"止租日期不能前于起租日期",vbOKOnly+vbInformation,"注意"Text1(4).SetFocusExitSubEndIf'租期等于起租日期和止租日期之差,結(jié)尾不足一月,按一月計(jì)。'使用datediff函數(shù)計(jì)算日期之差Text1(5).Text=Int(DateDiff("d",DateValue(Text1(3).Text),DateValue(Text1(4).Text))/31)+1'總租金等于月租金乘以租期Text1(7).Text=Val(Text1(5).Text)*Val(Text1(6).Text)'檢查完數(shù)據(jù)完整性后,還需要檢查該客戶是否已存入租戶表中,以及該房屋是否為未出租或預(yù)定狀態(tài)sqlc="select*fromClientwhere租戶姓名='"&Text1(1).Text&"'"rs_ccheck.Opensqlc,conn,adOpenStatic,adLockOptimisticIfrs_ccheck.EOF=TrueThenrs_ccheck.CloseMsgBox"該客戶資料還未存入租戶資料表中,請(qǐng)先錄入該客戶資料!",vbOKOnly+vbInformation,"注意"ExitSubEndIfrs_ccheck.Close'檢測(cè)房屋狀態(tài)sqlh="select*fromHousewhere房屋編號(hào)='"&Text1(2).Text&"'"rs_hcheck.Opensqlh,conn,adOpenStatic,adLockOptimisticIfrs_hcheck.EOF=TrueThenMsgBox"該房屋編號(hào)不存在,請(qǐng)重新輸入一個(gè)!",vbOKOnly+vbInformation,"注意"Text1(2).SetFocusrs_hcheck.CloseExitSubElseIfrs_hcheck.Fields(8)="已租"ThenMsgBox"該房屋已經(jīng)出租了,請(qǐng)選擇另一房屋!",vbOKOnly+vbInformation,"注意"rs_hcheck.CloseExitSub'如果該房屋狀態(tài)為預(yù)定,則需要看預(yù)定人是否為該客戶,如果不是,需要彈出對(duì)話框提示用戶ElseIfrs_hcheck.Fields(8)="預(yù)定"Then'檢查該客戶是否為預(yù)定客戶sqlyd="select*fromYuDingwhere預(yù)定房屋編號(hào)='"&Text1(2).Text&"'"rs_yd.Opensqlyd,conn,adOpenStatic,adLockOptimistic'如果該客戶不是預(yù)定客戶,檢查預(yù)定有效期IfNotrs_yd.Fields(1)=Text1(1).TextThen'如果已經(jīng)過(guò)了預(yù)定有效期,別的用戶可以承租If(Date>DateAdd(d,rs_yd.Fields(4),rs_yd.Fields(8)))Then'出租,加入合同表sqlcon="select*fromContract"rs_contract.Opensqlcon,conn,adOpenStatic,adLockOptimisticrs_contract.AddNewFori=0To11rs_contract.Fields(i)=Text1(i).TextNextirs_contract.Update'修改房屋狀態(tài)rs_hcheck(8)="已租"rs_hcheck.Update'檢查求租客戶表中是否有該客戶,如果有,則刪除之sqlqzc="select*fromQZClientwhere求租客戶姓名='"&Text1(1).Text&"'"rs_qzc.Opensqlqzc,conn,adOpenStatic,adLockOptimisticIfrs_qzc.EOF=FalseThenrs_qzc.Deleters_qzc.UpdateEndIf'顯示簽訂合同成功MsgBox"簽訂合同成功!",vbOKOnly+vbInformation,"注意"'設(shè)置簽訂按鈕不可用cmdSign.Enabled=FalsecmdYaJin.Enabled=TruecmdZuJin.Enabled=True'關(guān)閉所有打開(kāi)的記錄集rs_qzc.Closers_yd.Closers_hcheck.Closers_contract.CloseExitSubElseMsgBox"該房屋已經(jīng)被別人預(yù)定了,請(qǐng)選擇另一房屋!",vbOKOnly+vbInformation,"注意"rs_hcheck.Closers_yd.CloseExitSubEndIf'該客戶即為預(yù)定客戶,可以出租ElseIfrs_yd.Fields(1)=Text1(1).TextThen'出租,加入合同表sqlcon="select*fromContract"rs_contract.Opensqlcon,conn,adOpenStatic,adLockOptimisticrs_contract.AddNewFori=0To11rs_contract.Fields(i)=Text1(i).TextNextirs_contract.Update'修改房屋狀態(tài)rs_hcheck(8)="已租"rs_hcheck.Update'刪除預(yù)定表中該項(xiàng)rs_yd.Deleters_yd.Update'檢查求租客戶表中是否有該客戶,如果有,則刪除之sqlqzc="select*fromQZClientwhere求租客戶姓名='"&Text1(1).Text&"'"rs_qzc.Opensqlqzc,conn,adOpenStatic,adLockOptimisticIfrs_qzc.EOF=FalseThenrs_qzc.Deleters_qzc.UpdateEndIf'顯示簽訂合同成功MsgBox"簽訂合同成功??!",vbOKOnly+vbInformation,"注意"'設(shè)置簽訂按鈕不可用cmdSign.Enabled=FalsecmdYaJin.Enabled=TruecmdZuJin.Enabled=True'關(guān)閉所有打開(kāi)的記錄集rs_qzc.Closers_yd.Closers_hcheck.Closers_contract.CloseExitSubEndIf'如果該房屋狀態(tài)為未租,則可以順利出租ElseIfrs_hcheck.Fields(8)="未租"Then'出租,加入合同表sqlcon="select*fromContract"rs_contract.Opensqlcon,conn,adOpenStatic,adLockOptimisticrs_contract.AddNewFori=0To11rs_contract.Fields(i)=Text1(i).TextNextirs_contract.Update'修改房屋狀態(tài)rs_hcheck(8)="已租"rs_hcheck.Update'檢查求租客戶表中是否有該客戶,如果有,則刪除之sqlqzc="select*fromQZClientwhere求租客戶姓名='"&Text1(1).Text&"'"rs_qzc.Opensqlqzc,conn,adOpenStatic,adLockOptimisticIfrs_qzc.EOF=FalseThenrs_qzc.Deleters_qzc.UpdateEndIf'顯示簽訂合同成功MsgBox"簽訂合同成功!",vbOKOnly+vbInformation,"注意"'設(shè)置簽訂按鈕不可用cmdSign.Enabled=FalsecmdYaJin.Enabled=TruecmdZuJin.Enabled=True'關(guān)閉所有打開(kāi)的記錄集rs_qzc.Closers_hcheck.Closers_contract.CloseExitSubEndIf4.3.3.2預(yù)定租房的設(shè)計(jì)其收取定金的設(shè)計(jì)如下:PrivateSubcmdDingJin_Click()fromYuding=TruecmdDingJin.Enabled=FalsefrmPayDingJin.ShowEndSub4.3.4財(cái)務(wù)管理模塊的設(shè)計(jì)4.3.4.1定金收取的設(shè)計(jì)系統(tǒng)維護(hù)的運(yùn)行效果圖如下:其收取定金按鈕的源碼設(shè)計(jì)如下:PrivateSubcmdAdd_Click()'先檢測(cè)數(shù)據(jù)完整性IfText1(0).Text=""ThenMsgBox"收費(fèi)編號(hào)不可為空!",vbOKOnly+vbInformation,"注意"Text1(0).SetFocusExitSubEndIfIfText1(2).Text=""OrIsDate(Text1(2).Text)=FalseThenMsgBox"收費(fèi)日期應(yīng)為這樣的日期格式:2003-8-3!",vbOKOnly+vbInformation,"注意"Text1(2).SetFocusExitSubEndIfIfText1(3).Text=""ThenMsgBox"預(yù)定單編號(hào)不可為空!",vbOKOnly+vbInformation,"注意"Text1(3).SetFocusExitSubEndIf'檢測(cè)該收費(fèi)編號(hào)是否已存在sqlch="select*fromDingJinwhere收費(fèi)編號(hào)='"&Text1(0).Text&"'"rs_ch.Opensqlch,conn,adOpenStatic,adLockOptimisticIfrs_ch.EOF=FalseThenMsgBox"該收費(fèi)編號(hào)已經(jīng)存在,請(qǐng)重新輸入一個(gè)!",vbOKOnly+vbInformation,"注意"Text1(0).SetFocusrs_ch.CloseExitSubEndIfrs_ch.Close'還需要檢測(cè)預(yù)定單編號(hào)是否存在、并且自動(dòng)寫入預(yù)定客戶和預(yù)定房屋編號(hào)sqlyd="select*fromYuDingwhere預(yù)定單編號(hào)='"&Text1(3).Text&"'"rs_yd.Opensqlyd,conn,adOpenStatic,adLockOptimisticIfrs_yd.EOF=TrueThenMsgBox"該預(yù)定單編號(hào)不存在!",vbOKOnly+vbInformation,"注意"rs_yd.CloseText1(3).SetFocusExitSubElseText1(1).Text=rs_yd.Fields(3)Text1(4).Text=rs_yd.Fields(1)Text1(5).Text=rs_yd.Fields(2)EndIf

溫馨提示

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

評(píng)論

0/150

提交評(píng)論