版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、房地產(chǎn)銷售管理信息系統(tǒng)的開(kāi)發(fā)與設(shè)計(jì)11 緒 論11.1 開(kāi)發(fā)環(huán)境的簡(jiǎn)介21.2 visual basic 6.0 簡(jiǎn)介21.3 sql server 2000簡(jiǎn)介21.2 前臺(tái)和后臺(tái)數(shù)據(jù)庫(kù)的連接32 系統(tǒng)的分析32.1 理解分析32.2 需求分析33 系統(tǒng)功能模塊設(shè)計(jì)43.1 房屋信息管理43.2 銷售信息管理44 數(shù)據(jù)庫(kù)設(shè)計(jì)54.1.1 樓房信息表54.1.2 房間信息表64.1.4 銷售記錄表64.2 e-r圖74.3 在sql sever2000中實(shí)現(xiàn)表創(chuàng)建的sql語(yǔ)句74.3.2 適用treeview控件顯示結(jié)構(gòu)94.3.3 sql多條查詢語(yǔ)句結(jié)構(gòu)95 系統(tǒng)主界面95.1 系統(tǒng)主窗體9
2、5.2公共模塊116 房屋信息管理126.1. 2 房間管理1661.3 信息查詢206 銷售信息管理226.1.1 客戶信息226.21 房屋定價(jià)266.2.2 房屋銷售296.2.3 統(tǒng)計(jì)分析327、小結(jié)33參考文獻(xiàn)33房地產(chǎn)銷售管理信息系統(tǒng)的開(kāi)發(fā)與設(shè)計(jì)1 緒 論從20世紀(jì)80年代開(kāi)始、隨著計(jì)算機(jī)硬件和軟件技術(shù)的發(fā)展,特別是計(jì)算機(jī)和通信網(wǎng)絡(luò)技術(shù)的日趨融合,信息化給企業(yè)帶來(lái)了巨大的變化,信息技術(shù)在企業(yè)中的應(yīng)用不再局限于企業(yè)活動(dòng)的某些環(huán)節(jié),而是逐步地滲透到企業(yè)活動(dòng)的各個(gè)領(lǐng)域、各個(gè)環(huán)節(jié),極大地改變了企業(yè)的生產(chǎn)、流通和組織管理方式,推動(dòng)了企業(yè)物資流、資金流和信息流的相互融合。憑借it信息技術(shù)和現(xiàn)代
3、管理思想,在這樣一個(gè)多元化的信息社會(huì)里建立房地產(chǎn)銷售平臺(tái)是大勢(shì)所趨。房地產(chǎn)管理是一項(xiàng)復(fù)雜的工作,它應(yīng)該非常及時(shí)地了解樓盤目前的基本信息,而且能方便的添加、編輯和查詢樓盤的資料。同時(shí),房地產(chǎn)的銷售要和大量的客戶接觸,所以這個(gè)銷售系統(tǒng)要能夠記錄相應(yīng)客戶的信息和需求等等。1.1 開(kāi)發(fā)環(huán)境的簡(jiǎn)介在對(duì)房地產(chǎn)銷售管理信息系統(tǒng)的設(shè)計(jì)中,本文采用了visual basic 6.0 作為開(kāi)發(fā)工具,sql server 2000作為數(shù)據(jù)庫(kù)管理工具。visual basic 6.0 是用來(lái)創(chuàng)建高性能的企業(yè)應(yīng)用程序及基于 web的應(yīng)用程序的最有效工具。visual basic 6.0 使開(kāi)發(fā)者得以創(chuàng)建駐留在客戶或服務(wù)
4、器上或運(yùn)行在分布式 n-層環(huán)境里的強(qiáng)壯應(yīng)用程序 。是快速創(chuàng)建以數(shù)據(jù)為中心的企業(yè)解決方案的完全套件。而sql server 2000則是目前最優(yōu)秀的數(shù)據(jù)庫(kù)管理系統(tǒng)之一,以其易用性得到很多用戶的青睞。 它包括支持開(kāi)發(fā)的引擎、標(biāo)準(zhǔn)的sql語(yǔ)言、擴(kuò)展的特性(如復(fù)制、olap、分析)等功能。1. 2 visual basic 6.0 簡(jiǎn)介 vb是一種可視化的、面向?qū)ο蠛筒捎檬录?qū)動(dòng)方式的結(jié)構(gòu)化高級(jí)程序設(shè)計(jì)語(yǔ)言,可用于開(kāi)發(fā)windows環(huán)境下的各類應(yīng)用程序。它簡(jiǎn)單易學(xué)、效率高,且功能強(qiáng)大可以與windowsr專業(yè)開(kāi)發(fā)工具sdk相媲美。在visualbasic環(huán)境下,利用事件驅(qū)動(dòng)的編程機(jī)制、新穎易用的可視化
5、設(shè)計(jì)工具,使用windows內(nèi)部的廣泛應(yīng)用程序接口(spi)函數(shù),以用動(dòng)態(tài)鏈接庫(kù)(dll)、對(duì)象的鏈接與世隔嵌入(ole)、開(kāi)放式數(shù)據(jù)連接(odbc)等技術(shù),可以高效、快速地開(kāi)發(fā)windows環(huán)境下功能強(qiáng)大、圖形界面豐富的應(yīng)用軟件系統(tǒng)。隨著版本的提高,visual basic的功能也越來(lái)越強(qiáng)。5.0版以后,visual basic推出了中文版,與前個(gè)版本相比,其功能有了很大提升。visual basic 6.0 是1998年的產(chǎn)品,后來(lái)又有幾次的升級(jí),現(xiàn)在用的大多數(shù)是sp4.1. 3 sql server 2000簡(jiǎn)介sql server 2000 是microsoft 公司推出的sql se
6、rver 數(shù)據(jù)庫(kù)管理系統(tǒng),該版本繼承了sql server 7.0 版本的優(yōu)點(diǎn)同時(shí)又比它增加了許多更先進(jìn)的功能具有使用方便可伸縮性好與相關(guān)軟件集成程度高等優(yōu)點(diǎn)。sql server 2000 中包括一系列管理和開(kāi)發(fā)工具,這些工具可改進(jìn)在多個(gè)站點(diǎn)上安裝、部署、管理和使用 sql server 的過(guò)程。sql server 2000 還支持基于標(biāo)準(zhǔn)的、與 windows dna 集成的程序設(shè)計(jì)模型,使 sql server 數(shù)據(jù)庫(kù)和數(shù)據(jù)倉(cāng)庫(kù)的使用成為生成強(qiáng)大的可伸縮系統(tǒng)的無(wú)縫部分。這些功能使您得以快速交付 sql server 應(yīng)用程序,使客戶只需最少的安裝和管理開(kāi)銷即可實(shí)現(xiàn)這些應(yīng)用程序。 數(shù)據(jù)倉(cāng)
7、庫(kù)。 sql server 2000 中包括析取和分析匯總數(shù)據(jù)以進(jìn)行聯(lián)機(jī)分析處理 (olap) 的工具。sql server 中還包括一些工具,可用來(lái)直觀地設(shè)計(jì)數(shù)據(jù)庫(kù)并通過(guò) english query 來(lái)分析數(shù)據(jù)1.2 前臺(tái)和后臺(tái)數(shù)據(jù)庫(kù)的連接本論文前臺(tái)和后臺(tái)的數(shù)據(jù)庫(kù)連接是采用ado控件來(lái)實(shí)現(xiàn)的,ado控件直接支持sql結(jié)構(gòu)化查詢語(yǔ)言,使用它可以用最少的代碼創(chuàng)建數(shù)據(jù)庫(kù)應(yīng)用程序。而ado控件操作簡(jiǎn)易,使用方便。ado數(shù)據(jù)控件常見(jiàn)的屬性有connectionstring屬性、commadandtype屬性、cursorlocation屬性、locktype屬性、recordsource屬性。實(shí)例化a
8、do數(shù)據(jù)控件時(shí),需要對(duì)這些屬性進(jìn)行賦值,代碼如下實(shí)例化ado控件:ado1 ado1.connectionstring = connectionstring 設(shè)置ado控件的連接字符串 ado1.commandtye = adcmdtext 定義commandtype;類型 ado1.cursorlocation = aduseclient 定義cursorlocation位置 ado1.locktype = adlockpessimistic 定義locktype 類型 ado1.recordsoure = “select * from 樓房信息表 定義數(shù)據(jù)源,結(jié)構(gòu)sql語(yǔ)句 ado1.re
9、fresh 刷新 2 系統(tǒng)的分析2. 1 理解分析在房地產(chǎn)開(kāi)發(fā)過(guò)程中,樓盤銷售是非常重要的環(huán)節(jié),也是房地產(chǎn)開(kāi)發(fā)的關(guān)鍵環(huán)節(jié),如何提供樓盤銷售服務(wù)之戀,也是顯的非常迫切的,而且通關(guān)管理系統(tǒng),可以來(lái)規(guī)范和管理銷售過(guò)程的各個(gè)環(huán)節(jié),并提供相關(guān)信息。這樣,可以極大的提高服務(wù)質(zhì)量和效率。2. 2 需求分析樓盤銷售管理主要負(fù)責(zé)管理房屋信息,并對(duì)房屋進(jìn)行定價(jià),然后進(jìn)行銷售,為用戶提供不同信息統(tǒng)計(jì)分析,滿足管理人員需求。該系統(tǒng)主要包括房屋信息管理和銷售信息管理兩大部分。 房屋信息管理:主要負(fù)責(zé)管理房屋的基本信息,包括樓房信息和房間信息 銷售信息管理:主要負(fù)責(zé)客戶信息、房屋定價(jià)、房屋銷售以及統(tǒng)計(jì)分析樓盤銷售管理系統(tǒng)
10、是為了滿足用戶進(jìn)行樓盤銷售而開(kāi)發(fā)的。所以,樓旁銷售管理系統(tǒng)應(yīng)達(dá)到以下目標(biāo): 減少人工的參與和基礎(chǔ)信息的錄入,具有良好的自治功能和信息循環(huán) 能夠方便地廣利客戶資料 能夠根據(jù)市場(chǎng)變化對(duì)房屋進(jìn)行定價(jià) 能夠管理所有的房屋信息,包括房信息和房間信息 能夠快速的進(jìn)行房屋信息的查詢3 系統(tǒng)功能模塊設(shè)計(jì)根據(jù)對(duì)樓盤銷售管理系統(tǒng)的需求分析,一個(gè)標(biāo)準(zhǔn)的樓銷售管理系統(tǒng)應(yīng)該包括房屋信息管理和銷售信息管理功能,如圖3.1所示。每一個(gè)功能模塊都包含了一系列的子功能。樓盤銷售管理系統(tǒng)房屋信息管理銷售信息管理 圖3.13.1 房屋信息管理房屋信息管理模塊用來(lái)管理樓房信息和房間信息,它包括樓房管理、房間管理和信息查詢3個(gè)子功能,
11、如圖下房屋信息管理樓房管理房間管理信息查詢樓房管理功能實(shí)現(xiàn)對(duì)樓房信息的維護(hù)這類信息主要包括樓房號(hào)、樓名、所處位置、占地面積、總投資、層數(shù)、房間數(shù)、簡(jiǎn)介等。該模塊提供對(duì)信息的增加、修改和刪除功能。房間管理功能實(shí)現(xiàn)對(duì)房間信息的維護(hù)。這類信息主要包括房間號(hào)、樓房號(hào)、位置、房間大小、適用戶型、銷售狀態(tài)、簡(jiǎn)介、成本價(jià)、銷售價(jià)、折扣率等。該模塊提供增加、修改刪除功能。信息查詢系統(tǒng)功能實(shí)現(xiàn)對(duì)樓房信息和房間信息的查詢。該模塊提供模式匹配和多條件查詢。3.2 銷售信息管理銷售信息管理模塊主要用來(lái)管理樓盤銷售情況,包括客戶信息、房屋定價(jià)、房屋銷售、統(tǒng)計(jì)分析4個(gè)子功能,如下圖銷售信息管理客戶信息房屋定價(jià)房屋銷售統(tǒng)計(jì)
12、分析 圖3.31 客戶信息客戶信息功能主要實(shí)現(xiàn)客戶基本信息維護(hù)。這類信息主要包括編號(hào)、姓名、性別、出生日期、婚否、家庭成員數(shù)、職位、身份證號(hào)、經(jīng)濟(jì)收入、備注。2. 房屋定價(jià)房屋定價(jià)功能主要實(shí)現(xiàn)對(duì)房間的統(tǒng)一定價(jià),涉及的信息包括成本價(jià)、銷售價(jià)格、折扣率。成本價(jià)是指房屋的成本價(jià)格:銷售價(jià)格是指房屋待銷售的價(jià)格;折扣率是指樓旁銷售時(shí)的折扣率。 3. 房屋銷售房屋銷售功能實(shí)現(xiàn)對(duì)房屋銷售信息的記錄。記錄的信息包括銷售id、房間號(hào)、樓房號(hào)、客戶編號(hào)、成本價(jià)、銷售價(jià)、折扣率、利潤(rùn)、付款方式、交易日期、備注等。銷售id為標(biāo)示種子,自增為1;銷售價(jià)是指打折后的銷售價(jià)格;利潤(rùn)=銷售價(jià)-成本價(jià)。 4. 統(tǒng)計(jì)分析 統(tǒng)計(jì)
13、分析功能主要實(shí)現(xiàn)對(duì)樓旁銷售信息的統(tǒng)計(jì)分析。它通過(guò)多條件進(jìn)行分析,分析條件主要有樓房號(hào)、利潤(rùn)、付款方式。4 數(shù)據(jù)庫(kù)設(shè)計(jì)根據(jù)系統(tǒng)需求,需要建立四張表,即樓房信息表格、房間信息表、客戶信息表、銷售記錄表。4.1.1 樓房信息表樓房信息表負(fù)責(zé)樓房信息,主要包括樓房號(hào)、樓名、所處位置、占地面積、總投資、層數(shù)、房間數(shù)、簡(jiǎn)介等,表結(jié)構(gòu)如下:4.1.2 房間信息表房間信息表負(fù)責(zé)維護(hù)房間信息,主要包括房間號(hào)、樓房號(hào)、位置、房間大小、適用戶型、銷售狀態(tài)、簡(jiǎn)介、成本價(jià)、折扣率等,表結(jié)構(gòu)如下4.1.3 客戶信息表客戶信息表格主要用語(yǔ)維護(hù)客戶的基本信息,主要包括看了客戶編號(hào)、姓名、性別、出生日期、婚否、家庭成員數(shù)、職位
14、、身份證號(hào)、經(jīng)濟(jì)收入、備注等,表結(jié)構(gòu)如下4.1.4 銷售記錄表銷售記錄表用于對(duì)房間進(jìn)行銷售,記錄銷售記錄,主要包括銷售id、房間號(hào)、樓房號(hào)、客戶編號(hào)、成本價(jià)、銷售價(jià)、折扣率、利潤(rùn)、付款方式、交易日期、備注等,表結(jié)構(gòu)如下:4.2 e-r圖 4.3 在sql sever2000中實(shí)現(xiàn)表創(chuàng)建的sql語(yǔ)句 樓盤銷售管理系統(tǒng)需要適用listview控件和treeview控件,以及如何結(jié)構(gòu)sql多條件查詢語(yǔ)語(yǔ)句。4.3.1 適用listview控件顯示數(shù)據(jù)listview控件是一個(gè)windows公共控件。作為一個(gè)增強(qiáng)功能的列表框,顯示更多的信息。listview控件可以適用4種不同試圖顯示項(xiàng)目,通過(guò)這些控
15、件,可將項(xiàng)目組成有或沒(méi)有列標(biāo)頭的列,并顯示伴隨的圖標(biāo)和文本,這樣可以直觀而方便地瀏覽各個(gè)對(duì)象的數(shù)據(jù)。listview控件并不是默認(rèn)的工具箱的配置項(xiàng)目,必須手工添加引用不撿,此外就是通過(guò)代碼來(lái)控制listview控件與數(shù)據(jù)的關(guān)聯(lián)了,其代碼如下所示:private sub loaddata()。裝載數(shù)據(jù) dim list as listitem dim key as string set rs = nothing sqlstr = select * from 樓房信息表 order by buildingid set rs = selectsql(sqlstr, msg) 查詢樓房信息 listv
16、iew1.listitems.clear 清空l(shuí)istview控件 if rs.recordcount = 0 then 如果不存在樓房信息,添加按鈕可用,其他按鈕不可用 cmdadd.enabled = true: cmdmodify.enabled = false: cmddelete.enabled = false cmdcancel.enabled = false: cmdsave.enabled = false else 如果存在樓房信息,初始化listview控件 rs.movefirst do until rs.eof key = rs.fields(buildingid) &
17、rs.fields(bdname) set list = listview1.listitems.add(, , key, 1) rs.movenext loop 編輯控件可用性 cmdadd.enabled = true: cmdmodify.enabled = true: cmddelete.enabled = true cmdcancel.enabled = false: cmdsave.enabled = false rs.movefirst 返回到第一條記錄 end if 設(shè)置控件enable值 call ctrenable(false)end subprivate sub ctre
18、nable(flag as boolean)設(shè)置控件的enable值 txtbuildingid.enabled = flag txtname.enabled = flag txtarea.enabled = flag txtinvest.enabled = flag txtfloors.enabled = flag txtrooms.enabled = flag txtposition.enabled = flag txtnotes.enabled = flagend subprivate sub showdata()在控件中顯示數(shù)據(jù) if rs.recordcount 0 then 如果存
19、在記錄 為控件賦值 txtbuildingid.text = rs.fields(buildingid) txtname.text = rs.fields(bdname) txtarea.text = rs.fields(area) txtinvest.text = rs.fields(investment) txtfloors.text = rs.fields(layers) txtrooms.text = rs.fields(roomn) txtposition.text = rs.fields(bdposition) txtnotes.text = rs.fields(bdintrodu
20、ction) end ifend subprivate sub listview1_click()在控件中顯示樓房信息 dim key as string if rs.recordcount 0 then key = trim(listview1.selecteditem) sqlstr = select * from 樓房信息表 where buildingid= & left(key, 4) & set rs = selectsql(sqlstr, msg) call showdata 重新顯示數(shù)據(jù) end ifend subprivate sub cmdadd_click()添加操作 c
21、all ctrclear 所有控件重置 call ctrenable(true) 設(shè)置控件enable值為可用 flag = add 設(shè)置標(biāo)志flag,表示所進(jìn)行的操作為添加 添加、修改、刪除按鈕不可用,取消、保存按鈕可用 cmdadd.enabled = false: cmdmodify.enabled = false: cmddelete.enabled = false cmdcancel.enabled = true: cmdsave.enabled = trueend sub用戶單擊listview的listitem來(lái)觸發(fā)listview的click事件,并通過(guò)查詢語(yǔ)句查詢所單擊的li
22、stitem對(duì)應(yīng)的樓房數(shù)據(jù),最后用text文本顯示出來(lái)。這樣,listview很好的發(fā)揮了圖形功能,讓界面更有人性化4.3.2 適用treeview控件顯示結(jié)構(gòu)treeview控件為用戶提供了一種按層次結(jié)構(gòu)顯示信息的方式,它包含了稱作節(jié)點(diǎn)(node)的條目列表,每一節(jié)點(diǎn)都可以有自己的節(jié)點(diǎn),從而提供一種更深層次的數(shù)據(jù)定義,每個(gè)節(jié)點(diǎn)都可以被折疊起來(lái),從而允許訪問(wèn)者在一個(gè)treeviewk控件中查找,只查看所感興趣的那一級(jí)的數(shù)據(jù),如某一樓房的各個(gè)房間數(shù)據(jù),node對(duì)象是treeview控件中的一線,它包含圖像和文本,nodes集合包含一個(gè)或多個(gè)node對(duì)象,語(yǔ)法如下: treeview.nodes,
23、treeview.nodes.item(index)。4.3.3 sql多條查詢語(yǔ)句結(jié)構(gòu)在統(tǒng)計(jì)分析模塊中,需要通過(guò)多條件進(jìn)行分析。分析條件主要有樓房號(hào)、利潤(rùn)以及付款方式。實(shí)現(xiàn)該功能,只需把各個(gè)查詢語(yǔ)句連接起來(lái),構(gòu)造sql語(yǔ)句,其代碼如下:private sub cmdquery_click()分析銷售信息,構(gòu)造sql語(yǔ)句 sqlstr = select * from 銷售記錄表 where 1=1 if chkbuildingid.value = 1 then 如果通過(guò)樓房號(hào)來(lái)進(jìn)行分析 if trim(cobbuildingid.text) 所有 then sqlstr = sqlstr &
24、and buildingid= & left(trim(cobbuildingid.text), 4) & end if end if if chkmethod.value = 1 then 如果通過(guò)付款方式來(lái)進(jìn)行分析 sqlstr = sqlstr & and payment= & trim(cobmethod.text) & end if if chkprofit.value = 1 then 如果通過(guò)利潤(rùn)來(lái)進(jìn)行分析 sqlstr = sqlstr & and profit between & txtroomarea1 & and & txtroomarea2 end if set rs
25、= selectsql(sqlstr, msg) set datagrid1.datasource = rs datagrid1.refreshend sub5系統(tǒng)主界面系統(tǒng)主界面主要用于構(gòu)建系統(tǒng)的主窗體,并編寫(xiě)一些公共模塊,方便其他子窗體構(gòu)建和調(diào)用。5.1 系統(tǒng)主窗體系統(tǒng)主窗體主要由窗體本身和菜單構(gòu)成。首先建立一個(gè)工程,然后創(chuàng)建系統(tǒng)主窗體,主窗體的菜單,并在主窗體中添加窗體代碼,來(lái)處理接各個(gè)子窗體的關(guān)系。樓盤銷售管理系統(tǒng)的主界面如下:主窗體屬性設(shè)置如下:在主窗體中調(diào)用、切換不同界面,進(jìn)行相應(yīng)功能的實(shí)現(xiàn),其代碼如下:private sub building_click() frmbuildin
26、g.show 打開(kāi)樓房管理界面end subprivate sub custom_click() frmcustomer.show 打開(kāi)客戶信息界面end subprivate sub info_click() frminfo.show 打開(kāi)信息查詢界面end subprivate sub mnuend_click() unload me 結(jié)束end subprivate sub price_click() frmprice.show 打開(kāi)房屋定價(jià)界面end subprivate sub room_click() frmroom.show 打開(kāi)房間管理界面end subprivate sub
27、sale_click() frmsale.show 打開(kāi)樓盤銷售界面end subprivate sub statistics_click() frmstatistics.show 打開(kāi)統(tǒng)計(jì)分析界面end sub5.2公共模塊在visual basic 中可以使用公共模塊來(lái)存放整個(gè)項(xiàng)目所需要的公用函數(shù)和全局變量,來(lái)提高代碼的利用率,在項(xiàng)目資源管理器重為項(xiàng)目添加一個(gè)module,保存為operatedata.bas。opweatedata公共模塊主要是用來(lái)對(duì)數(shù)據(jù)庫(kù)操作的,主要包括以下4個(gè)函數(shù)。 connstr() as string 函數(shù),返回連接字符串,用來(lái)設(shè)置數(shù)據(jù)庫(kù)連接字符串。 openco
28、nn(byref conn as adodb.connection) as boolean函數(shù),返回布爾值,用來(lái)打開(kāi)數(shù)據(jù)庫(kù)連接。 executesql(byval sqlstr as string,byref msg as string)函數(shù),返回布爾值,用來(lái)執(zhí)行sql語(yǔ)句。 selectsql(by val sqlstr as string,byref msg as string) as adob.recordset函數(shù),返回recordset,用來(lái)執(zhí)行查詢語(yǔ)句。公共模塊的代碼如下所示. public function connstr() as string 設(shè)置數(shù)據(jù)庫(kù)連接字符串 conns
29、tr = provider=sqloledb.1;integrated security=sspi; & _ persist security info=false;initial catalog=樓盤銷售系統(tǒng)end functionpublic function openconn(byref conn as adodb.connection) as boolean打開(kāi)數(shù)據(jù)庫(kù)連接,連接成功返回true,出錯(cuò)時(shí)返回false set conn = new adodb.connection 出錯(cuò)處理 on error goto errorhandle 出錯(cuò)處理 conn.open connstr
30、打開(kāi)數(shù)據(jù)庫(kù)連接 openconn = true exit functionerrorhandle: 如果出錯(cuò),進(jìn)行錯(cuò)誤處理 msgbox 連接數(shù)據(jù)庫(kù)失?。≌?qǐng)重新連接! openconn = false exit functionend functionpublic sub executesql(byval sqlstr as string, byref msg as string)執(zhí)行sql語(yǔ)句 dim conn as adodb.connection dim stokens() as string 出錯(cuò)處理 on error goto errorhandle 判斷sql語(yǔ)句 stokens
31、= split(sql) 調(diào)用split函數(shù)拆分sql語(yǔ)句 if instr(insert,delete,update, ucase(stokens(0) then 打開(kāi)數(shù)據(jù)庫(kù)連接 if openconn(conn) then 如果打開(kāi)連接成功,執(zhí)行sql語(yǔ)句 conn.execute sqlstr msg = stokens(0) & 操作執(zhí)行成功! end if else msg = sql語(yǔ)句有誤: & sqlstr end iffinally_exit: 程序結(jié)束的時(shí)候進(jìn)行對(duì)象銷毀工作 set rst = nothing set conn = nothing exit suberror
32、handle: msg = 執(zhí)行錯(cuò)誤: & err.description resume finally_exitend subpublic function selectsql(byval sqlstr _as string, byref msg as string) as adodb.recordset執(zhí)行sql語(yǔ)句,返回adodb.recordset dim conn as adodb.connection dim rst as adodb.recordset dim stokens() as string 出錯(cuò)處理 on error goto errorhandle 判斷sql語(yǔ)句 s
33、tokens = split(sqlstr) if instr(select, ucase(stokens(0) then 打開(kāi)數(shù)據(jù)庫(kù)連接 if openconn(conn) then 如果打開(kāi)連接成功,就進(jìn)行查詢操作 set rst = new adodb.recordset rst.cursorlocation = aduseclient rst.open trim$(sqlstr), conn, adopendynamic, adlockoptimistic 執(zhí)行查詢操作 set selectsql = rst msg = 查詢到 & rst.recordcount & 條記錄! end
34、 if else msg = sql語(yǔ)句有誤: & sqlstr end iffinally_exit: set rst = nothing set conn = nothing exit functionerrorhandle: 如果sql語(yǔ)句執(zhí)行出錯(cuò),提示出錯(cuò)信息并轉(zhuǎn)到finally_exit msgstring = 查詢錯(cuò)誤: & _ err.description resume finally_exitend function6 房屋信息管理簡(jiǎn)歷好主窗體后,開(kāi)始對(duì)兩個(gè)管理模塊的簡(jiǎn)歷進(jìn)行闡述。首先是房屋信息管理模塊,它主要實(shí)現(xiàn)樓房管理、房間管理和信息查詢等功能。樓房管理簡(jiǎn)歷樓房信息,并對(duì)
35、樓房信息進(jìn)行維護(hù);房間管理設(shè)置房間信息,并對(duì)房間信息進(jìn)行維護(hù);信息查詢提供房間信息查詢功能。6.1. 1 樓房管理樓房管理主要用于簡(jiǎn)歷婁煩信息,包括樓房號(hào)、樓名、所處位置、占地面積、總投資、層數(shù)、房間數(shù)、簡(jiǎn)介等,并對(duì)樓房信息進(jìn)行添加、修改、刪除等操作。 樓房管理界面樓房管理窗體主要空間的屬性如表所示具體代碼如下:運(yùn)行窗體時(shí)出發(fā)load事件,調(diào)用loaddata過(guò)程初始化樓房listview設(shè)置空間可用屬性,調(diào)用showdata過(guò)程顯示數(shù)據(jù),其代碼如下: option explicitdim rs as adodb.recordsetdim sqlstr as stringdim msg as
36、stringdim flag as string 判斷是新增記錄還是修改記錄private sub form_load() call loaddata 裝載數(shù)據(jù) call showdata 顯示數(shù)據(jù)end sub 調(diào)用loaddata過(guò)程,裝載數(shù)據(jù),其代碼如下:private sub loaddata()裝載數(shù)據(jù) dim list as listitem dim key as string set rs = nothing sqlstr = select * from 樓房信息表 order by buildingid set rs = selectsql(sqlstr, msg) 查詢樓房信
37、息 listview1.listitems.clear 清空l(shuí)istview控件 if rs.recordcount = 0 then 如果不存在樓房信息,添加按鈕可用,其他按鈕不可用 cmdadd.enabled = true: cmdmodify.enabled = false: cmddelete.enabled = false cmdcancel.enabled = false: cmdsave.enabled = false else 如果存在樓房信息,初始化listview控件 rs.movefirst do until rs.eof key = rs.fields(buildin
38、gid) & rs.fields(bdname) set list = listview1.listitems.add(, , key, 1) rs.movenext loop 編輯控件可用性 cmdadd.enabled = true: cmdmodify.enabled = true: cmddelete.enabled = true cmdcancel.enabled = false: cmdsave.enabled = false rs.movefirst 返回到第一條記錄 end if 設(shè)置控件enable值 call ctrenable(false)end sub 調(diào)用ctrena
39、ble過(guò)程設(shè)置空間的可屬性其代碼如下所示: private sub ctrenable(flag as boolean)設(shè)置控件的enable值 txtbuildingid.enabled = flag txtname.enabled = flag txtarea.enabled = flag txtinvest.enabled = flag txtfloors.enabled = flag txtrooms.enabled = flag txtposition.enabled = flag txtnotes.enabled = flagend sub 調(diào)用showdata過(guò)程,在控件中顯示字
40、段的相應(yīng)數(shù)據(jù),期代碼如下: private sub showdata()在控件中顯示數(shù)據(jù) if rs.recordcount 0 then 如果存在記錄 為控件賦值 txtbuildingid.text = rs.fields(buildingid) txtname.text = rs.fields(bdname) txtarea.text = rs.fields(area) txtinvest.text = rs.fields(investment) txtfloors.text = rs.fields(layers) txtrooms.text = rs.fields(roomn) txt
41、position.text = rs.fields(bdposition) txtnotes.text = rs.fields(bdintroduction) end ifend sub(2)當(dāng)用戶單擊listview控件中樓房圖標(biāo)時(shí),將出發(fā)listview1_cilk事件,在控件中顯示樓房信息,代碼如下: private sub listview1_click()在控件中顯示樓房信息 dim key as string if rs.recordcount 0 then key = trim(listview1.selecteditem) sqlstr = select * from 樓房信息
42、表 where buildingid= & left(key, 4) & set rs = selectsql(sqlstr, msg) call showdata 重新顯示數(shù)據(jù) end ifend sub(3) 當(dāng)用戶單擊【保存】按鈕時(shí),將觸發(fā)cmdsave_cilk事件。在保存數(shù)據(jù)庫(kù)之前,要對(duì)數(shù)據(jù)進(jìn)行合法性檢查,需要調(diào)用checkdata函數(shù),返回true時(shí)候表示數(shù)據(jù)合法,返回false時(shí)表示數(shù)據(jù)非法。同時(shí)需要調(diào)用setdata過(guò)程來(lái)設(shè)置數(shù)據(jù),其代碼如下所示; private sub cmdsave_click()保存操作on error goto errmsg 錯(cuò)誤處理 if not c
43、heckdata then exit sub 如果數(shù)據(jù)不合法就退出操作 if flag = modify then 如果是修改數(shù)據(jù),給出修改提示 msg = msgbox(您確實(shí)要修改這條數(shù)據(jù)嗎?, vbyesno) if msg = vbyes then call setdata 設(shè)置數(shù)據(jù)字段的值 else exit sub end if elseif flag = add then 如果是添加新數(shù)據(jù) rs.addnew call setdata 設(shè)置數(shù)據(jù)字段的值 end if rs.update 更新數(shù)據(jù) 設(shè)置控件的可用性 cmdmodify.enabled = true: cmddele
44、te.enabled = true: cmdadd.enabled = true cmdsave.enabled = false: cmdcancel.enabled = false if flag = add then msgbox (成功添加數(shù)據(jù)!) else msgbox (成功更新數(shù)據(jù)!) end if call loaddata 重新裝載數(shù)據(jù) if rs.recordcount 0 then 定位到添加或修改記錄 rs.movefirst rs.find (buildingid= & trim(txtbuildingid.text) & ) if not rs.eof then ca
45、ll showdata 重新顯示數(shù)據(jù) end if exit suberrmsg: 報(bào)告出錯(cuò)信息 msgbox err.description, vbexclamation, 出錯(cuò)end sub 調(diào)用checkdata函數(shù),返回ture時(shí)表示數(shù)據(jù)合法,返回false時(shí)表示數(shù)據(jù)非法,其代碼如下所示:private function checkdata() as boolean檢查數(shù)據(jù)的合法性 dim rst as adodb.recordset dim msgt as string msgt = 檢查數(shù)據(jù) if trim(txtbuildingid.text) = then 檢查樓房號(hào)是否為空 msgt = 樓房號(hào)為空; elseif len(txtbuildingid.text) 4 then 檢查樓房號(hào)是否為4位 msgt = msgt & 樓房號(hào)不是4位; elseif trim(txtname.text) = then 檢查樓名是否為空 msgt = msgt & 樓名為空; end if if not msgt = then 如果提示信息不為空,給出錯(cuò)誤提示 msgbox (msgt) checkdata = false 返回false exit function end
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 寵物服務(wù)保安工作總結(jié)
- 【正版授權(quán)】 ISO 59040:2025 EN Circular economy - Product circularity data sheet
- 2025-2030全球商業(yè)藥品采購(gòu)行業(yè)調(diào)研及趨勢(shì)分析報(bào)告
- 2025年全球及中國(guó)草酸镥水合物行業(yè)頭部企業(yè)市場(chǎng)占有率及排名調(diào)研報(bào)告
- 2025-2030全球農(nóng)機(jī)三角帶行業(yè)調(diào)研及趨勢(shì)分析報(bào)告
- 2025-2030全球工業(yè)級(jí)硅酸鉀行業(yè)調(diào)研及趨勢(shì)分析報(bào)告
- 2025年全球及中國(guó)航空航天設(shè)備零部件用清洗機(jī)行業(yè)頭部企業(yè)市場(chǎng)占有率及排名調(diào)研報(bào)告
- 2025-2030全球直流電流分流器行業(yè)調(diào)研及趨勢(shì)分析報(bào)告
- 2025-2030全球帳篷地面釘行業(yè)調(diào)研及趨勢(shì)分析報(bào)告
- 2025-2030全球500+Ah電芯行業(yè)調(diào)研及趨勢(shì)分析報(bào)告
- 【字貼】人教PEP版-小學(xué)英語(yǔ)四年級(jí)上冊(cè)單詞表國(guó)標(biāo)體描紅字帖(含音標(biāo))
- 班組建設(shè)考核制度
- 如何寫(xiě)好賞析文章
- 超聲科圖像質(zhì)量評(píng)價(jià)細(xì)則及超聲科制度匯編
- 損傷控制性手術(shù)
- 中國(guó)古代文學(xué)史 馬工程課件(中)24第六編 遼西夏金元文學(xué) 緒論
- 2022版義務(wù)教育(勞動(dòng))課程標(biāo)準(zhǔn)(含2022年修訂部分)
- 過(guò)松源晨炊漆公店(其五)課件
- 最新交管12123學(xué)法減分題庫(kù)含答案(通用版)
- 安全事故案例圖片(76張)課件
- 奢侈品管理概論完整版教學(xué)課件全書(shū)電子講義(最新)
評(píng)論
0/150
提交評(píng)論