毕业设计-房屋租赁管理系统_第1页
毕业设计-房屋租赁管理系统_第2页
毕业设计-房屋租赁管理系统_第3页
毕业设计-房屋租赁管理系统_第4页
毕业设计-房屋租赁管理系统_第5页
已阅读5页,还剩106页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

毕业设计-房屋租赁管理系统LTPAGEPAGE45届XXXX班毕业论文存档编号:XX大学毕业论文题目房屋租赁管理系统专业:计算机科学与技术年级:2002学号:200000000000论文作者:XXX指导教师:XXX职称:教授XX大学计算机学院制完成时间:2006年03月20日摘要随着我国市场经济的快速发展和人们生活水平的不断提高,简单的租凭服务已经不能满足人们的需求。如何利用先进的管理手段,提高房屋租凭管理水平,是当今社会所面临的一个重要课题。本文通过用VB6.0编写房屋租赁管理系统,利用软件工程原理,采用面向对象的编程方法,其开发主要包括后台数据库的建立和维护以及前端应用程序的开发两个方面,实现了房屋租赁管理的自动化和信息化.整个系统从符合操作简便、界面友好、灵活、实用、安全的要求出发,完成基本资料管理、客户资料管理、租凭合同管理、财务管理、统计报表管理等功能.经过实际测试证明,本文所设计的房屋租赁管理系统可以用于物业管理部门从第一章序论1.1课题来源随着我国市场经济的快速发展和信息化水平的不断提高,如何利用先进的管理手段,提高物业管理的水平,是当今社会所面临的一个课题。提高企业的管理水平,必须全方位地提高企业的管理意识。只有高标准、高质量的管理才能满足企业的发展需求。面对信息时代的挑战,利用高科技手段来提高房屋租赁管理无疑是一条行之有效的途径。在某种意义上,信息与科技在企业管理与现代化建设中显现出越来越重要的地位。房租租赁管理方面的信息化与科学化,已成为现代化生活水平步入高台阶的重要标志。随着计算机技术不断的飞速发展,计算机以及计算机控制的自动处理技术已融入人类社会的各个领域并发挥着越来越重要的作用。对于当今的科学信息是一次重大的飞越,为人们的生活、工作、学习带来潜移默化的影响。今天我们使用计算机对房屋租赁信息进行管理,具有手工管理所无法比拟的优点。例如:检索迅速、查找方便、可靠性高、存储量大、保密性好、寿命长、成本低等。这些优点能够极大地提高房屋租赁管理的效率。面对目前的实际状况,迫切需要开发一个新系统来适应这一些工作.1.2开发背景和开发目的利用计算机实现物业管理中的房屋租赁管理势在必行。对于物业管理企业来说,利用计算机支持企业高效率完成房屋租赁管理的日常事务,是适应现代企业制度要求、推动企业劳动型管理走向科学化、规范化的必要条件;而房屋租赁管理是一项琐碎、复杂而又十分细致的工作,房屋的基本资料,客户资料的管理,房屋租赁管理,各项收费以及统计报表的管理,一般不允许出错,如果实行手工操作,须手工填制大量的表格,这就会耗费工作人员大量的时间和精力,计算机进行房屋租赁工作的管理,不仅能够保证各项信息准确无误、快速输出,同时计算机具有手工管理所无法比拟的优点.例如:检索迅速、查找方便、可靠性高、存储量大、保密性好、寿命长、成本低等。这些优点能够极大地提高物业管理的效率,也是企业的科学化、正规化管理,与世界接轨的重要条件。开发本系统就是为了解决物业管理企业在房屋租赁信息管理中的一些不规范,使房屋租赁信息的管理向着规范化、简单化、有效化的方向发展。1.3可行性分析1.3.1经济可行性分析 本系统开发简单但要耗去一定的时间,所用的开发工具和软件都差不多是免费的。而且,由于系统能够在未来较长的一段时期内稳定地发挥作用,这对于学生房屋租赁信息的自动化管理,称业管理企业的人力和财力都有很大的帮助。由此可见在,开发此系统在经济上是完全可行的。1.3.2操作可行性分析 如今的计算机已经走进千家万户,硬件成本的下降,导致计算机购买成本的降低.我的这套系统是利用自己的计算机加MicrosoftVisualFoxPro6.0作为软件的开发平台,使开发出来的系统有友好的用户界面、有良好的安全性设置、有详细的操作说明书,这样更使各类用户很快地掌握系统的使用方法,操作友好因此在操作上是可行的.1.3.3技术可行性分析 从目前IT业界比较流行的数据库开发、管理软件来看,对于比较简单的中小型数据库,VisualBasic6.0和Windows2000的结合无疑是在实际应用中较为成功的一种解决方案。为用户提供了业界软件开发一直坚持的非常友好、操作简单的用户界面、完善强大的数据库操作功能和简洁明了的数据库接口。所以技术实行起来相对会容易。1.4本文所做的工作第一章绪论部分主要叙述课题来源、开发背景和开发目的,可行性分析,分析比较当前开发工具,数据库技术的比较。第二章结合软件工程方法,对系统进行需求分析、系统目标和应用现状调查、系统总体流程图与功能调查图绘制与分析。第三章在需求分析的基础上选择好开发工具,并对开发工具做简要描述.第四章根据需求分析的结果,对系统进行概要设计,主要介绍用VisualBasic6.0创建应用程序的步骤,以及在本系统开发的所用到控件.实现每一个模块的具体功能。第五章根据第四章的创建应用程序步骤及VisualBasic6.0提供的控件进行房屋租赁管理系统的详细设计.重点分析数据库的设计以及主要功能模块的实现.第六章在完成了主要功能模块的设计后,本章进行的系统主程序的设计,以及怎样在VisualBasic6.0环境下生成应用程序.第七章毕业设计小结,总结部分介绍了设计体会和编程体会.设计存在的不足,及今后的学习方向.第二章需求分析2.1系统目标采用企业现有的软硬件环境及科学的管理系统开发方案,建立房屋租赁信息管理系统,实现房屋租赁信息管理的计算机自动化。系统应符合物业管理企业原有的房屋租赁管理制度,并达到操作直观、方便、实用、安全等要求。2.2应用现状调查当前,很多物业管理企业的房屋租赁信息管理都是以纸张为介质作记录,人力管理的比例比较大,往往是各个主要负责人以书面的形式管理房屋租赁信息,效率低下。数据打印,汇总,成绩更新不及时,容易丢失,损坏数据给学校学生带来损失,不易保存且数据保密性较差。2.3系统总体流程图如下:2.4系统的数据流程图及分析:房屋登记房屋登记基本信息输入定金管理下定金,预定管理合同签订押金管理租户求租资料客户登记信息求租数据流程图整个系统从总体上分为基本资料管理、客户资料管理、租赁管理、财务管理以及统计报表五大部分,每一部分实现的功能如下:基本资料管理功能:实现房屋基本资料的管理.客户资料管理:分租户基本资料跟求租户基本资料管理租赁管理:分为合同签订,合同续签,合同管理,预定租房,合同查询,预定单查询,出租到期提醒,预定到期提醒。财务管理功能分定金、押金、租金收取,租金管理,定金退还,押金退还。统计报表功能:房屋统计报表,租户统计报表,求租客户信息表,历史租户表,现有合同表,历史合同表,预定金统计,押金,定金统计,租金统计等功能2.5系统功能模块图房屋租赁管理系统基本资料房屋租赁管理系统基本资料客户资料租赁管理财务管理统计报表房屋基本管理租户基本资料求租客户资料合同续签合同管理预定租房合同查询预定单查询出租到期提醒预定到期提醒合同签定财务管理财务财务管理定金收取租金收取押金收取租金管理定金退还押金退还统计报表财务财务管理基本资料基本资料基本资料基本资料基本资料预定单统计租户信息表求租客户房屋统计历史租户现有合同历史合同定金统计租金统计第三章开发工具的选择及简介3.1开发工具的选择针对目前世界上流行的大量软件和开发工具,经过认真分析其优缺点,结合数据库管理系统的需要和目前的硬件环境,我们选用微软WINDOWS平台下的VisualBasic6.0(简写为VB6.0)作为房屋租赁管理系统的开发工具.3.2开发工具简介现在,市场上可以选购的应用开发产品很多,流行的也有数十种。目前在我国市场上最为流行、使用最多、最为先进的可用作企业级开发工具的产品有:Microsoft公司的VisualBasicMicrosoft公司的VisualCMicrosoft公司的VisualFoxProBorland公司的DelphiPowersoft公司的PowerBuliderJava等等在目前市场上这些众多的程序开发工具中,有些强调程序语言的弹性与执行效率;有些则偏重于可视化程序开发工具所带来的便利性与效率的得高,各有各的优点和特色,也满足了不同用户的需求。然而,语言的弹性和工具的便利性是密不可分的,只有便利的工具,却没有弹性的语言作支持,许多特殊化的处理动作必需要耗费数倍的工夫来处理,使得原来所标榜的效率提高的优点失去了作用;相反,如果只强调程序语言的弹性,却没有便利的工具作配合,会使一些即使非常简单的界面处理动作,也会严重地浪费程序设计师的宝贵时间。VisualBasic是美国微软公司的第一个编程工具和系统开发的第一个产品,VisualBasic以优良的性能、较强的系统开发功能、完美的视觉界面和简单易学的特点,已经赢得了全世界广大用户的偏爱。VisualBasic的编程环境包含了快速有效的开发功能,尤其是数据窗口这一方便而简洁操纵数据库的智能化对象,使系统的开发更人性化,操作更简便。作为管理信息系统的开发,VisualBasic是一个非常理想选择。VisualBasic是一种可视化的、面对对象和条用事件驱动方式的结构化高级程序设计,可用于开发Windows环境下的种类应用程序。它简单易学、效率高,且功能强大,可以与Windows的专业开发工具SDK相媲美,而且程序开发人员不必具有C/C++编程基础。在VisualBasic环境下,利用事件驱动的编程机制、新颖易用的可视化设计工具,使用Windows内部的应用程序接口(API)函数,以及动态链接库(DLL)、动态数据交换(DDE)、对象的链接与嵌入(OLE)、开放式数据访问(ODBC)等技术,可以高效、快速地开发出Windows环境下功能强大、图形界面丰富的应用软件系统。总的来说,VisualBasic6.0具有以下特点:VisualBasic是一种可视化的、面对对象和条用事件驱动方式的结构化高级程序设计,可用于开发Windows环境下的种类应用程序。它简单易学、效率高,且功能强大,可以与Windows的专业开发工具SDK相媲美,而且程序开发人员不必具有C/C++编程基础。在VisualBasic环境下,利用事件驱动的编程机制、新颖易用的可视化设计工具,使用Windows内部的应用程序接口(API)函数,以及动态链接库(DLL)、动态数据交换(DDE)、对象的链接与嵌入(OLE)、开放式数据访问(ODBC)等技术,可以高效、快速地开发出Windows环境下功能强大、图形界面丰富的应用软件系统。可视化编程:用传统程序设计语言设计程序时,都是通过编写程序代码来设计用户界面,在设计过程中看不到界面的实际显示效果,必须编译后运行程序才能观察。如果对界面的效果不满意,还要回到程序中修改。有时候,这种编程-编译-修改的操作可能要反复多次,大大影响了软件开发效率。VisualBasic提供了可视化设计工具,把Windows界面设计的复杂性“封装”起来,开发人员不必为界面设计而编写大量程序代码。只需要按设计要求的屏幕布局,用系统提供的工具,在屏幕上画出各种“部件”,即图形对象,并设置这些图形对象的属性。VisualBasic自动产生界面设计代码,程序设计人员只需要编写实现程序功能的那部分代码,从而可以大大提高程序设计的效率。面向对象的程序设计4.0版以后的VisualBasic支持面向对象的程序设计,但它与一般的面向对象的程序设计语言(C++)不完全相同。在一般的面向对象程序设计语言中,对象由程序代码和数据组成,是抽象的概念;而VisualBasic则是应用面向对象的程序设计方法(OOP),把程序和数据封装起来作为一个对象,并为每个对象赋予应有的属性,使对象成为实在的东西。在设计对象时,不必编写建立和描述每个对象的程序代码,而是用工具画在界面上,VisualBasic自动生成对象的程序代码并封装起来。每个对象以图形方式显示在界面上,都是可视的。结构化程序设计语言VisualBasic是在BASIC语言的基础上发展起来的,具有高级程序设计语言的语句结构,接近于自然语言和人类的逻辑思维方式。VisualBasic语句简单易懂,其编辑器支持彩色代码,可自动进行语法错误检查,同时具有功能强大且使用灵活的调试器和编译器。VisualBasic是解释型语言,在输入代码的同时,解释系统将高级语言分解翻译成计算机可以识别的机器指令,并判断每个语句的语法错误。在设计VisualBasic程序的过程中,随时可以运行程序,而在整个程序设计好之后,可以编译生成可执行文件(.EXE),脱离VisualBasic环境,直接在Windows环境下运行。事件驱动编程机制VisualBasic通过事件来执行对象的操作。一个对象可能会产生多个事件,每个事件都可以通过一段程序来响应。例如,命令按钮是一个对象,当用户单击该按钮时,将产生一个“单击”(CLICK)事件,而在产生该事件时将执行一段程序,用来实现指定的操作。在用VisualBasic设计大型应用软件时,不必建立具有明显开始和结束的程序,而是编写若干个微小的子程序,即过程。这些过程分别面向不同的对象,由用户操作引发某个事件来驱动完成某种特定的功能,或者由事件驱动程序调用通用过程来执行指定的操作,这样可以方便编程人员,提高效率。访问数据库VisualBasic具有强大的数据库管理功能,利用数据控件和数据库管理窗口,可以直接建立或处理MicrosoftAccess格式的数据库,并提供了强大的数据存储和检索功能。同时,VisualBasic还能直接编辑和访问其他外部数据库,如dBASE,FoxPro,Paradox等,这些数据库格式都可以用VisualBasic编辑和处理。VisualBasic提供开放式数据连接,即ODBC功能,可通过直接访问或建立连接的方式使用并操作后台大型网络数据库,如SQLServer,Oracle等。在应用程序中,可以使用结构化查询语言SQL数据标准,直接访问服务器上的数据库,并提供了简单的面向对象的库操作指令和多用户数据库访问的加锁机制和网络数据库的SQL的编程技术,为单机上运行的数据库提供了SQL网络接口,以便在分布式环境中快速而有效地实现客户/服务器(client/server)方案。动态数据交换(DDE)利用动态数据交换(DynamicDataExchange)技术,可以把一种应用程序中的数据动态地链接到另一种应用程序中,使两种完全不同的应用程序建立起一条动态数据链路。当原始数据变化时,可以自动更新链接的数据。VisualBasic提供了动态数据交换的编程技术,可以在应用程序中与其他Windows应用程序建立动态数据交换,在不同的应用程序之间进行通信。对象的链接与嵌入(OLE)对象的链接与嵌入(OLE)将每个应用程序都看作是一个对象(object),将不同的对象链接(link)起来,再嵌入(embed)某个应用程序中,从而可以得到具有声音、影像、图像、动画、文字等各种信息的集合式的文件。OLE技术是Microsoft公司对象技术的战略,它把多个应用程序合为一体,将每个应用程序看作是一个对象进行链接和嵌入,是一种应用程序一体化的技术。利用OLE技术,可以方便地建立复合式文档(compounddocument),这种文档由来自多个不同应用程序的对象组成,文档中的每个对象都与原来的应用程序相联系,并可执行与原来应用程序完全相同的操作。动态链接库(DLL)VisualBasic是一种高级程序设计语言,不具备低级语言的功能,对访问机器硬件的操作不太容易实现。但它可以通过动态链接库技术将C/C++或汇编语言编写的程序加入到VisualBasic应用程序中,可以像调用内部函数一样调用其他语言编写的函数。此外,通过动态链接库,还可以调用Windows应用程序接口(API)函数,实现SDK所具有的功能第四章房屋租赁管理系统的详细设计4.1数据库概要4.1.1数据库的含义所谓数据库,就是为了满足某些系统、某些用户的需要,在计算机系统中按照一定的数据模型、数据结构等方式进行组织、存储和使用的互相关联的数据集合,是数据按科学的结构形式组织的“仓库”。在实际中,人们把数据库以文件形式存入于磁盘(软盘、硬盘或磁带)中,数据库管理系统以文件形式对其进行调度管理。4.1.2数据库管理系统数据库管理系统,简称DBMS,是为数据库的建立,使用和维护而配置的软件,它提供了安全性和完整性等统一控制机制,方便用户管理和存取大量的数据资源。例如,VisualBasic6.0就是微机上使用的一种数据管理系统。在数据库管理系统的支持下,数据完全独立于应用程序,并且能被多个用户或程序共享,其关系如图所示。应用程序1应用程序1数据库管理系统数据库管理系统数据库应用程序2应用程序2应用程序3应用程序3应用程序与数据库的关系数据库管理系统一般具备数据库的定义、操作、查询及控制等功能。它将所有应用程序使用的数据汇集起来,建立数据库,使之面对所有应用程序的查询和访问。因此,作为访问者的应用程序相对于数据库来说是独立的,而作为被访问的数据在数据库中同样是独立的。当要建立新的数据管理系统时,只要生成一个新的应用程序即可,它可以立即使用现成的数据库,而不必建立新的数据文件。数据库管理系统是为数据库的建立、使用、管理和维护而配置的软件。它建立在操作系统的基础上,对数据库进行统一的管理和控制。用户使用的各种数据库命令以及应用程序的执行都要通过数据库管理系统。数据库管理系统还承担着数据库的维护工作,保证数据库的安全性和完整性。数据库管理系统的功能体现在“管理”二字上。它针对不同的用户及不同的使用目的,提供给用户各种操作、管理数据库的命令、函数、控件和对象,以帮助用户完成任务。其主要功能如下:定义数据库根据用户设计的数据结构,建立数据库结构组织.存取数据它包括很多基本操作:输入、更新、插入、检索、删除、输出、统计、排序、索引等。数据库运行管理所有数据库的操作都要在数据库管理系统的饿控制程序的统一管理下进行,以保证正确运行,保证数据库正确有效。数据库系统的维护系统维护是一项重要的工作,它包括数据库的转存、恢复、数据库的重组及性能监视、分析等。由上可见,数据库管理系统是一个能使用和管理数据库中数据的软件。这是数据库系统与文件系统的一个最大的区别。数据库管理系统功能的强弱基本上决定了整个数据库系统功能。4.1.3数据库应用系统数据库应用系统是指系统开发人员利用数据库系统资源开发出来的,面向某一类信息处理问题而建立的软件系统。数据库系统的用户自己编写的、基于数据库数据的程序称为应用程序,针对某一数据库管理而编制的一组应用程序形成该数据库的应用系统,它是数据库系统的一个重要组成部分,它们与数据库上的数据构成数据库中最活跃的部分。4.2数据库的结构设计 为了实现管理信息系统的计算机化,仅仅用文字来描述信息的流动和存储还远远不够,还要进一步调查分析舍去物质流,抽象出信息流,定义出数据库,各数据表的结构,并对各种数据的属性和各项处理功能进行详细分析。系统分析的主要成果是系统的逻辑模型。通过对该系统的研究,将系统数据分为以下几个表:客户信息表,定金表,房屋表,押金表,求租,预定表以及租金等几个表,各表的具体设计结构如下:客户信息表:字段名类型宽度小数位数客户编号字符型10租户姓名字符型6工作单位字符型20联系电话字符型2性别字符型8租户人数字符型20身份证编号字符型20备注备注型4定金表:字段名类型宽度小数位数收费编号字符型10定金金额字符型10预定金编号字符型10收费日期日期型8预定客户字符型10预定房屋编号字符型10备注备注型房屋表:字段名类型宽度小数位数房屋编号字符型8物业地址字符型10房型字符型20建筑面积数值型52使用面积数值型52装修情况字符型10出租价位数值型52目前状态字符型字符型备注备注型押金表:字段名类型宽度小数位数收费编号字符型10押金金额数值型52收费日期日期型8合同编号字符型10客户姓名字符型8房屋编号字符型10备注备注型求租表:字段名类型宽度小数位数求租客户编号字符型10求租客户姓名字符型10电话字符型15房型要求字符型50面积要求数值型52装修要求字符型50意向价位数值型52意向房屋编号字符型10备注备注租金表:字段名类型宽度小数位数收费编号字符型10租金年份日期型8租金月份日期型8应交租金数值型52已交租金数值型52久费金额数值型52客户姓名字符型10交费日期日期型8备注备注4.3系统主界面的设计启动系统后,主界面设计效果图如下:公用模块的设计代码分析如下:OptionExplicitPublicconnAsNewADODB.Connection'定义全局变量queryhouse作为判断frmHouse窗体显示查询的数据还是全体数据PublicqueryhouseAsBoolean'定义全局变量sqlqh作为查询房屋信息时的sql语句PublicsqlqhAsString'定义全局变量querycf作为判断frmClient窗体家庭租户选项卡显示查询的数据还是全体数据PublicquerycfAsBoolean'定义全局变量sqlqcf作为查询家庭租户信息时的sql语句PublicsqlqcfAsString'定义全局变量querycg作为判断frmClient窗体家公司户选项卡显示查询的数据还是全体数据PublicquerycgAsBoolean'定义全局变量sqlqcg作为查询公司租户信息时的sql语句PublicsqlqcgAsString'定义全局变量queryemp作为判断frmEmp窗体显示查询的数据还是全体数据PublicqueryempAsBoolean'定义全局变量sqlqe作为查询员工信息时的sql语句PublicsqlqeAsString'定义全局变量queryqzc作为判断frmQZClient窗体显示查询的数据还是全体数据PublicqueryqzcAsBoolean'定义全局变量sqlqzc作为查询求租客户信息时的sql语句PublicsqlqzcAsString'定义全局变量querycon作为判断frmAdminContract窗体显示查询的数据还是全体数据PublicqueryconAsBoolean'定义全局变量sqlqcon作为查询合同信息时的sql语句PublicsqlqconAsString'定义全局变量sqlqyd作为查询预定单信息时的sql语句PublicsqlqydAsString'定义全局变量fromqzc作为判断frmYuDing窗体是从frmQZClient窗体中单击下定金预定调用的'还是直接菜单调用的PublicfromqzcAsBoolean'定义全局变量fromYuding作为判断frmPayDingJin窗体是从frmYuDing窗体中单击收取定金调用的'还是直接菜单调用的PublicfromYudingAsBoolean'定义全局变量fromContract作为判断frmPayYaJin窗体是从frmSignContract窗体中单击收取押金调用的'还是直接菜单调用的PublicfromContractAsBoolean'定义全局变量ZuJinfromContract作为判断frmPayZuJin窗体是从frmSignContract窗体中单击收取租金调用的'还是直接菜单调用的PublicZuJinfromContractAsBoolean'定义全局变量queryZuJin作为判断frmAdminZuJin窗体显示查询的数据还是全体数据PublicqueryZuJinAsBoolean'定义全局变量sqlqzj作为查询合同信息时的sql语句PublicsqlqzjAsString'定义全局变量sqlqdj作为查询定金信息时的sql语句PublicsqlqdjAsString'定义全局变量sqlqyj作为查询押金信息时的sql语句PublicsqlqyjAsString4.3各主要功能模块的设计与实现4.3.1基本资料管理模块设计房屋基本资料管理的运行效果图如下:其表单界面的属性设计比较直观,在此重点分析新增,修改,删除,保存四个命令按钮的源代码设计:新增按钮源码:PrivateSubcmdAdd_Click()'设置除保存和取消按钮外的其他按钮不可用cmdAdd.Enabled=FalsecmdEdit.Enabled=FalsecmdDel.Enabled=FalsecmdSave.Enabled=TruecmdCancel.Enabled=TruecmdFirst.Enabled=FalsecmdPrev.Enabled=FalsecmdNext.Enabled=FalsecmdLast.Enabled=FalsecmdQuery.Enabled=False'需要清空所有text框,并且设置它们可写Fori=0To7Text1(i).Text=""Text1(i).Enabled=TrueNextiCombo1.Enabled=True'add变量用于保存时判断是从添加还是修改后保存add=1Text1(0).SetFocusEndSubPrivateSubcmdCancel_Click()'取消按钮用于用户添加或修改过程中放弃添加或修改操作cmdSave.Enabled=FalsecmdCancel.Enabled=FalsecmdAdd.Enabled=TruecmdQuery.Enabled=True'如果是从添加后取消Ifadd=1Then'如果当前House表中有数据则显示第一条数据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'如果没有数据,则显示空ElseFori=0To7Text1(i).Text=""NexticmdEdit.Enabled=FalsecmdDel.Enabled=FalsecmdFirst.Enabled=FalsecmdPrev.Enabled=FalsecmdNext.Enabled=FalsecmdLast.Enabled=FalseEndIf'如果是修改后取消,则恢复到修改前的数据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'开始时设置各个text框不可写Fori=0To7Text1(i).Enabled=FalseNexti'先设置ComboBox的默认值及不可改Combo1.Enabled=FalseEndSubPrivateSubcmdClose_Click()UnloadMeEndSub删除按钮的源代码:PrivateSubcmdDel_Click()'当单击删除记录时,需要弹出一个提示框,警告用户DimanswerAsStringanswer=MsgBox("确定要删除吗?",vbYesNo,"")'确实删除Ifanswer=vbYesThenrs_house.Delete'删除当前记录rs_house.Update'更新删除MsgBox"成功删除!",vbOKOnly+vbExclamation,""ElseExitSubEndIf'删除之后,显示总信息条数需要减1Text2.Text=Val(Text2.Text)-1'删除当前记录后,需要显示下一条记录,如果删除的是最后一条记录,则显示上一条记录'先移动rs_house记录到后一条rs_house.MoveNextIfrs_house.EOFThenrs_house.MovePrevious'如果没有到记录首则显示该记录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'如果到记录首,则表格已经为空,置所有text框显示为空ElseIfrs_house.BOFThenFori=0To7Text1(i).Text=""NexticmdFirst.Enabled=FalsecmdPrev.Enabled=FalsecmdNext.Enabled=FalsecmdLast.Enabled=FalseEndIf'如果删除的不是首尾记录,则显示当前记录即可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()'设置除保存和取消按钮外的其他按钮不可用cmdAdd.Enabled=FalsecmdEdit.Enabled=FalsecmdDel.Enabled=FalsecmdSave.Enabled=TruecmdCancel.Enabled=TruecmdFirst.Enabled=FalsecmdPrev.Enabled=FalsecmdNext.Enabled=FalsecmdLast.Enabled=FalsecmdQuery.Enabled=False'需要设置除主键之外的text框可写Fori=1To7Text1(i).Enabled=TrueNextiCombo1.Enabled=Trueadd=0EndSubPrivateSubcmdFirst_Click()'先移动rs_house记录到第一条rs_house.MoveFirst'同时需要设置相应按钮为不可用和不可用cmdPrev.Enabled=FalsecmdFirst.Enabled=FalsecmdNext.Enabled=TruecmdLast.Enabled=True'如果已经是第一条记录,则提示用户Ifrs_house.BOF=TrueThenMsgBox"对不起,已经是第一条记录了!",vbOKOnly+vbInformation,"注意"ExitSub'如果不是,则个数据表的记录位置移到第一条记录,并且显示之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客户资料管理模块的设计4.3.2.1租户基本资料的设计运行效果图如下所示:在租户基本资料中,我们重点分析查找家庭租户功能的源码,如下:PrivateSubcmdQuery_Click()IfText1.Text=""ThenMsgBox"查询条件不可为空!",vbOKOnly+vbInformation,"注意"Text1.SetFocusExitSubEndIf'设置查询家庭租户变量为真querycf=Truesqlqcf="where"&Combo1.Text&"="&"'"&Text1.Text&"'"frmClient.Show'关闭本窗体UnloadMeEndSub4.3.2.2求租户基本资料的设计其保存按钮的源码分析如下:PrivateSubcmdSave_Click()'检测数据是否完整IfText1(0).Text=""ThenMsgBox"求租客户编号不可为空!",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"面积要求不为空则应为数字!",vbOKOnly+vbInformation,"注意"Text1(4).SetFocusExitSubElseIfNotText1(6).Text=""AndIsNumeric(Text1(6).Text)=FalseThenMsgBox"意向价位不为空则应为数字!",vbOKOnly+vbInformation,"注意"Text1(6).SetFocusExitSubElseIfNotText1(7).Text=""AndIsNumeric(Text1(7).Text)=FalseThenMsgBox"意向租期不为空则应为数字!",vbOKOnly+vbInformation,"注意"Text1(7).SetFocusExitSubEndIf'如果意向房屋编号不为空,需要检查是否存在IfNotText1(8).Text=""ThenDimsqlhcheckAsStringDimrs_hcheckAsNewADODB.Recordsetsqlhcheck="select*fromHousewhere房屋编号='"&Text1(8).Text&"'"rs_hcheck.Opensqlhcheck,conn,adOpenStatic,adLockOptimisticIfrs_hcheck.EOFThenMsgBox"该房屋编号不存在,请重填或清空!",vbOKOnly+vbInformation,"注意"Text1(8).SetFocusrs_hcheck.CloseExitSubEndIfrs_hcheck.CloseEndIf'添加数据后保存Ifadd=1Then'检测房屋编号这个主键是否已经在表中存在Dimrs_checkAsNewADODB.RecordsetDimsqlCheckAsStringsqlCheck="select*fromQZClientwhere求租客户编号='"&(Text1(0).Text)&"'"rs_check.OpensqlCheck,conn,adOpenStatic,adLockOptimisticIfNotrs_check.EOFAndNotrs_check.BOFThenMsgBox"该求租客户编号已经存在,请重填一个!",vbOKOnly+vbInformation,"注意"rs_check.CloseText1(0).SetFocusText1(0).Text=""ExitSubEndIfrs_check.Close'主键不重复,可以加入表中rs_QZClient.AddNewFori=0To9rs_QZClient.Fields(i)=Text1(i).TextNextirs_QZClient.Update'添加之后显示总共条数信息加1Text2.Text=Val(Text2.Text)+1'修改数据后的保存Elsers_QZClient.UpdateEndIfMsgBox"保存数据成功!",vbOKOnly+vbInformation,"祝贺"'保存后需要设置其他按钮可用,以及各个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租赁管理模块的设计4.3.3.1签订合同的设计因租赁管理,财务管理和统计报表三个模块的窗体设计比较多,无法一一描述,故选择有代表性的窗体设计加以分析,其合同签订窗体的运行效果图如下:如图所示,签订的源码设计如下:PrivateSubcmdSign_Click()'先检查输入数据完整性Fori=0To2IfText1(i).Text=""ThenMsgBox"除备注外的所有项不可为空!",vbOKOnly+vbInformation,"注意"Text1(i).SetFocusExitSubEndIfNextiFori=3To4IfText1(i).Text=""OrIsDate(Text1(i).Text)=FalseThenMsgBox"日期应为这样的格式:2003-7-15!",vbOKOnly+vbInformation,"注意"Text1(i).SetFocusExitSubEndIfNextiIfText1(6).Text=""OrIsNumeric(Text1(6).Text)=FalseThenMsgBox"月租金应为数字!",vbOKOnly+vbInformation,"注意"Text1(6).SetFocusExitSubEndIfIfText1(8).Text=""OrIsNumeric(Text1(8).Text)=FalseThenMsgBox"押金应为数字!",vbOKOnly+vbInformation,"注意"Text1(8).SetFocusExitSubEndIfIfText1(9).Text=""ThenMsgBox"业务员不可为空!",vbOKOnly+vbInformation,"注意"Text1(9).SetFocusExitSubEndIfIfText1(10).Text=""OrIsDate(Text1(10).Text)=FalseThenMsgBox"签订日期应为这样的格式:2003-7-15!",vbOKOnly+vbInformation,"注意"Text1(10).SetFocusExitSubEndIf'止租日期不能前于起租日期IfDateValue(Text1(4).Text)<DateValue(Text1(3).Text)ThenMsgBox"止租日期不能前于起租日期",vbOKOnly+vbInformation,"注意"Text1(4).SetFocusExitSubEndIf'租期等于起租日期和止租日期之差,结尾不足一月,按一月计。'使用datediff函数计算日期之差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)'检查完数据完整性后,还需要检查该客户是否已存入租户表中,以及该房屋是否为未出租或预定状态sqlc="select*fromClientwhere租户姓名='"&Text1(1).Text&"'"rs_ccheck.Opensqlc,conn,adOpenStatic,adLockOptimisticIfrs_ccheck.EOF=TrueThenrs_ccheck.CloseMsgBox"该客户资料还未存入租户资料表中,请先录入该客户资料!",vbOKOnly+vbInformation,"注意"ExitSubEndIfrs_ccheck.Close'检测房屋状态sqlh="select*fromHousewhere房屋编号='"&Text1(2).Text&"'"rs_hcheck.Opensqlh,conn,adOpenStatic,adLockOptimisticIfrs_hcheck.EOF=TrueThenMsgBox"该房屋编号不存在,请重新输入一个!",vbOKOnly+vbInformation,"注意"Text1(2).SetFocusrs_hcheck.CloseExitSubElseIfrs_hcheck.Fields(8)="已租"ThenMsgBox"该房屋已经出租了,请选择另一房屋!",vbOKOnly+vbInformation,"注意"rs_hcheck.CloseExitSub'如果该房屋状态为预定,则需要看预定人是否为该客户,如果不是,需要弹出对话框提示用户ElseIfrs_hcheck.Fields(8)="预定"Then'检查该客户是否为预定客户sqlyd="select*fromYuDingwhere预定房屋编号='"&Text1(2).Text&"'"rs_yd.Opensqlyd,conn,adOpenStatic,adLockOptimistic'如果该客户不是预定客户,检查预定有效期IfNotrs_yd.Fields(1)=Text1(1).TextThen'如果已经过了预定有效期,别的用户可以承租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'修改房屋状态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,"注意"'设置签订按钮不可用cmdSign.Enabled=FalsecmdYaJin.Enabled=TruecmdZuJin.Enabled=True'关闭所有打开的记录集rs_qzc.Closers_yd.Closers_hcheck.Closers_contract.CloseExitSubElseMsgBox"该房屋已经被别人预定了,请选择另一房屋!",vbOKOnly+vbInformation,"注意"rs_hcheck.Closers_yd.CloseExitSubEndIf'该客户即为预定客户,可以出租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'修改房屋状态rs_hcheck(8)="已租"rs_hcheck.Update'删除预定表中该项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,"注意"'设置签订按钮不可用cmdSign.Enabled=FalsecmdYaJin.Enabled=TruecmdZuJin.Enabled=True'关闭所有打开的记录集rs_qzc.Closers_yd.Closers_hcheck.Closers_contract.CloseExitSubEndIf'如果该房屋状态为未租,则可以顺利出租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'修改房屋状态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,"注意"'设置签订按钮不可用cmdSign.Enabled=FalsecmdYaJin.Enabled=TruecmdZuJin.Enabled=True'关闭所有打开的记录集rs_qzc.Closers_hcheck.Closers_contract.CloseExitSubEndIf4.3.3.2预定租房的设计其收取定金的设计如下:PrivateSubcmdDingJin_Click()fromYuding=TruecmdDingJin.Enabled=FalsefrmPayDingJin.ShowEndSub4.3.4财务管理模块的设计4.3.4.1定金收取的设计系统维护的运行效果图如下:其收取定金按钮的源码设计如下:PrivateSubcmdAdd_Click()'先检测数据完整性IfText1(0).Text=""ThenMsgBox"收费编号不可为空!",vbOKOnly+vbInformation,"注意"Text1(0).SetFocusExitSubEndIfIfText1(2).Text=""OrIsDate(Text1(2).Text)=FalseThenMsgBox"收费日期应为这样的日期格式:2003-8-3!",vbOKOnly+vbInformation,"注意"Text1(2).SetFocusExitSubEndIfIfText1(3).Text=""ThenMsgBox"预定单编号不可为空!",vbOKOnly+vbInformation,"注意"Text1(3).SetFocusExitSubEndIf'检测该收费编号是否已存在sqlch="select*fromDingJinwhere收费编号='"&Text1(0).Text&"'"rs_ch.Opensqlch,conn,adOpenStatic,adLockOptimisticIfrs_ch.EOF=FalseThenMsgBox"该收费编号已经存在,请重新输入一个!",vbOKOnly+vbInformation,"注意"Text1(0).SetFocusrs_ch.CloseExitSubEndIfrs_ch.Close'还需要检测预定单编号是否存在、并且自动写入预定客户和预定房屋编号sqlyd="select*fromYuDingwhere预定单编号='"&Text1(3).Text&"'"rs_yd.Opensqlyd,conn,adOpenStatic,adLockOptimisticIfrs_yd.EOF=TrueThenMsgBox"该预定单编号不存在!",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. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论