宾馆管理信息系统_第1页
宾馆管理信息系统_第2页
宾馆管理信息系统_第3页
宾馆管理信息系统_第4页
宾馆管理信息系统_第5页
已阅读5页,还剩33页未读 继续免费阅读

下载本文档

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

文档简介

PAGE宾馆管理信息系统摘要:随着人员流动规模的不断扩大,宾馆数量的急剧增加,有关客房管理的各种信息量也在不断成倍增长。面对庞大的信息量,要想提高劳动生产率,降低成本,提高服务质量和管理水平,促进经济效益,必须借助计算机来进行现代化的信息管理,利用客房信息管理系统来提高客房管理工作的效率。通过该系统要能实现对宾馆进行全方位的管理和及时了解各环境中信息的变更,能提高管理效率使宾馆实现系统化、规范化和自动化。包括了客房信息管理模块,订房信息管理模,结算信息管理模块等模块,以及对这些模块进行添加,修改查询等等。该系统具有操作简单、界面友善、灵活性好、系统安全性高、运行稳定等特点,是宾馆管理者的理想选择。关键词:VB;ACCESS;客房信息;订房信息;结算信息目录第一章绪论 1第二章系统概述 22.1选题背景 22.2设计目的 22.3课题意义 2第三章需求分析 33.1功能分析 3第四章可行性分析 44.1经济可行性 44.2技术可行性 4第五章总体设计 55.1系统数据流程分析 55.2系统功能模块设计 7第六章详细设计 96.1建库准备 96.1.1第一范式1NF 96.1.2第二范式2NF 96.1.3第三范式3NF 96.2数据库设计 106.2.1数据库概念结构设计 106.2.2数据库逻辑结构设计 106.3数据库结构的实现 116.4简述ODBC技术 126.5前台界面设计及编程(各功能模块功能的实现) 136.6宾馆管理信息系统主窗体的创建 13第七章宾馆客房管理系统实现 167.1数据库的实现 167.2登录程序及用户维护程序 187.3系统的实现 19第八章测试 238.1性能测试 238.2功能测试 23第九章总结 249.1总结 24参考文献 25致谢 26附录 27PAGE1第四章可行性分析经过对宾馆管理的采访,根据宾馆管理的需求和学过的现有知识经研究,我认为开发出一个以ACCESS2003和VB无缝结合的宾馆管理信息系统是可行的。从以下两个方面对本系统的可行性着手进行了研究:4.1经济可行性本系统的开发成功将极大地提高宾馆管理的效率,节省大量的人力、物力和财力,其经济效率是显而易见的;4.2技术可行性随着IT技术的飞速发展,计算机的性价比越来越高,很多企业都配置了计算机并构建了网络系统,这为我们运行许多软件包括运营之类的管理软件提供了硬件基础。同时软件平台的丰富多样也为我们进行数据库管理系统的开发提供了有力的支撑。再则,我们三年的大学学习已掌握了一定的计算机知识,具备了一定的软件开发能力。因此,开发一套宾馆管理信息系统在技术上是有保障的。通过了大量的工作后,分析调查有关宾馆管理信息需求的基础上得本系统所处理的数据流程如图1.1所示:第五章总体设计5.1系统数据流程分析经过需求分析阶段的工作,系统必须“做什么”已经清楚了,现在是决定“怎样做”的时候了。总体设计要解决的问题是:概括的说,系统应该如何实现?通过这个阶段的工作将划分出组成系统的物理元素、程序、文件、数据库、人工过程和文档等等,但是每个物理元素仍然处于黑盒子级,这些黑盒子里的内容将在下一章节作详细介绍。用户的需求具体体现在各种信息的提供、保存、更新和查询,这就要求数据库结构能充分满足各种信息的输出和输入。收集基本数据、数据结构以及数据处理的流程,组成一份详尽的数据字典,为后面的具体设计打下基础。在与宾馆管理的相关人员探讨后,在了宾馆管理信息需求的基础上,分析客房与客户之间的联系,我们得出六个实体:客房信息实体、客房信息实体,顶房信息实体、结算信息实体和各实体间的关系。针对实体的属性,数据流程图和各实体E-R图以及个E-R实体间的关系,客房标准设置客房标准设置基本信息输入客房登记基本信息录入客房信息管理顾客登记订房信息管理订房信息管理结算信息输入结算信息管理客房信息返回图5.1宾馆管理信息系统数据流程图各个实体具体的描述E-R图如下:客房标准信息实体客房标准信息实体标准编号标准名称床位数量客房单价图5.2客房标准信息实体E-R图客房信息实体客房信息实体客房标准客房编号客房位置客房单价图5.3客房信息实体E-R图订房信息实体订房信息实体客房信息顾客信息折扣入住时间图5.4订房信息实体E-R图结算信息实体结算信息实体客房信息顾客信息结算时间结算金额图5.5结算信息实体E-R图仔细分析调查有关宾馆管理信息需求的基础上,将得到上术的本系统所处理的数据流程。在分析得出各个实体之间的关系后,经过我们对宾馆管理信息系统的详细分析,反复论证和修改,最后我们确定了该系统的数据流图和实体关系E-R图如图1.客房标准信息客房标准信息客房登记客房信息管理订房订房信息管理结算信息管理客房结算图5.6各实体之间关系E-R5.2系统功能模块设计设计阶段一项重要任务是设计软件结构,也就是要确定系统中每个程序是由哪些模块组成的,以及这些模块相互间的关系。在设计过程中,我们遵循设计的步骤和原理,如模块化、抽象、逐步求精这些步骤和启发性原则等。从客观来讲模块之间是存在着联系的,但是如果出现大量耦合,会强烈影响系统的可理解性、可测试性、可靠性和可维护性。因此在模块设计中,我们从整体着重考虑了模块的独立性,在设计过程中尽量做到模块的“低耦合高内聚”,以便于日后系统的维护和管理,经过对多种设计的选择优化后,我们得出了以如下所示的系统功能模块图。该宾馆客房管理系统应该具有四个大信息模块:结算信息管理模块、订房信息管理模块、客房信息管理模块和系统管里模块,其中客户信息管理模块信息管多个子模块组成,它们均能实现各种数据的查询、添加、删除、修改等功能。宾馆管理信息系统宾馆管理信息系统结算信息管理订房信息管理客房信息管理系统管理结算信息查询结算信息修改结算信息添加订房信息查询订房信息修改订房信息添加剩余客房信息查询设置客房信息设置客房标准密码管理用户管理客房信息查询客房信息修改客房信息添加客房标准修改客房标准添加图5.7系统功能模块图第六章详细设计6.1建库准备经过了大量的努力,首先做了本软件系统的初始建库工作。宾馆管理信息系统主要由客房标准信息表、客房信息表、订房信息表下面开始构建。构造数据库必须遵循一定的规则,在关系数据库中这种规则就是范式。范式是符合某一种级别的关系模式的集合,关系数据库中的关系必须满足一定的要求即满足不同的范式,目前关系数据库有六种范式,第一范式1NF、第二范式2NF、第三范式3NF、第四范式4NF、第五范式5NF和第六范式6NF。满足最低要求的范式是第一范式1NF,在第一范式的基础上进一步满足更多要求的称为第二范式2NF,其余范式以次类推一般说来数据库只需满足第三范式3NF就行了。下面举例介绍第一范式1NF、第二范式2NF、和第三范式3NF。6.1.1第一范式1NF在任何一个关系数据库中,第一范式1NF是对关系模式的基本要求。不满足第一范式1NF的数据库就不是关系数据库。所谓第一范式1NF是指数据库表的每一列都是不可分割的基本数据项,同一列中不能有多个值,即实体中的某个属性不能有多个值或者不能有重复的属性。如果出现重复的属性就可能需要定义一个新的实体,新的实体由重复的属性构成,新实体与原实体之间为一对多关系。在第一范式1NF中,表的每一行只包含一个实例的信息。例如:顾客信息表不能顾客信息都放在一列中,显示也不能将其中的两列或多列在一列中显示。顾客信息表的每一行只表示一个顾客的信息,一个顾客的信息在表中只出现一次。简而言之,第一范式就是无重复的列。6.1.2第二范式2NF第二范式2NF是在第一范式1NF的基础上建立起来的,即满足第二范式2NF必须先满足第一范式1NF。第二范式2NF要求数据库表中的每个实例或行必须可以被惟一地区分,为实现区分通常需要为表加上一个列以存储各个实例的惟一标识,如员工信息表中加上了员工编号列,因为每个员工的员工编号是惟一的。因此每个员工可以被惟一区分,这个惟一属性列被称为主关键字或关键主码。第二范式2NF要求实体的属性完全依赖于主关键字,所谓完全依赖是指不能存在仅依赖主关键字一部分的属性,如果存在那么这个属性和主关键字的这一部分应该分离出来形成一个新的实体,新实体与原实体之间是一对多的关系,为实现区分通常需要为表加上一个列以存储各个实例的惟一标识,简而言之第二范式就是非主属性依赖于主属性。6.1.3第三范式3NF满足第三范式3NF必须先满足第二范式2NF。简而言之第三范式3NF要求一个数据库表中,不包含已在其它表中已包含的非主关键字信息。例如:存在一个部门信息表,其中每个部门有部门编号、部门名称、部门简介等信息。那么在员工信息表中,列出部门编号后就不能再将部门名称、部门简介等与部门有关的信息再加入员工信息表中。如果不存在部门信息表,则根据第三范式3NF也应该构建它,否则就会有大量的数据冗余,简而言之第三范式就是非主属性不相互依赖。6.2数据库设计数据库在一个信息管理系统中占有非常重要的地位,数据库结构设计的好坏将直接对应用系统的效率以及实现的效果产生影响。合理的数据库结构设计可以提高数据存储的效率,保证数据的完整和一致。设计数据库系统时应该首先充分了解用户各个方面的需求,包括现有的以及将来可能增加的需求。数据库设计一般包括如下几个步骤:1).数据库需要分析。2).数据库概念结构设计。3).数据库逻辑结构设计。6.2.1数据库概念结构设计得到上面的数据项和数据结构以后,就可以设计出能够满足用户需求的各种实体,以及它们之间的关系,为后面的逻辑结构设计打下基础。这些实体包含各种具体信息,通过相互之间的作用形成数据的流动。6.2.2数据库逻辑结构设计宾馆管理信息系统数据库中各个表格的设计结果如下面表格所示。每个表格表示在数据库中的一个表。具体如下表表6.1Roomtype客房标准信息表列名数据类型 可否为空说明TypeidVarcharNOTNULL标准编号TypenameVarcharNOTNULL标准名称AreaNumericNULL房间面积BednumNumericNULL床位数量HairconditionVarcharNULL是否有空调HtelephoneVarcharNULL是否有电话HtelevisionVarcharNULL是否有电视HtoiletVarcharNULL是否有单独卫生间PriceNumericNULL单价表6.2Rooms客房信息表列名数据类型可否为空说明roomNOVarcharNOTNULL客房编号RoomtypeVarcharNOTNULL客房种类RoompositionVarcharNULL客房位置RoompriceNumericNULL单价PutupVarcharNOTNULL是否被预定RoommemoTextNULL备注表6.3Bookin订房信息表列名数据类型可否为空说明BooknoVarcharNOTNULL订房编号CustomnameVarcharNOTNULL顾客姓名CustomIDVarcharNOTNULL身份证号码RoomnoVarcharNOTNULL客房编号IndateDatetimeNULL入住日期DiscountNumericNULL折扣InmenoTextNULL备注CheckdateDatetimeNULL结算日期AmountNumericNULL金额6.3数据库结构的实现经过前面的需求分析和概念结构设计以后,得到数据库的逻辑结构。现在就可以在ACCESS2003数据库系统中创建系统用户表创建客房标准信息表创建客房信息表创建订房信息表创建系统用户表创建系统用户表格user_InfoCREATETABLE[dbo].[user_Info1]([user_ID][char](10)COLLATEChinese_PRC_CI_ASNOTNULL,[user_PWD][char](10)COLLATEChinese_PRC_CI_ASNULL,[user_Des][char](10)COLLATEChinese_PRC_CI_ASNULL)ON[PRIMARY]创建客房标准信息表格roomtypeCREATETABLE[dbo].[roomtype]([typeid][char](10)COLLATEChinese_PRC_CI_ASNOTNULL,[typename][char](10)COLLATEChinese_PRC_CI_ASNOTNULL,[area][numeric](5,0)NULL,[bednum][numeric](2,0)NULL,[haircondition][char](2)COLLATEChinese_PRC_CI_ASNULL,[htelephone][char](2)COLLATEChinese_PRC_CI_ASNULL,[htelevision][char](2)COLLATEChinese_PRC_CI_ASNULL,[htoilet][char](2)COLLATEChinese_PRC_CI_ASNULL,[price][numeric](10,2)NULL)ON[PRIMARY]创建客房信息表格roomsCREATETABLE[dbo].[rooms]([roomNO][char](10)COLLATEChinese_PRC_CI_ASNOTNULL,[roomtype][char](10)COLLATEChinese_PRC_CI_ASNOTNULL,[roomposition][char](20)COLLATEChinese_PRC_CI_ASNULL,[roomprice][numeric](10,2)NULL,[putup][char](2)COLLATEChinese_PRC_CI_ASNOTNULL,[roommemo][text]COLLATEChinese_PRC_CI_ASNULL)ON[PRIMARY]TEXTIMAGE_ON[PRIMARY]创建订房信息表bookinCREATETABLE[dbo].[bookin]([bookno][char](14)COLLATEChinese_PRC_CI_ASNOTNULL,[customname][char](10)COLLATEChinese_PRC_CI_ASNOTNULL,[customID][char](18)COLLATEChinese_PRC_CI_ASNOTNULL,[roomno][char](10)COLLATEChinese_PRC_CI_ASNOTNULL,[indate][datetime]NULL,[discount][numeric](2,0)NULL,[inmemo][text]COLLATEChinese_PRC_CI_ASNULL,[checkdate][datetime]NULL,[ammount][numeric](10,2)NULL)ON[PRIMARY]TEXTIMAGE_ON[PRIMARY]6.4简述ODBC技术由于不同厂商推出的各种数据库系统在性能和应用范围上的差异,使得一个综合网络数据系统的各工作组由于需求的差异等原因,选择不同的数据库系统。为此,在一个综合网络数据库系统中就会存在多种不同的数据库,特别是当用户需要从客户端向不同的服务器访问时,微软公司提出的开放式数据库互联ODBC(Open-DateBase-Connectivity)技术为解决这个问题提供了一个强有力的解决方案。ODBC为用户提供了一个简单、标准和透明的数据库联接的公共编程接口,各开发厂商根据ODBC的标准来实现其底层的驱动程序。用户安装不同的数据库系统在传统的方式中,开发人员需要熟悉多个数据库系统及其数据库应用程序接口。一旦数据库系统端出现变动,则会导致用户端系统重新编建或者对源代码进行修改这给开发和维护工作带来了极大的困难。在ODBC方式中,由于用户在程序中都使用同一套标准代码,所以不管底层网络环境如何,也无论用户采用何种数据库系统,用户端源程序都不会因底层的变化而需要进行重新编建和修改,用户也就无需逐个了解各数据库系统及其数据库应用程序接口的特点,从而减轻了用户开发维护的工作量,缩短了系统开发周期。ODBC的这种开放性,还为程序集成提供了便利,为客户/服务器结构的异质计算机环境的数据访问提供了技术支持。6.5前台界面设计及编程(各功能模块功能的实现)关系数据库结构的所有后台工作已经完成。现在将使用VisualBasic来编写数据库系统的客户端程序,实现宾馆管理信息系统中的各个功能模块。功能结构图如下:宾馆管理系统宾馆管理系统前台操作内部数据管理系统接口功能图6.1功能结构图下面我以主窗体的创建为例介绍功能模块的设计及实现,6.6宾馆管理信息系统主窗体的创建将通过宾馆管理信息系统中各个功能模块的实现,讲解如何使用VisualBasic来编写数据库系统的客户端程序。下面我们开始创建宾馆管理信息系统的主窗体,这个项目我们使用多文档界面,单击工具栏中的ADDMDIForm按钮,产生一个窗体。在这个窗体上添加所需的控件,窗体和控件的属性设置见表1-7。表6.4主窗体及其控件属性设置控件属性属性取值frmMain(Form)NameFrmMainCaption宾馆管理信息系统StartUpPositonCenterScreenWindowStateMaximizedSbStatusBar(StatusBar)NameSbStatusBarPanels(1)StyleSbrTextPanels(2)StyleSbrDatePanels(3)StyleSbrTime(3)创建主窗体的菜单(4)创建公用模块系统用户管理模块的创建用户管理模块主要实现:用户登录。添加用户。修改用户客房信息管理模块的创建客房信息管理模块主要实现如下功能:添加客房信息。修改客房信息。删除客房信息。查询客房信息订房信息管理模块的创建订房信息管理模块主要实现如下功能:查询剩余客房信息添加订房信息修改订房信息删除订房信息查询订房库信息结算信息管理模块的创建结算信息管理模块主要实现如下功能:添加结算信息修改结算信息查询结算信息第七章宾馆客房管理系统实现7.1数据库的实现(一)创建数据库:打开ACCESS20003“新建数据库“,创建一个空数据库,命名为DB_Hotel。(二)在DB_Hotel中创建六张表,包括客房类型信息表,客房信息表,客户信息表,入住信息表,预订信息表,系统用户信息表。客房类型(类型面积价格额定床位额定人数是否有电视是否有电话是否有卫生间)表7.1数据库表7.2客房类型表7.3客房信息表客房信息(房间号类型楼层)表7.4客房信息表客户信息(客户号姓名性别籍贯)表7.5入住记录表入住记录(客户号房间号入住日期结算日期备注)表7.6预定记录表预订信息(客户号房间号预订日期预订入住日期预订天数)表7.7系统用户表系统用户(用户名密码)7.2登录程序及用户维护程序登录窗口及程序图7.1登陆窗口图部分程序如下PrivateSubcmdCancel_Click()'结束程序EndEndSubPrivateSubcmdOk_Click()DimstrUserNameAsStringDimstrPasswordAsStringStaticintLoginTimesAsIntegerIfTrim(txtUserName.Text)=""Then'如果用户名为空MsgBox"用户名不能为空!",vbOKOnly+vbCritical,"错误"txtUserName.SetFocusExitSubEndIf'打开数据库中的Users表adoUsers.Refresh'查找用户名adoUsers.Recordset.Find"Name='"&txtUserName.Text&"'",,adSearchForward,1'也可以用下面的过滤方式'adoUser.Recordset.Filter="Name='"&txtUserName.Text&"'"IfNotadoUsers.Recordset.EOFThen'找到记录strUserName=adoUsers.Recordset!NamestrPassword=adoUsers.Recordset!PasswordElse'没找到记录strUserName=""strPassword=""EndIfIfstrUserName=txtUserName.TextAndstrPassword=txtPassword.TextThenadoUsers.Recordset.Close'关闭数据库中的Users表UnloadMe'关闭窗体frmMDI.Show'显示主窗体Else'用户名或密码不对MsgBox"用户名或密码不对!",vbOKOnly+vbInformation,"提示"intLoginTimes=intLoginTimes+1IfintLoginTimes>=3Then'超过三次adoUsers.Recordset.Close'关闭数据库中的Users表End'退出整个程序EndIftxtPassword.SetFocus'重新输入密码SendKeys"{HOME}+{END}"EndIfEndSub7.3系统的实现现在已经完成了程序各个功能模块的创建,现在来运行整个系统。输入用户名和密码后,进入系统。选择“宾馆管理客房信息系统”菜单,出现如下图的窗体。图7.2管理信息系统图7.3客房信息图7.4客人信息图7.5客房信息添加图7.6信息查询图7.7客房信息查询图7.8退房信息第八章测试在测试前,首先要根据《需求分析报告》全面了解用户需求并透彻理解。测试时我们注意以下几点:A、测试时分清主次,即先测试主要功能,后测试次要功能。找出系统的功能主干,让数据依次流经功能主干,测试功能实现的是否正确。只要功能主干有问题,这个系统就是失败的。B、功能主干用正常正确后,我们还考虑测试其异常处理功能。C、功能主干测试正确后,再进行分支功能的测试。E、要对程序的功能进行方便性测试,将不够满意的地方,都应当成系统缺陷向项目负责人或系统开发者指出。F、检查系统需求和设计说明书中要求的功能是否在系统中都被实现、性能是否达到指标。G、数据之间的逻辑关系是否正确。8.1性能测试性能测试主要是对响应时间、事务处理速率、数据显示速度、计算速度、网络传输速度、数据库查询响应时间、扫描时间、扫描识别率等和其他与时间相关的需求进行评测和评估。性能评测的目标是核实性能需求是否都已满足。实施和执行性能评测的目的是将测试对象的性能行为当作条件(例如工作量或硬件配置)的一种函数来进行评测和微调。另外,我们还做了程序对系统消耗资源的测试,如CPU负载、内存、显存、硬盘资源消耗情况。在系统设计完成后,我们采用白盒测试技术的逻辑覆盖和控制结构测试,还采用了黑盒测试技术中的等价划分,边界值分析,错误推测等途径对设计的过程做出了测试。还使用了蛮力法,回溯法,原因排除法等调试的途径进行调试,到目前已排除了所发现的错误。8.2功能测试在测试前,首先要根据《需求分析报告》全面了解用户需求并透彻理解。测试时我们注意以下几点:1)、测试时分清主次,即先测试主要功能,后测试次要功能。找出系统的功能主干让数据依次流经功能主干,测试功能实现的是否正确。只要功能主干有问题,这个系统就是失败的。2)、功能主干用正常正确后,我们还考虑测试其异常处理功能。3)、功能主干测试正确后,再进行分支功能的测试。4)、要对程序的功能进行方便性测试,将不够满意的地方,都应当成系统缺陷向项目负责人统开发者指出。第九章总结9.1总结宾馆应用计算机作为信息管理的技术手段和工具,已有几十年的历史,尽管经历了从单机运行到网络化的发展阶段,从管理内容上也走过了从单一管理到综合管理的艰难过程,今天的宾馆信息管理已经初步形成了以国家金卫工程为指导的息管理模式,促进了宾馆管理向现代化方向发展。更进一步的发展趋势是从宾馆信息的管理方面向集团系统发展:提供面向员工和顾客的服务。我相信,随着计算机技术的迅猛发展,宾馆信息管理前景将更加辉煌和灿烂。计算机应用于宾馆服务领域进行信息化的工作,需要很多学科的知识作为基础。在国内,这是一个很多工作仍有待深入研究的课题。虽然本文就宾馆住宿信息系统的研究与开发做了大量的工作,但本文和该信息系统仍有很多需要改进和扩展的地方。而且,由于本人水平和学识有限,缺点和问题在所难免,衷心希望各位老师给予批评指正。参考文献[1].《VsualBasic》程序设计教程作者李雁翎周代东潘伟等人民邮电出版社[2].《管理信息系统的系统理论与规划方法》。章祥荪科学出版社[3].《软件工程导论》(第四版)作者:张海藩出版社:清华大学出版社[4]《数据库(ACCESS.2003)原理与应用》主编刘永宽吴荣华出版社北京师范大学出版社致谢一个完整的宾馆管理信息系统就基本开发完毕了。其功能基本符合用户需求。在本例子中我详细地讲述了宾馆管理信息系统的系统设计部分,包括功能模块设计、数据库结构设计等。系统设计为整个程序构建了骨架,各个功能模块实现各个细节部分。通过这次的设计,对以前所学的知识做了一个总结,必进一步学到了新的知识,在设计过程中我在辅导老师帮助下,和看参考书的同时不仅学到了设计该用的东西,还学到了其他知识。这是这次设计的最大的收获,懂得了如何应用软件进行课题设计。在设计中有许多不足的地方,这些都会进一步改善。在本次毕业设计中,我从指导老师朱小云老师身上学到了很多东西。朱老师认真负责的工作态度,严谨的治学精神使我受益匪浅。他无论在理论上还是在实践中,都给与我很大的帮助,使我得到很大的提高这对于我以后的工作和学习都有巨大的帮助,感谢他耐心的辅导。,在这次毕业设计中,感谢朱老师给予我莫大的帮助。从开始构思到软件的实现,朱老师都给我做了方向性的指导。朱老师他不辞劳苦,为我提供了很多资料,让我有了大量的阅读和参考学习的资料,使我的课题完成得更加顺畅。在设计实现的过程中,我遇到很多不能解决的问题,他都为我一一讲解,不厌其烦,他的耐心让我感动。我衷心的感谢朱老师在这次毕业设计中给我的帮助,祝愿朱老师身体健康,在今后的工作中培育出更多的人才。附录宾馆系统部分程序代码PrivateSubForm_Load()'打开用户表OpenTableadoUsers,"Users"EndSubSubcmdCancel_Click()'退出窗体UnloadMeEndSubPrivateSubcmdOk_Click()WithfrmMDI.adoRoom.RecordsetIfNottxtRoomNo.LockedThen'可修改状态表示是添加记录'控制编号不能为空IfTrim(txtRoomNo.Text)=""ThenMsgBox"客房编号不能为空!",vbOKOnly+vbInformation,"提示"txtRoomNo.SetFocusExitSubEndIf'查看是否有相同编号.Find"RoomNo='"&txtRoomNo.Text&"'",,adSearchForward,1IfNot.EOFThen'有就提示,然后退出MsgBox"已经有相同编号的客房!",vbOKOnly+vbInformation,"提示"txtRoomNo.SetFocusExitSubEndIfIfTrim(txtRoomRate.Text)=""ThenMsgBox"客房价格不能为空!",vbOKOnly+vbInformation,"提示"txtRoomRate.SetFocusExitSubEndIf'没有就添加记录.AddNew!RoomNo=Trim(txtRoomNo.Text)EndIf'给字段赋值!RoomNo=Trim(txtRoomNo.Text)IfcboRoomGrade.ListIndex=0Then!RoomGrade=TrueElse!RoomGrade=FalseEndIfIfcboRoomType.ListIndex=0Then!RoomType=TrueElse!RoomType=FalseEndIf!RoomRate=Val(Trim(txtRoomRate.Text))!RoomStatus=False.UpdateUnloadMeEndWithEndSubPrivateSubForm_KeyPress(KeyAsciiAsInteger)IfKeyAscii=13ThenKeyAscii=0SendKeys"{TAB}"EndIfEndSubPrivateSubForm_Load()Me.Left=(frmMDI.Width-Me.Width)/2Me.Top=(frmMDI.Height-Me.Height)/4'添加项目WithcboRoomGrade.AddItem"标准间".AddItem"豪华间"EndWithWithcboRoomType.AddItem"单人间".AddItem"双人间"EndWithEndSubPrivateSubtxtRoomNo_KeyPress(KeyAsciiAsInteger)If(KeyAscii<48OrKeyAscii>57)AndKeyAscii<>8ThenKeyAscii=0EndIfEndSubPrivateSubtxtRoomRate_KeyPress(KeyAsciiAsInteger)If(KeyAscii<48OrKeyAscii>57)AndKeyAscii<>8ThenKeyAscii=0EndIfEndSubOptionExplicitDimblnStartSelectAsBooleanPrivateSubcmdCancel_Click()'退出窗体UnloadMeEndSubPrivateSubcmdOk_Click()WithfrmMDI.adoCancel.RecordsetIfNottxtBookNo.LockedThen'可修改状态表示是添加记录IfTrim(txtBookNo.Text)=""ThenMsgBox"登记号不能为空!",vbOKOnly+vbInformation,"提示"txtBookNo.SetFocusExitSubEndIffrmMDI.adoGuest.Recordset.Find"BookNo='"&Trim(txtBookNo.Text)&"'",,adSearchForward,1IffrmMDI.adoGuest.Recordset.EOFThen'有就提示,然后退出MsgBox"非法登记号!",vbOKOnly+vbInformation,"提示"txtBookNo.SetFocusSendKeys"{HOME}+{END}"txtPayMoney.Text=""ExitSubEndIffrmMDI.adoCancel.Recordset.Find"BookNo='"&Trim(txtBookNo.Text)&"'",,adSearchForward,1IfNotfrmMDI.adoCancel.Recordset.EOFThen'有就提示,然后退出MsgBox"已经有相同登记号!",vbOKOnly+vbInformation,"提示"txtBookNo.SetFocusSendKeys"{HOME}+{END}"txtPayMoney.Text=""ExitSubEndIf'没有就添加记录.AddNew!BookNo=Trim(txtBookNo.Text)EndIf'给字段赋值!PayMoney=Val(Trim(txtPayMoney.Text))!CancelDate=dtpCancelDate.Value.Update'退出窗体UnloadMeEndWithEndSubPrivateSubForm_KeyPress(KeyAsciiAsInteger)IfKeyAscii=13ThenKeyAscii=0SendKeys"{TAB}"EndIfEndSubPrivateSubForm_Load()Me.Left=(frmMDI.Width-Me.Width)/2Me.Top=(frmMDI.Height-Me.Height)/4EndSubPrivateSubtxtBookNo_Change()IfNotblnStartSelectThenExitSubEndIffrmMDI.adoGuest.Recordset.Find"BookNo='"&Trim(txtBookNo.Text)&"'",,adSearchForward,1IfNotfrmMDI.adoGuest.Recordset.EOFThendtpBookDate.Value=frmMDI.adoGuest.Recordset!BookDateEndIfEndSubPrivateSubtxtBookNo_GotFocus()blnStartSelect=TrueEndSubPrivateSubtxtBookNo_KeyPress(KeyAsciiAsInteger)'只允许输入数字和退格键If(KeyAscii<48OrKeyAscii>57)AndKeyAscii<>8ThenKeyAscii=0EndIfEndSubPrivateSubtxtBookNo_LostFocus()blnStartSelect=FalseEndSubPrivateSubtxtPayMoney_GotFocus()txtPayMoney.Text=Str(frmMDI.adoRoom.Recordset!RoomRate*(dtpCancelDate.Value-dtpBookDate.Value))EndSubPrivateSubtxtPayMoney_KeyPress(KeyAsciiAsInteger)If(KeyAscii<48OrKeyAscii>57)AndKeyAscii<>8ThenKeyAscii=0EndIfEndSubOptionExplicitPrivateSubForm_Load()'显示在主窗体的中央Me.Left=(frmMDI.Width-Me.Width)/2Me.Top=(frmMDI.Height-Me.Height)/4WithdtgCancelInfo'绑定Set.DataSource=frmMDI.adoCancel.AllowRowSizing=False.AllowRowSizing=False'表头宽度设为两行.HeadLines=2'选择方式为整行选中.MarqueeStyle=dbgHighlightRow'不允许修改(设为只读).AllowAddNew=False.AllowDelete=False.AllowUpdate=False'第一列标题和宽度.Columns(0).Caption="登记号".Columns(0).Width=140.Columns(0).AllowSizing=False'第二列标题和宽度.Columns(1).Caption="退房日期".Columns(1).Width=140.Columns(1).AllowSizing=False'第三列标题和宽度.Columns(2).Caption="付款金额(元)".Columns(2).Width=140.Columns(2).AllowSizing=FalseEndWithEndSubPrivateSubcmdAddNew_Click()WithfrmCancelInfoEdit'窗体标题.Caption="添加新退房记录".txtBookNo.Locked=False.txtBookNo.Text="".dtpCancelDate.Value=Date'显示为模式窗体.txtPayMoney.Text="".ShowvbModalEndWithEndSubPrivateSubcmdDelete_Click(

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论