您的当前位置:首页正文

酒店客房管理系统VB

2022-08-01 来源:爱go旅游网
宾馆住宿管理系统

【摘要】随着人员流动规模的不断扩大,宾馆数量的急剧增加,有关客房管理的各种信息量也在不断成倍增长。面对庞大的信息量,要想提高劳动生产率,降低成本,提高服务质量和管理水平,促进经济效益,必须借助计算机来进行现代化的信息管理,利用客房信息管理系统来提高客房管理工作的效率。通过这样的系统,我们可以做到信息的规范管理和快速查询,从而减少了管理方面的工作量。,《宾馆客房管理信息系统》正是为此而设计的,该系统是运用Microsoft Access 2000数据库系统和Visual Basic程序语言开发实现的,《宾馆住宿管理信息系统》包括了等模块,具有操作简单、界面友善、灵活性好、系统安全性高、运行稳定等特点,是宾馆管理者的理想选择。 客房住宿管理系统的开发: 系统平台:Windows XP

数据库服务器:Microsoft Access

开发工具:Microsoft Visual Basic 6.0

关键词:宾馆住宿管理,信息系统,VB,ACCESS

目 录

第一章 绪论

1.1课题的项目背景 ………………………………………………………………………2 1.2课题的现实意义 ………………………………………………………………………3 第二章 宾馆管理系统研究概述 ……………………………………………………………3 2.1宾馆管理系统的发展历史 ……………………………………………………………3 2.2宾馆管理系统的特点 …………………………………………………………………3 2.3宾馆管理系统的作用 ……………………………………………………………………4 2.4宾馆管理系统的结构 ……………………………………………………………………5 第三章 住宿管理系统的分析 …………………………………………………………………6 3.1需求描述…………………………………………………………………………………6 3.2数据字典……………………………………………………………………………………7 第四章 住宿管理系统的设计 …………………………………………………………………8 4.1系统功能模块设计………………………………………………………………………8 4.2系统平台选择 …………………………………………………………………………8 第五章 数据库设计……………………………………………………………………………8 5.1数据库概念结构设计 …………………………………………………………………12 5.2数据库逻辑结构设计 …………………………………………………………………13 第六章住宿管理系统的实现 …………………………………………………………………17 6.1数据库的实现 …………………………………………………………………………17 6.2登陆模块的创建和设计 ………………………………………………………………17 6.3 主窗体的创建和设计 ……………………………………………………………………19 6.4 系统管理模块的创建和设计 ……………………………………………………………19 6.5 客房管理模块的创建和设计 ……………………………………………………………21 6.6 客户管理模块的创建和设计 ……………………………………………………………28 6.7 登记模块的创建和设计 …………………………………………………………………32 6.8 结算窗体的创建和设计 …………………………………………………………………37 6.9 查询模块的创建和设计 ………………………………………………………………38 第七章 开发设计总结与展望 ………………………………………………………………43 7.1工作总结 ………………………………………………………………………………43 7.2 展望 ……………………………………………………………………………………44 参考文献 ………………………………………………………………………………………44 附录 ……………………………………………………………………………………………44

第一章 绪 论

随着社会经济的发展,人们对生活质量的要求越来越高,作为服务业之一的宾馆业需要不断地提高自己的服务水平,完善宾馆的服务体制。宾馆管理者需及时了解宾馆的全部运营情况及经营走势,找出运转成本,作为经营决策的依据,更好地满足这一需求运用先进的科学管理手段,利用计算机管理系统可以更好实现这一管理模式。

1. 1选题背景

近年来,宾馆业迅猛发展,市场的竞争日趋激烈,全面提高宾馆的管理水准,已成为宾馆业发展的当务之急。尤其是对于星级宾馆,既需要完成前台的一些服务工作,还需要完成后台的管理工作。然而,传统手工的客房信息管理,管理过程繁琐而复杂,执行效率低,并且易于出错,同时,传统的人工管理模式已经远远不能满足有效、快捷地处理经营中产生的大量信息数据的需要,从而使得企业决策层无法及时、准确地掌握一线资料,继而影响对市场进行正确地分析和预测。像沿海城市三星级以上宾馆引进外方管理,使小部分宾馆管理水准几乎接近或达到国际水平。但对占80%以上的广大中小型宾馆来说,是难以做到的。因此,欲在竞争中甩开对手,取得优势,必须在经营、管理、产品、服务等方面具备独到之处。而对宾馆的经营状况起决定作用的是客房的管理。简单的服务标准已不是制胜的锦囊,只有管理做到最细微之处,才能让顾客体会到宾馆服务的高标准、高质量,而准确、快速、周全往往就是最基本的成功要素。采用电脑管理业务、财务等诸多环节已成为推动宾馆业迅速发展的先决条件,通过这样的系统,我们可以做到信息的规范管理和快速查询,实现了客房信息管理的系统化、规范化和自动化,这样不仅减少了管理工作量,还提高了管理效率,降低了管理成本。宾馆客房管理信息系统是各大中小型宾馆所需要使用的一个管理系统。

1.2选题意义

现代宾馆作为一体化的接待场所,是一个旅游城市的窗口,也可以说是一个小型社会。作为一种以服务为主的行业,世界各国对此行业的重视程度并不亚于其它工业。

宾馆在其运作期间,服务水平的高低,直接影响到宾馆的形象和声誉,如:服务的安排、调度是否周到;客人的要求是否能迅速、很好地得到满足;市场的预测分析是否快捷、准确等。这其中的核心就是对每天大量的信息(客人、费用、房间等)的正确处理和保存。采用计算机这一现代化工具作为管理的辅助手段是必须的。计算机的应用包括OA(办公自动化)、MIS(管理信息系统)、CAD(计算机辅助设计)等,宾馆的计算机系统正是典型的MIS应用。

本宾馆管理信息系统,是针对宾馆的具体业务而开发的,业务管理以宾馆的前台管理为核心,为用户提供迅速、高效的服务,减免手工处理的繁琐与误差,及时、准确地反映宾馆的工作情况、经营情况,从而提高宾馆的服务质量,并配合现代化的宾馆管理,获得更好的经济效益。就经济效益而言,宾馆的计算机应用是:

(1)间接性的:其经济效益不是直接产生的,是通过对人力、物力的节省而带来的,可以堵塞许多漏洞;

(2)长期性的:计算机的投资是较大的,是在长期的应用中逐步得到回报的; (3)社会效益: 宾馆是一个高层次的服务行业,采用计算机可提高服务质量,有良好的社会形象。

第二章 宾馆管理系统研究概述

电子计算机科学的飞速发展,给宾馆计算机应用带来了蓬勃生机,出现了宾馆计算机管理信息系统、安全保卫系统、电子门锁系统、宾馆信息服务系统、客房电脑保险系统以及计算机娱乐系统。计算机在宾馆中的应用,已深入到宾馆的各个部门,特别在信息处理领域,计算机已成为最重要的工具。在宾馆现代管理理论中,宾馆管理信息系统已成为宾馆现代科学管理的重要内容,是宾馆经营必不可少的现代科学工具。

2.1 宾馆计算机管理信息系统发展历史

管理信息系统(Management Information System简称MIS)是信息科学的一个分支,是由人和计算机组成的能进行信息的收集、传递、储存、加工、维护和使用的系统。宾馆计算机管理系统是MIS中的一个重要分支,它实现的是计算机管理系统在宾馆中的具体应用。它最早是于70年代初在国外开始发展起来的,到了80年代,国外的宾馆管理系统的整个模式已基本定型,技术较成熟,功能也较齐全。

国内的宾馆计算机管理系统最早是在80年代初开始的,从事该方面工作的有清华大学自动化系、西安交大和浙江省计算技术研究所。到了80年代中后期,随着国外宾馆计算机系统的大规模引进,国外宾馆的先进管理技术进入我国,进一步促进了我国宾馆管理技术的发展。国内系统正是在充分吸收国外管理系统的精华,再结合国内的实际情况,逐步发展成熟,到90年代初期形成了几个较成熟的软件系统,同时产生了许多专职从事宾馆计算机管理系统的公司。

到了90年代中期,随着计算机在宾馆中的普及应用,以及计算机技术的不断发展,宾馆计算机系统的发展到了一个新的时期,新的系统平台、新的软件功能、新的系统特点及发展方向不断涌现。

2.2 宾馆管理信息系统的特点

(1)面向管理决策

管理信息系统是继承管理学的思想方法、管理与决策的行为理论之后的一个重要发展,它是一个为管理决策服务的信息系统,它必须能够根据管理的需要即使提供所需要的信息,帮助决策者作出决策。 (2)综合性

宾馆管理系统是一个对宾馆进行全面管理的系统,宾馆在建设管理信息系统时,可根据需要逐步建设应用于个别部门的子系统,然后进行综合,最终达到应用管理信息系统进行综合管理的目标。系统综合的意义在于产生更高层次的管理信息,为管理决策服务。 (3)人机系统

宾馆管理系统的目的在于辅助管理者进行决策,而决策只能由人来做,因而,宾馆管理系统只能是一个人机结合的系统。在系统中,各级管理人员既是系统的使用者,又是系统的组成部分。因而在宾馆管理系统的开发过程中,要根据这一特点,正确界定人和计算机在在系统中的地位和作用,充分发挥人和计算机各自的长处,使系统整体性能达到最优。 (4)现代管理方法和手段相结合的系统

人们在管理信息系统的应用实践中发现,只简单地采用计算机技术提高处理速度,而不采用先进的管理方法,则管理信息系统的应用充其量只是减轻了管理人员的工作量,其作用的发挥十分有限。系统要发挥其在管理中的作用,就必须与先进的管理手段和方法结合起来,在开发系统时融进现代化的管理思想和方法。

(5)多学科交叉的科学

管理信息系统作为一门新的学科,产生较晚,它是从计算机科学与技术、应用数学、管理理论、决策理论、运筹学等相关学科中抽取出相应的理论构成其理论基础,从而形成一个有鲜明特色的边缘科学。

2.3 宾馆管理信息系统的作用

宾馆计算机管理就其表现形式看就是对宾馆大量的常规性信息的输入、存储、处理和输出过程,其作用主要表现在以下几个方面:

(1)提高宾馆的管理效率及经济效益

应用宾馆管理系统可以节省大量的人力物力,增加宾馆的服务项目,从而提高宾馆的服务档次,减少管理上的漏洞,从整体上提高宾馆的经济效益。如完善的预订功能可防止有房不能租或满房重订的情况出现,可随时提供准确的房间使用和预订情况,从而提高客房出租率。客人费用的直接记帐,可有效防止逃帐的发生。完善的分析功能可用于市场销售,如确定宣传的重点地区和如何掌握价格的浮动等。正确控制房价,控制客人优惠,从而减少管理漏洞,提高客房收入。 (2)提高服务质量

由于计算机处理信息的速度很快,可以大大减少客人入住、结帐的等候时间,提高对客人的服务质量。快速的客人信息查询手段,使客人得到满意的答复,不仅方便了宾客,也提高了宾馆的管理水平,有利于改善宾馆的形象。清晰准确的账单、票据、表格,使客人感受到高水准的管理与流畅的业务水平。完善的预订系统,使客人的入住有充分的保证。完善的客史档案管理更使客人的历史资料得到完善的保存。利用计算机对保存的客人历史资料的统计分析,可对常客或消费额达到一定数量的客人自动给予折扣;也可对客人的消费特点进行分析,总结出客人生活方面的要求和特点,研究如何为客人提供

更合适的个性化服务,如安排房间、提供就餐等,甚至细致到给客人送什么报纸杂志、生日送什么礼品等。

(3)提高工作效率

计算机管理可大大提高业务运作的速度和准确性。如电脑的自动夜间稽核功能结束了手工报表的历史,电脑资料的正确保存避免了抄客人名单的低效工作,严格的数据检查避免手工操作的疏忽而造成的错误,票据的传送、登记、整理、复核等一系列的繁重劳动也可大为减少。电话自动计费及开关控制,使话务员的工作只是接电话而已。 (4)完善宾馆内部管理体制

科学、正规、系统的宾馆软件系统在宾馆管理体系中还发挥着强有力的稳定作用,可明显地减少员工及管理人员的流动对宾馆管理运作的不良影响。系统提供的多种安全级别,保证各类数据不被无权过问的人查阅和操作。每天的审核制度,各种费用的优惠控制,应收账款的管理,员工工作量的考核,员工操作过程的跟踪,均可加强宾馆管理。

(5)全面了解营业情况,提高宾馆决策水平 宾馆信息系统能提供完备的历史数据,又可提供各种分析模式,可使管理人员很方便地完成复杂的统计分析工作,并加强对宾馆运营的内部控制,增强管理人员的控制决策水平。

2.4宾馆管理信息系统的结构

宾馆管理系统由计算机硬件、系统软件及应用软件组成。

(1) 硬件指电脑设备,系统软件指系统的运行平台,它们一起构成宾馆管理系统的体系结构。宾馆管理系统使用的体系结构一般有三种类型:单机系统、集中式和分布式。这三种结构随计算机技术的发展而产生,至今还在不断地发展变化着。

早期的单机系统,由一台主机、显示器、键盘、打印机等,再配备一定的软件组成,能完成一些简单的业务宾馆。由于该系统的信息处理能力较弱,数据的安全性不高,该结构目前已很少有人使用。 集中式处理结构,采用一台或二台小型计算机或超级微机作为主机,使用人员通过各终端与主机联系,进行各类数据处理作业。它数据处理能力强,数据安全,可靠性高。缺点是终端本身没有处理能力,系统处理速度将随终端数量的增加而明显减慢,而且一般终端只有字符界面,用户界面不美观。因此,在PC机及Windows流行之前的70年代到80年代末,是宾馆最理想的结构。

分布式处理结构以高档微机或小型机作为网络服务器,通过网络连接各个工作站,而各工作站都是一台独立的微机,本身具有数据处理的能力,需要时可联机入网在服务器内进行数据处理,是目前理想的体系结构。以前流行的局部网络系统(文件服务器结构,基本上是DOS系统,属已淘汰),目前流行的C/S结构(即客户机/服务器结构)都是分布式结构。C/S结构中,客户机支持用户的前端处理,而且一般是Windows图形界面,服务器用于支持应用的系统环境,包括数据库的管理及查询。它结合了局部网络和集中式多用户系统的优点,由服务器和客户机协同处理,充分发挥系统的各种优越性,是目前宾馆中最佳的体系结构。

随着通讯技术的发展,Internet的普及,分布式结构实现了远程数据处理。这种广域网分布结构更适合宾馆集团的信息管理。集团总部可以通过Internet有效地管理各地的宾馆,及时了解各宾馆之间的经营情况,各宾馆之间也可通过Internet实现信息互传。从计算机应用的发展趋势看,基于B/S(浏览器/服务器)结构的广域网方式是今后发展的方向。

目前C/S结构的交互性较强,安全性高,处理速度快,而B/S结构的点对多点、多点对多点的开放式模式降低了系统的安全性,而且通过网络传递信息,通信量大,处理速度较慢,对一些中小型宾馆来说,C/S结构是首选结构。 (2)软件结构

一个宾馆管理系统从使用者的角度看,软件结构就是宾馆管理系统的功能结构。各种功能之间有各种信息联系,这样就构成了一个有机整体,形成一个完整的软件功能结构。因此系统一般可分为前台(对客人服务)和后台(内部管理)两大部分,以及各种各样的系统接口。一般宾馆管理软件的功能结构图如下:

宾馆管理系统 前台操作 内部数据管理 系统接口功能 第三章 宾馆住宿管理系统分析

3.1需求描述

面对信息时代的机遇和挑战,采用全新的计算机网络和宾馆信息管理系统,已成为提高宾馆管理效率、改善服务水准的重要手段之一,在某种意义上,宾馆管理的信息化已成为现代化宾馆的重要标志。客房管理是宾馆管理的核心任务,为此,我们结合目前客房管理的现状,经过充分的调研和综合分析,开发了宾馆客房信息管理系统。该系统的数据流图如下:

3.2数据字典

经过以上综合分析,设计出后台数据库的数据字典如下: (一)数据项

1 数据项:客户号

含义说明:唯一标识一个客户的身份 别名:客户证件号 类型:数字 长度:18

取值范围:1……000—9……999 2 数据项:姓名

含义说明:客户称谓 别名:个人代号 类型:文本 长度:50 3 数据项:类型

含义说明:唯一标识某一客房标准 类型:文本 长度:10

4 数据项:额定人数

含义说明:规定各个客房的可容纳人数 类型:数字 长度:4

取值范围:1—10 5 数据项:价格

含义说明:客户住宿一日所付费用 别名:每日房租 类型:货币型 长度:8

取值范围:10—1000 6 数据项:房间号

含义说明:唯一标识一个客房 别名:门牌号 类型:数字 长度:4

取值范围:101—9999 7 数据项:入住日期

含义说明:客户入住宾馆的时间 类型:日期型 长度:8

取值范围:2000-1-1—2999-12-31 8 数据项:结算日期

含义说明:客户退房结帐时的时间 类型:日期型 长度:8

取值范围:2000-1-1—2999-12-31 9 数据项:预订入住日期

含义说明:客户订房时约定入住的日期 类型:日期型 长度:8

取值范围:2000-1-1—2999-12-31 10 数据项:预订天数

含义说明:预订将要在宾馆住宿的时间长度 类型:数字型 长度:4

取值范围:1—1000 11 数据项:预缴押金

含义说明:客户订房时交纳的现金金额 类型:货币型 长度:8

取值范围:10—10000

(二)数据流

1 数据流:客户需求

说明:客户根据自身的需要而向前台提出的客房需求 数据流来源:客户

数据流去向:客房查询系统

组成:价格、位置、客房配套设施等 平均流量:待定 高峰期:待定 2 数据流:查询结果

说明:输入查询条件后输出的结果 数据流来源:查询系统 数据流去向:客户

组成:房间号、类型、价格、位置、客房配套设施等 平均流量:待定 高峰期:待定 3 数据流:客户选择

说明:客户根据查询结果所作出的选择、决定 数据流来源:客户

数据流去向:入住或预订登记系统 组成:类型、房间号等 平均流量:待定 高峰期:待定

4 数据流:客户信息与入住信息

说明:前台将客户及其入住信息录入系统 数据流来源:登记模块

数据流去向:入住记录、预订记录 组成:房间号、客户号等 平均流量:待定 高峰期:待定 5 数据流:客户需求

说明:客户根据自身的需要而向前台提出的客房需求 数据流来源:客户

数据流去向:客房查询系统

组成:价格、位置、客房配套设施等 平均流量:待定 高峰期:待定

6 数据流:客户入住信息

说明:结算时系统提供给客户的具体的入住信息,如价格、入住时间、消费金额等 数据流来源:结算系统 数据流去向:客户

组成:价格、入住时间、消费金额等 平均流量:待定 高峰期:待定 7 数据流:存档信息

说明:客户结算时的结算日期、金额 数据流来源:结算系统 数据流去向:客户入住记录 组成:结算日期、金额 平均流量:待定 高峰期:待定

(三)数据存储

1 数据存储:客户信息

说明:记录客户的基本信息,如证件号、姓名、性别、籍贯等 输入数据流: 输出数据流: 数据量:

存取方式:随机存取 2 数据存储:客房类型

说明:记录各种类型客房的设施配置等信息 输入数据流: 输出数据流: 数据量:

存取方式:顺序存取 3 数据存储:客房信息

说明:记录客房的基本信息,所属类型、房间号、位置等 输入数据流: 输出数据流: 数据量:

存取方式:顺序存取 4 数据存储:系统用户

说明:记录用户使用系统的用户名、密码 输入数据流: 输出数据流: 数据量:

存取方式:随机存取 5 数据存储:入住记录

说明:记录客户入住的基本信息,如入住日期、预订房间号等 输入数据流: 输出数据流: 数据量:

存取方式:随机存取 6 数据存储:预订记录

说明:记录客户预订的基本信息,如预订入住日期、预订房间号、预订天数等 输入数据流: 输出数据流: 数据量:

存取方式:随机存取

(四)处理过程 1 处理过程:查询

说明:根据客户的需求和客户提供的信息,输入到查询系统中去,系统自动检索出与输入相匹配的记录输出到用户界面。 输入:查询条件

输出:与查询条件相匹配的的记录

处理:在系统存储的信息中检索符合要求的信息记录并输出 2 处理过程:登记

说明:客户入住或预订时提供个人信息以及入住或预订信息,记录到响应的存储中 输入:客户信息、客房选择等 输出:客户入住记录

处理:将客户的个人信息记录到客户信息表中,将入住(预订)信息记录到入住(预订)记录中 3 处理过程:结算

说明:根据客户提供的信息为客户办理退房手序并注销房间 输入:客户证件号或姓名

输出:客户入住的具体信息以及结算信息

处理:在系统存储的信息中检索出该客户的入住信息进行,结算后将该信息存档 4 处理过程:系统管理

说明:用户的注册、登陆、修改密码以及对用户进行管理 输入:用户名 输出:用户的信息

处理:在系统用户表中存储、修改、删除用户的信息,维护系统的可用性、安全性等

第四章 宾馆住宿管理系统设计

4 .1系统功能模块设计

经过综合分析,确定了该系统应该包括如下功能:

1) 客房类型管理:提供有关客房类型状况的规范,如标准间、单人间等的价格、设施配置等信息。 2) 客房信息管理:管理各个客房的具体信息,如类型、位置等。 3) 客户信息管理:入住宾馆的客人的具体信息的录入、保存等。 4) 查询功能:包括客户信息查询、客房信息查询、住宿记录查询等。 5) 入住管理功能:登记入住信息、分配房间等。

6) 预订管理功能:登记预订客户、客房的信息以及浏览查询等。 7) 结算功能:客户退房收款以及注销房间等。

8) 系统管理:用户管理、用户注册、用户权限设置等。

根据以上对系统的功能需求的分析,将系统的功能划分为三大模块: (一) 数据管理:包括客房类型管理、客房信息管理、客户信息管理 (二) 前台操作:包括各种信息的查询、入住和预订登记和结算的管理。 (三) 系统管理:用户注册、修改密码、用户信息管理。 系统的功能模块图如下:

4.2系统平台选择

由于Windows XP的界面友好,安全性高,所以系统平台选择了Windows XP 数据库服务器:Microsoft Access

可视化效果好的开发工具:Microsoft Visual Basic 6.0

第五章 数据库设计

5.1数据库概念结构设计

通过以上对数据字典的设计,总结出以下几个数据库实体,其E-R图如下: 1 客户实体图:

2 客房实体图:

3 客房类型实体图:

4 系统综合E-R图:

5.2数据库逻辑结构设计

客房类型(类型 面积 价格 额定床位 额定人数 是否有电视 是否有电话是否有空调 是否有卫生间) 客房信息(房间号 类型 楼层)

客户信息(客户号 姓名 性别 籍贯)

入住记录(客户号 房间号 入住日期 结算日期 备注)

预订信息(客户号 房间号 预订日期 预订入住日期 预订天数)

系统用户(用户名 密码)

第六章 宾馆住宿管理系统的实现

6.1数据库的实现

(一)创建数据库:打开ACCESS 2000,“新建数据库“,创建一个空数据库,命名为DB_Hotel。 (二)在DB_Hotel中创建六张表,包括客房类型信息表,客房信息表,客户信息表,入住信息表,预订信息表,系统用户信息表。

客房类型(类型 面积 价格 额定床位 额定人数 是否有电视 是否有电话是否有空调 是否有卫生间)

客房信息(房间号 类型 楼层)

客户信息(客户号 姓名 性别 籍贯)

入住记录(客户号 房间号 入住日期 结算日期 备注)

预订信息(客户号 房间号 预订日期 预订入住日期 预订天数)

系统用户(用户名 密码)

(三)建立查询

1 客房详细信息_cx

SELECT 客房信息.房间号, 客房信息.类型, 客房类型.价格, 客房类型.额定床位, 客房类型.额定人数, 客房信息.楼层, 客房类型.是否有电视, 客房类型.是否有电话, 客房类型.是否有空调, 客房类型.是否有卫生间

FROM 客房类型 LEFT JOIN 客房信息 ON 客房类型.类型 = 客房信息.类型; 2 在住记录_cx1

SELECT 入住记录.客户号, 客户信息.姓名, 入住记录.房间号, 客户信息.性别, 入住记录.入住日期 FROM 客户信息 LEFT JOIN 入住记录 ON 客户信息.客户号 = 入住记录.客户号 WHERE (((入住记录.备注)=\"未退房\")) ORDER BY 入住记录.客户号; 3在住记录_cx2

SELECT 在住记录_cx1.客户号, 在住记录_cx1.姓名, 在住记录_cx1.性别, 在住记录_cx1.房间号, 客房信息.类型, 在住记录_cx1.入住日期

FROM 在住记录_cx1 INNER JOIN 客房信息 ON 在住记录_cx1.房间号 = 客房信息.房间号 ORDER BY 在住记录_cx1.入住日期; 4在住记录_cx3

SELECT 在住记录_cx2.客户号, 在住记录_cx2.姓名, 在住记录_cx2.性别, 在住记录_cx2.房间号, 在住记录_cx2.类型, 客房类型.价格, 客房类型.额定床位, 客房类型.额定人数, 在住记录_cx2.入住日期

FROM 客房类型 INNER JOIN 在住记录_cx2 ON 客房类型.类型 = 在住记录_cx2.类型 ORDER BY 在住记录_cx2.入住日期; 5历史记录_cx1

SELECT 客户信息.客户号, 客户信息.姓名, 入住记录.房间号, 入住记录.入住日期, 入住记录.结算日期, [结算日期]-[入住日期] AS 入住天数, 入住记录.备注

FROM 客户信息 LEFT JOIN 入住记录 ON 客户信息.客户号 = 入住记录.客户号 WHERE (((入住记录.备注)=\"已退房\")) ORDER BY 入住记录.结算日期; 6 历史记录_cx2

SELECT 历史记录_cx1.客户号, 历史记录_cx1.姓名, 历史记录_cx1.房间号, 客房信息.类型, 历史记录_cx1.入住日期, 历史记录_cx1.结算日期, 历史记录_cx1.入住天数

FROM 历史记录_cx1 INNER JOIN 客房信息 ON 历史记录_cx1.房间号 = 客房信息.房间号 ORDER BY 历史记录_cx1.结算日期;

7 历史记录_cx3

SELECT 历史记录_cx2.客户号, 历史记录_cx2.姓名, 历史记录_cx2.房间号, 历史记录_cx2.类型, 客房类型.价格, 历史记录_cx2.入住日期, 历史记录_cx2.结算日期, 历史记录_cx2.入住天数, [价格]*[入住天数] AS 结算金额

FROM 客房类型 INNER JOIN 历史记录_cx2 ON 客房类型.类型 = 历史记录_cx2.类型 ORDER BY 历史记录_cx2.结算日期; 8 预订信息_cx1

SELECT 客户信息.客户号, 客户信息.客户号, 客户信息.姓名, 客户信息.性别, 预订记录.房间号, 预订记录.预订日期, 预订记录.预订入住日期, 预订记录.预订天数

FROM 客户信息 LEFT JOIN 预订记录 ON 客户信息.客户号 = 预订记录.客户号 WHERE (((客户信息.客户号)=[预订记录].[客户号])) ORDER BY 预订记录.预订日期; 9 预订信息_cx2

SELECT 预订信息_cx1.客户号, 预订信息_cx1.姓名, 预订信息_cx1.性别, 预订信息_cx1.房间号, 客房信息.类型, 预订信息_cx1.预订日期, 预订信息_cx1.预订入住日期, 预订信息_cx1.预订天数 FROM 客房信息 INNER JOIN 预订信息_cx1 ON 客房信息.房间号 = 预订信息_cx1.房间号 ORDER BY 预订信息_cx1.预订日期; 10 预订信息_cx3

SELECT 预订信息_cx2.客户号, 预订信息_cx2.姓名, 预订信息_cx2.性别, 预订信息_cx2.房间号, 预订信息_cx2.类型, 客房类型.价格, 客房类型.额定床位, 客房类型.额定人数, 预订信息_cx2.预订日期, 预订信息_cx2.预订入住日期, 预订信息_cx2.预订天数, [价格]*[预订天数] AS 预缴押金 FROM 客房类型 INNER JOIN 预订信息_cx2 ON 客房类型.类型 = 预订信息_cx2.类型 ORDER BY 预订信息_cx2.预订日期;

11 客房在住人数统计_cx

SELECT 在住记录_cx3.房间号, 在住记录_cx3.类型, Count(在住记录_cx3.房间号) AS 在住人数, 在住记录_cx3.额定人数 FROM 在住记录_cx3

GROUP BY 在住记录_cx3.房间号, 在住记录_cx3.类型, 在住记录_cx3.额定人数; 12 客满房间_cx

SELECT 客房在住人数统计_cx.房间号, 客房在住人数统计_cx.类型, 客房在住人数统计_cx.在住人数, 客房在住人数统计_cx.额定人数 FROM 客房在住人数统计_cx

WHERE (((客房在住人数统计_cx.类型)<>\"双人间\") AND ((客房在住人数统计_cx.在住人数)>0)) OR (((客房在住人数统计_cx.类型)=\"双人间\") AND ((客房在住人数统计_cx.在住人数)=2)) OR (((客房在住人数统计_cx.类型)=\"三人间\") AND ((客房在住人数统计_cx.在住人数)=3)); 13 未满房间_cx

SELECT 房间号, 类型 FROM 客房信息

WHERE 房间号 not in (select 房间号 from 客满房间_cx); 14 空房_cx

SELECT 客房信息.房间号, 客房信息.类型, 客房类型.额定人数

FROM 客房类型 INNER JOIN 客房信息 ON 客房类型.类型 = 客房信息.类型

WHERE (((客房信息.房间号) Not In (select 房间号 from 入住记录 where 备注=\"未退房\"))); 15未满非空房间_cx1

SELECT 客房信息.房间号, 客房信息.类型 FROM 未满房间_cx

WHERE (((客房信息.房间号) Not In (select 房间号 from 空房_cx))); 16未满非空房间_cx2

SELECT 未满非空房间_cx1.房间号, 未满非空房间_cx1.类型, 客房在住人数统计_cx.在住人数, 客房在住人数统计_cx.额定人数

FROM 客房在住人数统计_cx INNER JOIN 未满非空房间_cx1 ON 客房在住人数统计_cx.房间号 = 未满非空房间_cx1.房间号;

6.2登陆窗体的创建和设计

登陆窗体具有用户注册和用户登陆的功能,并且根据用户的不同,分配不同的权限。 用户注册功能的实现:点击“注册“后导入注册窗体,如下:

在用户名中输入要注册的用户名和密码,系统自动检测用户名是否已经存在和密码输入是否正确。如果用户名已经存在或两次输入密码不一致则注册失败,若两者都符合要求则注册成功。代码如下: (通过 Adodc1连接数据库:

Adodc1.connectionstring=”Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\\VB应用程序\\hotel_MIS\\DB_hotel.mdb;Persist Security Info=False”

Adodc1.commandtype=adcmdtext

Adodc1.recordsource=”select * from 系统用户”) Private Sub cmd_ok_Click()

Adodc1.RecordSource = \"select * from 系统用户 where 用户名='\" + Text1.Text + \"'\" Adodc1.Refresh

If Adodc1.Recordset.RecordCount > 0 Then

MsgBox \"该用户名已存在,请更改后重新注册。\提示信息\" Exit Sub End If

If Text1.Text = \"\" Or Text2.Text = \"\" Or Text3.Text = \"\" Then MsgBox \"输入不完整\提示信息\" ElseIf Text2.Text <> Text3.Text Then

MsgBox \"两次输入的密码不一致,请确认后重新输入!\宾馆管理系统\" Text2.Text = \"\" Text3.Text = \"\" Text2.SetFocus Else

Adodc1.Recordset.AddNew

Adodc1.Recordset.Fields(\"用户名\") = Text1.Text Adodc1.Recordset.Fields(\"密码\") = Text2.Text MsgBox \"注册成功!\提示信息\" Adodc1.Recordset.Update frm_zhuce.Hide End If End Sub

注册成功后回到登陆窗口登陆系统。

6.3主窗体的创建和设计

本系统提供一个管理员帐户,与非管理员有着不同的权限。以非管理员帐户登陆后权限变小,不能对后台系统数据进行查询以外的操作。以管理员帐号登陆后的主界面为:

此主界面拥有的菜单如下:

而普通用户登陆后拥有的菜单为:

主窗体主要通过菜单来连接各个功能窗口,以使其成为一个有机整体,实现系统的各个功能。

6.4系统管理模块的创建和设计

(一)用户注册:前面已经说明过了,在此不在赘述。 (二)修改密码:

主要实现代码如下:

Private Sub cmd_ok_Click()

Adodc1.RecordSource = \"select * from 系统用户 where 用户名='\" + Text1.Text + \"'\" Adodc1.Refresh

If Text1.Text = \"\" Or Text2.Text = \"\" Or Text3.Text = \"\" Then MsgBox \"输入不完整。\提示信息\"

ElseIf Adodc1.Recordset.RecordCount = 0 Then MsgBox \"该用户名不存在。\提示信息\"

ElseIf Adodc1.Recordset.Fields(\"密码\") <> Text2.Text Then

MsgBox \"您输入的旧密码错误,请确认后重新输入。\提示信息\" Text1.Text = \"\" Text2.Text = \"\" Text3.Text = \"\" Text1.SetFocus Else

Adodc1.Recordset.Fields(\"密码\") = Text3.Text Adodc1.Recordset.Update

MsgBox \"修改成功\提示信息\" End If End Sub

(三)用户管理

可以通过用户名来查询用户的密码,此权限只有管理员拥有,对普通用户屏蔽此菜单。 还可以删除不用的帐户。主要实现代码如下: (1) 查询:

Private Sub cmd_query_Click()

Adodc1.RecordSource = \"select * from 系统用户 where 用户名='\" + Text1.Text + \"'\" Adodc1.Refresh

If Text1.Text = \"\" Then

MsgBox \"请输入用户名!\提示信息\" Exit Sub End If

If Adodc1.Recordset.RecordCount = 0 Then MsgBox \"无此用户!\提示信息\" Exit Sub End If End Sub

(2) 删除用户:

Private Sub cmd_delete_Click()

On Error GoTo errorhandler '允许错误发生

Adodc1.RecordSource = \"select * from 系统用户\" If Adodc1.Recordset.RecordCount = 0 Then

MsgBox \"请选择要删除的用户\提示信息\" Exit Sub End If

sure = MsgBox(\"确定删除当前纪录吗?\提示信息\") Select Case sure Case vbOK

Adodc1.Recordset.Delete Adodc1.Recordset.Update

MsgBox \"用户已删除。\提示信息\" Case vbCancel Exit Sub End Select Adodc1.Refresh Exit Sub

errorhandler: '允许错误发生的错误处理

MsgBox \"系统中没有用户 。\提示信息\" 'Resume Next 'End If End Sub

6.5客房管理模块的创建和设计

(一)客房类型管理:主要完成对客房类型的录入、查询、更新、修改等操作,客房类型的查询功能为共享,录入、更新、修改操作为管理员独享。该界面如下:

(1) 查询功能的实现如下: Private Sub cmd_query_Click()

On Error GoTo errorhandler '允许错误发生 Text1(0).SetFocus

Adodc1.RecordSource = \"select * from 客房类型 where 类型='\" + Text1(0).Text + \"'\" If Text1(0).Text = \"\" Then

MsgBox \"请输入客房类型!\提示信息\" Exit Sub End If

Adodc1.Refresh

If Adodc1.Recordset.RecordCount = 0 Then

MsgBox \"无此类型记录!\提示信息\" Exit Sub End If

Text1(1).Text = Adodc1.Recordset.Fields(\"面积\") Text1(2).Text = Adodc1.Recordset.Fields(\"价格\") Text1(3).Text = Adodc1.Recordset.Fields(\"额定床位\") Text1(4).Text = Adodc1.Recordset.Fields(\"额定人数\") Text1(5).Text = Adodc1.Recordset.Fields(\"是否有电视\") Text1(6).Text = Adodc1.Recordset.Fields(\"是否有电话\") Text1(7).Text = Adodc1.Recordset.Fields(\"是否有空调\") Text1(8).Text = Adodc1.Recordset.Fields(\"是否有卫生间\") Exit Sub

errorhandler: '允许错误发生的错误处理

MsgBox \"输入数据的类型匹配错误,请重新输入。\" 'Resume Next End Sub

(2) 录入保存功能的实现: Private Sub cmd_save_Click()

On Error GoTo errorhandler '允许错误发生 For i = 0 To 8

If Text1(i) = \"\" Then

MsgBox \"信息输入不完整!\提示信息\" Exit Sub End If Next i

Adodc1.RecordSource = \"select * from 客房类型 where 类型='\" + Text1(0).Text + \"'\" Adodc1.Refresh

If Adodc1.Recordset.RecordCount > 0 Then

MsgBox \"此类型记录已存在!添加不成功\提示信息\" Exit Sub End If

Adodc1.Recordset.AddNew

Adodc1.Recordset.Fields(\"类型\") = Text1(0).Text Adodc1.Recordset.Fields(\"面积\") = Text1(1).Text Adodc1.Recordset.Fields(\"价格\") = Text1(2).Text Adodc1.Recordset.Fields(\"额定床位\") = Text1(3).Text Adodc1.Recordset.Fields(\"额定人数\") = Text1(4).Text Adodc1.Recordset.Fields(\"是否有电视\") = Text1(5).Text Adodc1.Recordset.Fields(\"是否有电话\") = Text1(6).Text Adodc1.Recordset.Fields(\"是否有空调\") = Text1(7).Text Adodc1.Recordset.Fields(\"是否有卫生间\") = Text1(8).Text MsgBox \"添加成功!\提示信息\" Adodc1.Recordset.Update Exit Sub

errorhandler: '允许错误发生的错误处理

MsgBox \"输入数据的类型匹配错误,请重新输入。\" 'Resume Next End Sub

(3)更新已有记录的实现:

On Error GoTo errorhandler '允许错误发生

Adodc1.RecordSource = \"select * from 客房类型\" If Adodc1.Recordset.RecordCount = 0 Then

MsgBox \"无修改目标\提示信息\" Exit Sub End If

Adodc1.RecordSource = \"select * from 客房类型 where 类型='\" + Text1(0).Text + \"'\"

If Text1(0).Text = \"\" Or Text1(1).Text = \"\" Or Text1(2).Text = \"\" Or Text1(3).Text = \"\" Or Text1(4).Text = \"\" Or Text1(5).Text = \"\" Or Text1(6).Text = \"\" Or Text1(7).Text = \"\" Or Text1(8).Text = \"\" Then

MsgBox \"信息输入不完整!\提示信息\" Exit Sub End If

Adodc1.Refresh

Adodc1.Recordset.Fields(\"类型\") = Text1(0).Text Adodc1.Recordset.Fields(\"面积\") = Text1(1).Text Adodc1.Recordset.Fields(\"价格\") = Text1(2).Text Adodc1.Recordset.Fields(\"额定床位\") = Text1(3).Text Adodc1.Recordset.Fields(\"额定人数\") = Text1(4).Text Adodc1.Recordset.Fields(\"是否有电视\") = Text1(5).Text

Adodc1.Recordset.Fields(\"是否有电话\") = Text1(6).Text Adodc1.Recordset.Fields(\"是否有空调\") = Text1(7).Text Adodc1.Recordset.Fields(\"是否有卫生间\") = Text1(8).Text Adodc1.Recordset.Update

MsgBox \"修改成功!\提示信息\" Adodc1.Refresh Exit Sub

errorhandler: '允许错误发生的错误处理 MsgBox \"类型匹配错误,请重新输入。\" 'resume next End Sub

(4)删除功能的实现:

Private Sub cmd_delete_Click()

On Error GoTo errorhandler '允许错误发生

Adodc1.RecordSource = \"select * from 客房类型\" If Adodc1.Recordset.RecordCount = 0 Then MsgBox \"无记录\提示信息\" Exit Sub End If

sure = MsgBox(\"确定删除当前纪录吗?\提示信息\") Select Case sure Case vbOK

Adodc1.Recordset.Delete Adodc1.Recordset.Update

MsgBox \"记录已删除。\提示信息\" For i = 0 To 8

Text1(i).Text = \"\" Next i

Case vbCancel Exit Sub End Select Adodc1.Refresh Exit Sub

errorhandler: '允许错误发生的错误处理

MsgBox \"客房信息中含有该相关记录,不允许删除!\提示信息\" ' Resume Next End Sub

(二)客房信息管理:主要完成对客房基本信息的录入、查询、更新、修改等操作,其中查询功能为共享,录入、更新、修改操作为管理员独享该界面如下:

(1) 录入保存功能的实现如下: Private Sub cmd_save_Click()

On Error GoTo errorhandler '允许错误发生 For i = 0 To 2

If Text1(i) = \"\" Then

MsgBox \"信息输入不完整!\提示信息\" Exit Sub End If Next i

If IsNumeric(Text1(0).Text) = False Then '避免错误发生 MsgBox \"请在房间号中输入数字!\提示信息\" Exit Sub

ElseIf IsNumeric(Text1(2).Text) = False Then MsgBox \"请在楼层中输入数字!\提示信息\" Exit Sub End If

Adodc1.RecordSource = \"select * from 客房信息 where 房间号=\" + Text1(0).Text + \"\" Adodc1.Refresh

If Adodc1.Recordset.RecordCount > 0 Then

MsgBox \"此房间记录已存在!\提示信息\" Exit Sub End If

Adodc1.Recordset.AddNew

Adodc1.Recordset.Fields(\"房间号\") = Text1(0).Text Adodc1.Recordset.Fields(\"类型\") = Text1(1).Text Adodc1.Recordset.Fields(\"楼层\") = Text1(2).Text MsgBox \"添加成功!\提示信息\" Adodc1.Recordset.Update Exit Sub

Exit Sub

errorhandler: '允许错误发生的错误处理 If Err.Number = -2147467259 Then

MsgBox \"无此类型,添加不成功。\提示信息\" 'Resume Next Exit Sub End If End Sub

(2) 查询功能的实现:

Private Sub cmd_query_Click()

On Error GoTo errorhandler '允许错误发生

Adodc1.RecordSource = \"select * from 客房信息 where 房间号=\" + Text1(0).Text + \"\" If Text1(0).Text = \"\" Then

MsgBox \"请输入房间号!\提示信息\" Exit Sub End If

If IsNumeric(Text1(0).Text) = False Then '避免错误发生 MsgBox \"请输入数字!\提示信息\" Exit Sub End If

Adodc1.Refresh

If Adodc1.Recordset.RecordCount = 0 Then

MsgBox \"无此房间记录!\提示信息\" Exit Sub End If

Text1(1).Text = Adodc1.Recordset.Fields(\"类型\") Text1(2).Text = Adodc1.Recordset.Fields(\"楼层\") Exit Sub

errorhandler: '允许错误发生的错误处理 If Err.Number = -2147217904 Then

MsgBox \"房间号输入错误,请输入长整型\提示信息\" 'Resume Next End If End Sub

(3)更新已有记录的实现:

Private Sub cmd_update_Click()

On Error GoTo errorhandler '允许错误发生

Adodc1.RecordSource = \"select * from 客房信息\" Adodc1.Refresh

If Adodc1.Recordset.RecordCount = 0 Then

MsgBox \"无修改目标\提示信息\" Exit Sub End If

Adodc1.RecordSource = \"select * from 客房信息 where 房间号=\" + Text1(0).Text + \"\" If Text1(0).Text = \"\" Or Text1(1).Text = \"\" Or Text1(2).Text = \"\" Then MsgBox \"信息输入不完整!\提示信息\" Exit Sub End If

Adodc1.Refresh

Adodc1.Recordset.Fields(\"类型\") = Text1(1).Text Adodc1.Recordset.Fields(\"楼层\") = Text1(2).Text

Adodc1.Recordset.Update

MsgBox \"修改成功!\提示信息\" Adodc1.Refresh Exit Sub

errorhandler: '允许错误发生的错误处理 If Err.Number = 3021 Then

MsgBox \"该房间记录不存在,修改不成功。\提示信息\" 'Resume Next Exit Sub End If

If Err.Number = -2147217900 Then

MsgBox \"房间号存在相关记录,不允许更新或删除。\提示信息\" 'Resume Next Exit Sub End If

If Err.Number = -2147217904 Then

MsgBox \"房间号输入错误,请输入长整型\提示信息\" 'Resume Next Exit Sub End If

If Err.Number = -2147467259 Then

MsgBox \"无此类型,修改不成功。\提示信息\" 'Resume Next Exit Sub End If

If Err.Number = -2147217887 Then

MsgBox \"楼层输入错误,请输入长整型\提示信息\" 'Resume Next Exit Sub End If End Sub

(4)删除功能的实现:

Private Sub cmd_delete_Click()

On Error GoTo errorhandler '允许错误发生

Adodc1.RecordSource = \"select * from 客房信息\" If Adodc1.Recordset.RecordCount = 0 Then MsgBox \"无记录\提示信息\" Exit Sub End If

sure = MsgBox(\"确定删除当前纪录吗?\提示信息\") Select Case sure Case vbOK

Adodc1.Recordset.Delete Adodc1.Recordset.Update

MsgBox \"记录已删除。\提示信息\" For i = 0 To 2

Text1(i).Text = \"\" Next i

Case vbCancel Exit Sub End Select

Adodc1.Refresh Exit Sub

errorhandler: '允许错误发生的错误处理 'If Err.Number = 91 Then

MsgBox \"入住或预订信息中含有该相关记录,不允许删除。\提示信息\" 'Resume Next 'End If End Sub

6.6客户管理模块的创建和设计

客户信息管理主要完成对客户基本信息的录入、查询、更新、修改等操作,查询功能为共享,录入、更新、修改操作为管理员独享该界面如下:

(1) 录入保存功能的实现如下: Private Sub cmd_save_Click()

On Error GoTo errorhandler '允许错误发生 For i = 0 To 3

If Text1(i) = \"\" Then

MsgBox \"信息输入不完整!\提示信息\" Exit Sub End If Next i

Adodc1.RecordSource = \"select * from 客户信息 where 客户号=\" + Text1(0).Text + \"\" Adodc1.Refresh

If Adodc1.Recordset.RecordCount > 0 Then

MsgBox \"此客户记录已存在!添加不成功。\提示信息\" Exit Sub End If

Adodc1.Recordset.AddNew

Adodc1.Recordset.Fields(\"客户号\") = Text1(0).Text Adodc1.Recordset.Fields(\"姓名\") = Text1(1).Text Adodc1.Recordset.Fields(\"性别\") = Text1(2).Text Adodc1.Recordset.Fields(\"籍贯\") = Text1(3).Text MsgBox \"添加成功!\提示信息\" Adodc1.Recordset.Update Exit Sub

errorhandler: '允许错误发生的错误处理 If Err.Number = -2147217904 Then

MsgBox \"客户号输入错误,请输入长整型\提示信息\" 'Resume Next End If End Sub

(2) 查询功能的实现:

Private Sub cmd_query_Click()

Adodc1.RecordSource = \"select * from 客户信息 where 客户号=\" + Text1(0).Text + \"\" On Error GoTo errorhandler '允许错误发生 If Text1(0).Text = \"\" Then

MsgBox \"请输入客户号!\提示信息\" Exit Sub End If

If IsNumeric(Text1(0).Text) = False Then '避免错误发生 MsgBox \"请在客户号框中输入数字!\提示信息\" Exit Sub End If

Adodc1.Refresh

If Adodc1.Recordset.RecordCount = 0 Then

MsgBox \"无此客户记录!\提示信息\" Exit Sub End If

Text1(1).Text = Adodc1.Recordset.Fields(\"姓名\") Text1(2).Text = Adodc1.Recordset.Fields(\"性别\") Text1(3).Text = Adodc1.Recordset.Fields(\"籍贯\") Exit Sub

errorhandler: '允许错误发生的错误处理 If Err.Number = -2147217904 Then

MsgBox \"客户号输入错误,请输入长整型\提示信息\" Resume Next End If End Sub

(3)更新已有记录的实现:

Private Sub cmd_update_Click()

On Error GoTo errorhandler '允许错误发生

Adodc1.RecordSource = \"select * from 客户信息\" Adodc1.Refresh

If Adodc1.Recordset.RecordCount = 0 Then

MsgBox \"无修改目标\提示信息\" Exit Sub End If

Adodc1.RecordSource = \"select * from 客户信息 where 客户号=\" + Text1(0).Text + \"\"

If Text1(0).Text = \"\" Or Text1(1).Text = \"\" Or Text1(2).Text = \"\" Or Text1(3).Text = \"\" Then MsgBox \"信息输入不完整!\提示信息\" Exit Sub End If

Adodc1.Refresh

Adodc1.Recordset.Fields(\"姓名\") = Text1(1).Text Adodc1.Recordset.Fields(\"性别\") = Text1(2).Text Adodc1.Recordset.Fields(\"籍贯\") = Text1(3).Text Adodc1.Recordset.Update

MsgBox \"修改成功!\提示信息\" Adodc1.Refresh Exit Sub

errorhandler: '允许错误发生的错误处理 If Err.Number = 3021 Then

MsgBox \"客户号不存在,不能更新。\提示信息\" 'resume next Exit Sub End If

If Err.Number = -2147217900 Then

MsgBox \"客户号存在相关记录,不允许更新或删除。\提示信息\" resume next Exit Sub End If

If Err.Number = -2147217904 Then

MsgBox \"客户号输入错误,请输入长整型\提示信息\" 'resume next Exit Sub End If End Sub

(4)删除功能的实现:

Private Sub cmd_delete_Click()

On Error GoTo errorhandler '允许错误发生

Adodc1.RecordSource = \"select * from 客户信息\" If Adodc1.Recordset.RecordCount = 0 Then MsgBox \"无记录\提示信息\" Exit Sub End If

sure = MsgBox(\"确定删除当前纪录吗?\提示信息\") Select Case sure Case vbOK

Adodc1.Recordset.Delete Adodc1.Recordset.Update

MsgBox \"记录已删除。\提示信息\" For i = 0 To 3

Text1(i).Text = \"\" Next i

Case vbCancel Exit Sub End Select Adodc1.Refresh Exit Sub

errorhandler: '允许错误发生的错误处理 'If Err.Number = 91 Then

MsgBox \"在预订或入住信息中有该客户的相关记录,不允许删除。\提示信息\" 'Resume Next 'End If End Sub

6.7登记模块的创建和设计

(一)入住登记:主要完成对前来住宿的客户的信息的登记、入住信息的登记。界面为:

当点击“登记“时会导入客户信息登记窗体,首先登记客户信息:

登记保存的实现代码如下: Private Sub cmd_save_Click() For i = 0 To 3

If Text1(i) = \"\" Then

MsgBox \"信息输入不完整!\提示信息\" Exit Sub End If

If IsNumeric(Text1(0).Text) = False Then '避免错误发生------------- MsgBox \"请在客户号框中输入数字!\提示信息\" Exit Sub

End If '------------------------------------------------------------ Next i

Adodc1.RecordSource = \"select * from 客户信息 where 客户号=\" + Text1(0).Text + \"\" Adodc1.Refresh

If Adodc1.Recordset.RecordCount > 0 Then

MsgBox \"此客户记录已存在!添加不成功。\提示信息\" Exit Sub End If

Adodc1.Recordset.AddNew

Adodc1.Recordset.Fields(\"客户号\") = Text1(0).Text Adodc1.Recordset.Fields(\"姓名\") = Text1(1).Text Adodc1.Recordset.Fields(\"性别\") = Text1(2).Text Adodc1.Recordset.Fields(\"籍贯\") = Text1(3).Text MsgBox \"添加成功!\提示信息\" Adodc1.Recordset.Update cmd_add.Enabled = True cmd_save.Enabled = False End Sub

登记完客户信息后回到入住登记窗体,开始登记入住信息,系统自动将当前日期赋予“入住日期”并“备

注”为未退房。实现代码如下: Private Sub cmd_save_Click() For i = 0 To 1

If Text1(i) = \"\" Then

MsgBox \"信息输入不完整!\提示信息\" Exit Sub End If Next i

If IsNumeric(Text1(0).Text) = False Or IsNumeric(Text1(1).Text) = False Then '避免错误发生-----

MsgBox \"请输入数字!\提示信息\" Exit Sub End If '---------------------------------------------------------------------------------------- cmd_add.Enabled = True

Adodc1.RecordSource = \"select * from 入住记录 where (备注='未退房') and (客户号= \" + Text1(0).Text + \") and (房间号= \" + Text1(1).Text + \")\" Adodc1.Refresh

If Adodc1.Recordset.RecordCount <> 0 Then

MsgBox \"该入住记录已存在,添加不成功。\提示信息\" Exit Sub End If

Adodc2.RecordSource = \"select * from 客户信息 where 客户号=\" + Text1(0).Text + \"\" Adodc2.Refresh

If Adodc2.Recordset.RecordCount = 0 Then

MsgBox \"该客户信息不存在,添加不成功。请先录入客户信息!\提示信息\" Exit Sub End If

Adodc3.RecordSource = \"select * from 客房信息 where 房间号=\" + Text1(1).Text + \"\" Adodc3.Refresh

If Adodc3.Recordset.RecordCount = 0 Then

MsgBox \"该客房信息不存在,添加不成功。\提示信息\" Exit Sub End If

'房间客满的设定

Adodc4.RecordSource = \"select * from 客满房间_cx where 房间号=\" + Text1(1).Text + \"\" Adodc4.Refresh

If Adodc4.Recordset.RecordCount > 0 Then

MsgBox \"该客房已满,添加不成功。请选择其他房间!\提示信息\" Exit Sub End If

Adodc1.RecordSource = \"select * from 入住记录\" Adodc1.Refresh

Adodc1.Recordset.AddNew

Adodc1.Recordset.Fields(\"客户号\") = Text1(0).Text Adodc1.Recordset.Fields(\"房间号\") = Text1(1).Text Adodc1.Recordset.Fields(\"入住日期\") = Text1(2).Text Adodc1.Recordset.Fields(\"备注\") = \"未退房\" MsgBox \"添加成功!\提示信息\" Adodc1.Recordset.Update

Exit Sub End Sub

(二)预订登记:主要完成对前来预订客房的客户的信息的登记、预订信息的登记。界面为:

点击“登记”后也会导入客户信息处理登记窗体,同上。登记完客户信息后回到预订记录窗口,登记预订信息,系统将当前日期自动赋予预订日期。实现代码为: Private Sub cmd_save_Click() For i = 0 To 4

If Text1(i) = \"\" Then

MsgBox \"信息输入不完整!\提示信息\" Exit Sub End If Next i

cmd_add.Enabled = True

If IsNumeric(Text1(0).Text) = False Then '避免错误发生------------------------------------------

MsgBox \"请在客户号中输入数字!\提示信息\" Exit Sub

ElseIf IsNumeric(Text1(1).Text) = False Then MsgBox \"请在房间号中输入数字!\提示信息\" Exit Sub

ElseIf IsDate(Text1(3).Text) = False Then

MsgBox \"请在预订入住日期中输入日期!\提示信息\" Exit Sub

ElseIf IsNumeric(Text1(4).Text) = False Then

MsgBox \"请在预订天数中输入数字!\提示信息\" Exit Sub End If '-----------------------------------------------------------------------------------------

Adodc1.RecordSource = \"select * from 预订记录 where 预订入住日期='\" + Text1(3).Text + \"' and 房间号=\" + Text1(1).Text + \"\"

If Adodc1.Recordset.RecordCount <> 0 Then

MsgBox \"该客房已经被预订,您不能再预订此客房。\提示信息\" Exit Sub

End If '---------------------------------------------------------------

Adodc2.RecordSource = \"select * from 客户信息 where 客户号=\" + Text1(0).Text + \"\" Adodc2.Refresh

If Adodc2.Recordset.RecordCount = 0 Then

MsgBox \"该客户信息不存在,添加不成功。\提示信息\" Exit Sub End If

Adodc3.RecordSource = \"select * from 客房信息 where 房间号=\" + Text1(1).Text + \"\" Adodc3.Refresh

If Adodc3.Recordset.RecordCount = 0 Then

MsgBox \"该客房信息不存在,添加不成功。\提示信息\" Exit Sub End If

Adodc1.Recordset.AddNew

Adodc1.Recordset.Fields(\"客户号\") = Text1(0).Text Adodc1.Recordset.Fields(\"房间号\") = Text1(1).Text Adodc1.Recordset.Fields(\"预订日期\") = Text1(2).Text Adodc1.Recordset.Fields(\"预订入住日期\") = Text1(3).Text Adodc1.Recordset.Fields(\"预订天数\") = Text1(4).Text MsgBox \"添加成功!\提示信息\" Adodc1.Recordset.Update End Sub

7.8结算模块的地创建和设计

该窗体主要完成对客户退房信息的录入、结算帐款、注销房间等。其界面如下:

输入客户号后,点击“输入”后会在上方表格中检索出该客户的入住记录。点击“结算”后,系统自动将当前日期赋予结算日期,并以此来计算费用。确定退房后会导出客户入住详细信息,如下:

结算功能的实现的主要代码如下: Private Sub cmd_jiesuan_Click()

On Error GoTo errorhandler '允许错误发生 Adodc1.Refresh

Adodc1.Recordset.Fields(\"结算日期\") = Date Adodc1.Recordset.Fields(\"备注\") = \"已退房\"

Adodc1.Recordset.Update

MsgBox \"结算成功!\提示信息\" cmd_jiesuan.Enabled = False

Adodc2.RecordSource = \"select * from 历史记录_cx3 where (客户号=\" + Text1.Text + \") \" Adodc2.Refresh

DataGrid1.Visible = False '------------ For i = 0 To 3

Command7(i).Visible = False Next i

Command8.Visible = True Frame1.Visible = False

DataGrid2.Visible = True '-------------- Exit Sub

errorhandler: '允许错误发生的错误处理 If Err.Number = -2147217904 Then

MsgBox \"客户号输入错误,请输入长整型\提示信息\" Resume Next Exit Sub End If End Sub

6.9查询模块的创建和设计

查询窗体的类型可见下面的菜单图:

由于查询窗体众多,其中客房类型查询、客房基本信息查询、客户信息查询在前面已经涉及到了,在此不在重复,入住记录查询和预订记录查询又非常相似,所以这里只阐述空房查询未满客房查询、历史记录查询。

(一)空房查询:在客户入住前提供给客户空客房的信息,供客户选择。界面如下:

在组合框中列出了可供查询的条件,客户可以通过下来按钮来选择自己的要求,查询适合自己需要的空房间。实现该功能的主要代码如下: Private Sub Form_Load() Combo1.AddItem (\"房间号\") Combo1.AddItem (\"类型\") Combo1.AddItem (\"额定人数\") Combo1.ListIndex = 0 Combo2.AddItem (\"=\") Combo2.AddItem (\">\") Combo2.AddItem (\"<\") Combo2.AddItem (\">=\") Combo2.AddItem (\"<=\") Combo2.AddItem (\"<>\") Combo2.ListIndex = 0 End Sub

Private Sub cmd_query_Click() If Text1.Text = \"\" Then

MsgBox \"请输入关键字!\提示信息\" Text1.SetFocus Exit Sub End If

If IsNumeric(Text1.Text) = False And (Combo1.Text = \"房间号\" Or Combo1.Text = \"额定人数\") Then '避免错误发生

MsgBox \"请输入数字!\提示信息\" Exit Sub End If

If Combo1.Text = \"房间号\" Or Combo1.Text = \"额定人数\" Then

Adodc1.RecordSource = \"select * from 空房_cx where \" & Combo1.Text & \"\" & Combo2.Text & \"\" + Text1.Text + \"\"

Else

Adodc1.RecordSource = \"select * from 空房_cx where \" & Combo1.Text & \"\" & Combo2.Text & \"'\" + Text1.Text + \"'\" End If

Adodc1.Refresh

If Adodc1.Recordset.RecordCount = 0 Then

MsgBox \"此记录不存在!\提示信息\" Exit Sub End If End Sub

检索出符合客户要求的房间后,点击“入住”导入入住登记窗口,登记入住记录。

(二)未满客房查询:这主要是检索多人合住的客房的入住情况,如双人间、三人间等,找出未住满的房间,合理安排其他客户入住。界面如下:

在组合框中列出了可供查询的条件,根据客户的需求情况选择合适的查询条件,检索出可入住的合住房间。同样,点击“入住”后导入入住登记窗口,进行登记。该查询的实现的主要代码如下: Private Sub cmd_query_Click() If Text1.Text = \"\" Then

MsgBox \"请输入关键字!\提示信息\" Text1.SetFocus Exit Sub End If

If IsNumeric(Text1.Text) = False And (Combo1.Text = \"房间号\" Or Combo1.Text = \"额定人数\" Or Combo1.Text = \"在住人数\") Then '避免错误发生 MsgBox \"请输入数字!\提示信息\" Exit Sub End If

If Combo1.Text = \"房间号\" Or Combo1.Text = \"额定人数\" Or Combo1.Text = \"在住人数\" Then Adodc1.RecordSource = \"select * from 未满非空房间_cx2 where \" & Combo1.Text & \"\" & Combo2.Text & \"\" + Text1.Text + \"\" Else

Adodc1.RecordSource = \"select * from 未满非空房间_cx2 where \" & Combo1.Text & \"\" & Combo2.Text & \"'\" + Text1.Text + \"'\" End If

Adodc1.Refresh

If Adodc1.Recordset.RecordCount = 0 Then

MsgBox \"此记录不存在!\提示信息\" Exit Sub End If End Sub

(三)历史纪录查询:查询以往客户的入住信息、结算信息等。界面如下:

该查询的实现的主要代码如下: Private Sub Command1_Click()

On Error GoTo errorhandler '允许错误发生 If Text1.Text = \"\" Then

MsgBox \"请输入关键字!\提示信息\" Text1.SetFocus Exit Sub End If

If IsNumeric(Text1.Text) = False And (Combo1.Text = \"房间号\" Or Combo1.Text = \"客户号\" Or Combo1.Text = \"价格\" Or Combo1.Text = \"入住天数\" Or Combo1.Text = \"结算金额\") Then '避免错误发生

MsgBox \"请输入数字!\提示信息\" Exit Sub

ElseIf IsDate(Text1.Text) = False And (Combo1.Text = \"入住日期\" Or Combo1.Text = \"结算日期\") Then

MsgBox \"请输入日期!\提示信息\" Exit Sub End If

If Combo1.Text = \"客户号\" Or Combo1.Text = \"房间号\" Or Combo1.Text = \"结算金额\" Or

Combo1.Text = \"入住日期\" Or Combo1.Text = \"入住天数\" Or Combo1.Text = \"结算日期\" Then Adodc1.RecordSource = \"select * from 历史记录_cx3 where \" & Combo1.Text & \"\" & Combo2.Text & \"\" + Text1.Text + \"\" Else

Adodc1.RecordSource = \"select * from 历史记录_cx3 where \" & Combo1.Text & \"\" & Combo2.Text & \"'\" + Text1.Text + \"'\" End If

Adodc1.Refresh

If Adodc1.Recordset.RecordCount = 0 Then

MsgBox \"此记录不存在!\提示信息\" Exit Sub End If Exit Sub

errorhandler: '允许错误发生的错误处理 If Err.Number = -2147217904 Then

MsgBox \"输入数据类型错误,请输入长整型\提示信息\" Resume Next End If End Sub

Private Sub Command3_Click() Unload Me End Sub

Private Sub Form_Load() Combo1.AddItem (\"客户号\") Combo1.AddItem (\" 姓名\") Combo1.AddItem (\" 类型\") Combo1.AddItem (\"房间号\") Combo1.AddItem (\"入住日期\") Combo1.AddItem (\"结算日期\") Combo1.AddItem (\" 结算金额\") Combo1.AddItem (\" 入住天数\") Combo1.ListIndex = 0 Combo2.AddItem (\"=\") Combo2.AddItem (\">\") Combo2.AddItem (\"<\") Combo2.AddItem (\">=\") Combo2.AddItem (\"<=\") Combo2.AddItem (\"<>\") Combo2.ListIndex = 0 End Sub

第七章 开发设计总结

7.1 工作总结

本课题针对宾馆服务发展的新要求,根据管理软件体系结构发展的新模式,面对中小型宾馆的实际需求,研究并开发了基于C/S结构的宾馆住宿管理信息系统。论文首先介绍了课题研究的背景、意义、及相关课题的基本情况和基本思路。其次,对系统开发中所用相关技术进行分析,包括C/S, B/S结构。再次,

介绍了宾馆信息管理系统的需求分析及各个功能模块分析,并详细阐述了系统的开发任务及要求。最后,介绍了系统的概要设计与实现,包括子系统的设计与实现和数据库的设计与实现。统管理三个子系统通过现场调试运行,能够满足该部分系统的基本需求。 7.2 展望

宾馆应用计算机作为信息管理的技术手段和工具,已有几十年的历史,尽管经历了从单机运行到网络化的发展阶段,从管理内容上也走过了从单一管理到综合管理的艰难过程,今天的宾馆信息管理已经初步形成了以国家金卫工程为指导的信息管理模式,促进了宾馆管理向现代化方向发展。更进一步的发展趋势是从宾馆信息的管理方面向集团系统发展:提供面向员工和顾客的服务。我相信,随着计算机技术的迅猛发展,宾馆信息管理前景将更加辉煌和灿烂。计算机应用于宾馆服务领域进行信息化的工作,需要很多学科的知识作为基础。在国内,这是一个很多工作仍有待深入研究的课题。虽然本文就宾馆住宿信息系统的研究与开发做了大量的工作,但本文和该信息系统仍有很多需要改进和扩展的地方。而且,由于本人水平和学识有限,缺点和问题在所难免,衷心希望各位老师给予批评指正。 参考文献

[1] 刘於勛,邢文凯。Visual Basic 程序设计。北京:北京理工大学出版社,2006。 [2] 王春才,高春艳,李俊民。Visual Basic 数据库系统开发完全手册。北京:人民邮电出版社,2006。 [3] 王珊,陈红。数据库系统原理教程。北京:清华大学出版社,1998。

[4] 郭亮,刘彦斌。如何使用Access 2000中文版。北京:机械工业出版社,1999。 [5] 张海藩.软件工程导论。北京:清华大学出版社出版,2000。

[6] 刘韬,骆娟编著.Visual Basic6.0数据库系统开发实例导航.北京:人民邮电出版社,2002. [7] 黄梯云,张玉红。管理信息系统。北京:高等教育出版社,2002。 [8〕李东。管理信息系统的理论与应用。北京:北京大学山版社,2002。 附录:程序代码

1 登陆窗体

Private Sub cmd_denglu_Click() If Text1.Text = \"\" Then

MsgBox \"请输入用户名。\宾馆管理系统\" Exit Sub

ElseIf Text2.Text = \"\" Then

MsgBox \"请输入密码。\宾馆管理系统\" Exit Sub End If

Adodc1.RecordSource = \"select * from 系统用户 where (用户名='\" + Text1.Text + \"' and 密码='\" + Text2.Text + \"')\" Adodc1.Refresh

If Adodc1.Recordset.RecordCount = 0 Then

MsgBox \"您输入的用户名、密码有错误,请重新输入。\宾馆管理系统\" Text1.Text = \"\" Text2.Text = \"\" Text1.SetFocus Exit Sub

ElseIf Text1.Text = \"wgc\" And Text2.Text = \"111111\" Then Load frm_main frm_main.Show 0 Text2.Text = \"\" frm_denglu.Hide Else

Load frm_main2 frm_main2.Show 0 Text2.Text = \"\" frm_denglu.Hide End If End Sub

Private Sub cmd_quit_Click() End End Sub

Private Sub cmd_zhuce_Click() Load frm_zhuce frm_zhuce.Show End Sub

2 管理员主窗体

Private Sub Form_Load()

Label1.Left = (Screen.Width - Label1.Width) / 2 Label2.Left = (Screen.Width - Label2.Width) / 2 End Sub

Private Sub jbxx_Click() Load frm_roomquery frm_roomquery.Show 0 End Sub

Private Sub js_Click() Load frm_jiesuan frm_jiesuan.Show 0 End Sub

Private Sub kflx_Click() Load frm_kfleixing frm_kfleixing.Show 0 End Sub

Private Sub kflx1_Click() Load frm_typequery frm_typequery.Show 0 End Sub

Private Sub kfxx_Click() Load frm_kfxinxi frm_kfxinxi.Show 0 End Sub

Private Sub khgl_Click() Load frm_kehuxinxi frm_kehuxinxi.Show 0 End Sub

Private Sub khxx_Click() Load frm_customerquery frm_customerquery.Show 0

End Sub

Private Sub lsjl_Click() Load frm_checkquery frm_checkquery.Show 0 End Sub

Private Sub rzdj_Click() Load frm_ruzhudengji frm_ruzhudengji.Show 0 End Sub

Private Sub tcxt_Click()

sure = MsgBox(\"确定要退出系统吗?\提示信息\") If sure = vbOK Then End Else End If End Sub

Private Sub xgmm_Click() Load frm_updatecode frm_updatecode.Show 0 End Sub

Private Sub xxxx_Click() Load frm_roomque_detail frm_roomque_detail.Show 0 End Sub

Private Sub yddj_Click() Load frm_yudingdengji frm_yudingdengji.Show 0 End Sub

Private Sub ydjl_Click() Load frm_bookquery frm_bookquery.Show 0 End Sub

Private Sub yhgl_Click() Load frm_deleteuser frm_deleteuser.Show 0 End Sub

Private Sub yhzc_Click() Load frm_zhuce frm_zhuce.Show 0 End Sub

Private Sub zzjl_Click() Load frm_bookque_zaizhu frm_bookque_zaizhu.Show 0 End Sub

Private Sub wm_Click() Load frm_weiman frm_weiman.Show 0 End Sub

Private Sub km_Click() Load frm_keman frm_keman.Show 0

End Sub

Private Sub kf_Click() Load frm_kongfang frm_kongfang.Show 0 End Sub

3 普通账户登陆主窗体 Private Sub Form_Load()

Label1.Left = (Screen.Width - Label1.Width) / 2 Label2.Left = (Screen.Width - Label2.Width) / 2 End Sub

Private Sub jbxx_Click() Load frm_roomquery frm_roomquery.Show 0 End Sub

Private Sub js_Click() Load frm_jiesuan frm_jiesuan.Show 0 End Sub

Private Sub kf_Click() Load frm_kongfang frm_kongfang.Show 0 End Sub

Private Sub kflx_Click() Load frm_typequery frm_typequery.Show 0 End Sub

Private Sub khxx_Click() Load frm_customerquery frm_customerquery.Show 0 End Sub

Private Sub km_Click() Load frm_keman frm_keman.Show 0 End Sub

Private Sub lsjl_Click() Load frm_checkquery frm_checkquery.Show 0 End Sub

Private Sub rzdj_Click() Load frm_ruzhudengji frm_ruzhudengji.Show 0 End Sub

Private Sub tc_Click()

sure = MsgBox(\"确定要退出系统吗?\提示信息\") If sure = vbOK Then End Else End If End Sub

'Private Sub Toolbar1_ButtonClick(ByVal Button As MSComctlLib.Button) 'Select Case Button.Key

'Case Is = \"cx\"

'frm_roomque_detail.Show 0 'Case Is = \"dj\"

'frm_ruzhudengji.Show 0 'Case Is = \"ls\"

'frm_checkquery.Show 0 'Case Is = \"js\"

'frm_jiesuan.Show 0 'End Select 'End Sub

Private Sub wm_Click() Load frm_weiman frm_weiman.Show 0 End Sub

Private Sub xgmm_Click() Load frm_updatecode frm_updatecode.Show 0 End Sub

Private Sub xxxx_Click() Load frm_roomque_detail frm_roomque_detail.Show 0 End Sub

Private Sub yddj_Click() Load frm_yudingdengji frm_yudingdengji.Show 0 End Sub

Private Sub ydjl_Click() Load frm_bookquery frm_bookquery.Show 0 End Sub

Private Sub yhzc_Click() Load frm_zhuce frm_zhuce.Show 0 End Sub

Private Sub zzjl_Click() Load frm_bookque_zaizhu frm_bookque_zaizhu.Show 0 End Sub

4用户注册窗体

Private Sub cmd_cancel_Click() Text1.Text = \"\" Text2.Text = \"\" Text3.Text = \"\" Text1.SetFocus End Sub

Private Sub cmd_exit_Click() Unload Me End Sub

Private Sub cmd_ok_Click()

Adodc1.RecordSource = \"select * from 系统用户 where 用户名='\" + Text1.Text + \"'\" Adodc1.Refresh

If Adodc1.Recordset.RecordCount > 0 Then

MsgBox \"该用户名已存在,请更改后重新注册。\提示信息\" Exit Sub End If

If Text1.Text = \"\" Or Text2.Text = \"\" Or Text3.Text = \"\" Then MsgBox \"输入不完整\提示信息\" ElseIf Text2.Text <> Text3.Text Then

MsgBox \"两次输入的密码不一致,请确认后重新输入!\宾馆管理系统\" Text2.Text = \"\" Text3.Text = \"\" Text2.SetFocus Else

Adodc1.Recordset.AddNew

Adodc1.Recordset.Fields(\"用户名\") = Text1.Text Adodc1.Recordset.Fields(\"密码\") = Text2.Text MsgBox \"注册成功!\提示信息\" Adodc1.Recordset.Update frm_zhuce.Hide End If End Sub

5 修改密码窗体

Private Sub cmd_cancel_Click() Text1.Text = \"\" Text2.Text = \"\" Text3.Text = \"\" Text1.SetFocus End Sub

Private Sub cmd_exit_Click() Unload Me End Sub

Private Sub cmd_ok_Click()

Adodc1.RecordSource = \"select * from 系统用户 where 用户名='\" + Text1.Text + \"'\" Adodc1.Refresh

If Text1.Text = \"\" Or Text2.Text = \"\" Or Text3.Text = \"\" Then MsgBox \"输入不完整。\提示信息\"

ElseIf Adodc1.Recordset.RecordCount = 0 Then MsgBox \"该用户名不存在。\提示信息\"

ElseIf Adodc1.Recordset.Fields(\"密码\") <> Text2.Text Then

MsgBox \"您输入的旧密码错误,请确认后重新输入。\提示信息\" Text1.Text = \"\" Text2.Text = \"\" Text3.Text = \"\" Text1.SetFocus Else

Adodc1.Recordset.Fields(\"密码\") = Text3.Text Adodc1.Recordset.Update

MsgBox \"修改成功\提示信息\" frm_updatecode.Hide End If End Sub

6 用户管理窗体

Private Sub cmd_delete_Click()

On Error GoTo errorhandler '允许错误发生

Adodc1.RecordSource = \"select * from 系统用户\" If Adodc1.Recordset.RecordCount = 0 Then

MsgBox \"请选择要删除的用户\提示信息\" Exit Sub End If

sure = MsgBox(\"确定删除当前纪录吗?\提示信息\") Select Case sure Case vbOK

Adodc1.Recordset.Delete Adodc1.Recordset.Update

MsgBox \"用户已删除。\提示信息\" Case vbCancel Exit Sub End Select Adodc1.Refresh Exit Sub

errorhandler: '允许错误发生的错误处理

MsgBox \"系统中没有用户 。\提示信息\" 'Resume Next 'End If End Sub

Private Sub cmd_exit_Click() Unload Me End Sub

Private Sub cmd_query_Click()

Adodc1.RecordSource = \"select * from 系统用户 where 用户名='\" + Text1.Text + \"'\" Adodc1.Refresh

If Text1.Text = \"\" Then

MsgBox \"请输入用户名!\提示信息\" Exit Sub End If

If Adodc1.Recordset.RecordCount = 0 Then MsgBox \"无此用户!\提示信息\" Exit Sub End If End Sub

Private Sub cmd_update_Click()

Adodc1.RecordSource = \"select * from 系统用户\" Adodc1.Refresh End Sub

7 客房类型管理窗体

Private Sub cmd_add_Click() For i = 0 To 8

Text1(i).Text = \"\" Next i

Text1(0).SetFocus

cmd_save.Enabled = True End Sub

Private Sub cmd_delete_Click()

On Error GoTo errorhandler '允许错误发生

Adodc1.RecordSource = \"select * from 客房类型\" If Adodc1.Recordset.RecordCount = 0 Then MsgBox \"无记录\提示信息\" Exit Sub End If

sure = MsgBox(\"确定删除当前纪录吗?\提示信息\") Select Case sure Case vbOK

Adodc1.Recordset.Delete Adodc1.Recordset.Update

MsgBox \"记录已删除。\提示信息\" For i = 0 To 8

Text1(i).Text = \"\" Next i

Case vbCancel Exit Sub End Select Adodc1.Refresh Exit Sub

errorhandler: '允许错误发生的错误处理

MsgBox \"客房信息中含有该相关记录,不允许删除!\提示信息\" ' Resume Next End Sub

Private Sub cmd_exit_Click() Unload Me End Sub

Private Sub cmd_query_Click()

On Error GoTo errorhandler '允许错误发生 Text1(0).SetFocus

Adodc1.RecordSource = \"select * from 客房类型 where 类型='\" + Text1(0).Text + \"'\" If Text1(0).Text = \"\" Then

MsgBox \"请输入客房类型!\提示信息\" Exit Sub End If

Adodc1.Refresh

If Adodc1.Recordset.RecordCount = 0 Then

MsgBox \"无此类型记录!\提示信息\" Exit Sub End If

Text1(1).Text = Adodc1.Recordset.Fields(\"面积\") Text1(2).Text = Adodc1.Recordset.Fields(\"价格\") Text1(3).Text = Adodc1.Recordset.Fields(\"额定床位\") Text1(4).Text = Adodc1.Recordset.Fields(\"额定人数\") Text1(5).Text = Adodc1.Recordset.Fields(\"是否有电视\") Text1(6).Text = Adodc1.Recordset.Fields(\"是否有电话\") Text1(7).Text = Adodc1.Recordset.Fields(\"是否有空调\") Text1(8).Text = Adodc1.Recordset.Fields(\"是否有卫生间\") Exit Sub

errorhandler: '允许错误发生的错误处理

MsgBox \"输入数据的类型匹配错误,请重新输入。\"

'Resume Next End Sub

Private Sub cmd_save_Click()

On Error GoTo errorhandler '允许错误发生 For i = 0 To 8

If Text1(i) = \"\" Then

MsgBox \"信息输入不完整!\提示信息\" Exit Sub End If Next i

Adodc1.RecordSource = \"select * from 客房类型 where 类型='\" + Text1(0).Text + \"'\" Adodc1.Refresh

If Adodc1.Recordset.RecordCount > 0 Then

MsgBox \"此类型记录已存在!添加不成功\提示信息\" Exit Sub End If

Adodc1.Recordset.AddNew

Adodc1.Recordset.Fields(\"类型\") = Text1(0).Text Adodc1.Recordset.Fields(\"面积\") = Text1(1).Text Adodc1.Recordset.Fields(\"价格\") = Text1(2).Text Adodc1.Recordset.Fields(\"额定床位\") = Text1(3).Text Adodc1.Recordset.Fields(\"额定人数\") = Text1(4).Text Adodc1.Recordset.Fields(\"是否有电视\") = Text1(5).Text Adodc1.Recordset.Fields(\"是否有电话\") = Text1(6).Text Adodc1.Recordset.Fields(\"是否有空调\") = Text1(7).Text Adodc1.Recordset.Fields(\"是否有卫生间\") = Text1(8).Text MsgBox \"添加成功!\提示信息\" Adodc1.Recordset.Update Exit Sub

errorhandler: '允许错误发生的错误处理

MsgBox \"输入数据的类型匹配错误,请重新输入。\" 'Resume Next End Sub

Private Sub cmd_update_Click()

On Error GoTo errorhandler '允许错误发生

Adodc1.RecordSource = \"select * from 客房类型\" If Adodc1.Recordset.RecordCount = 0 Then

MsgBox \"无修改目标\提示信息\" Exit Sub End If

Adodc1.RecordSource = \"select * from 客房类型 where 类型='\" + Text1(0).Text + \"'\"

If Text1(0).Text = \"\" Or Text1(1).Text = \"\" Or Text1(2).Text = \"\" Or Text1(3).Text = \"\" Or Text1(4).Text = \"\" Or Text1(5).Text = \"\" Or Text1(6).Text = \"\" Or Text1(7).Text = \"\" Or Text1(8).Text = \"\" Then

MsgBox \"信息输入不完整!\提示信息\" Exit Sub End If

Adodc1.Refresh

Adodc1.Recordset.Fields(\"类型\") = Text1(0).Text Adodc1.Recordset.Fields(\"面积\") = Text1(1).Text Adodc1.Recordset.Fields(\"价格\") = Text1(2).Text

Adodc1.Recordset.Fields(\"额定床位\") = Text1(3).Text Adodc1.Recordset.Fields(\"额定人数\") = Text1(4).Text Adodc1.Recordset.Fields(\"是否有电视\") = Text1(5).Text Adodc1.Recordset.Fields(\"是否有电话\") = Text1(6).Text Adodc1.Recordset.Fields(\"是否有空调\") = Text1(7).Text Adodc1.Recordset.Fields(\"是否有卫生间\") = Text1(8).Text Adodc1.Recordset.Update

MsgBox \"修改成功!\提示信息\" Adodc1.Refresh Exit Sub

errorhandler: '允许错误发生的错误处理 MsgBox \"类型匹配错误,请重新输入。\" 'resume next End Sub

Private Sub Form_Load()

Label1.Left = (Screen.Width - Label1.Width) / 2 Label1.Top = 900

DataGrid1.Left = (Screen.Width - DataGrid1.Width) / 2 DataGrid1.Top = 2000 cmd_save.Enabled = False End Sub

Private Sub Command7_Click(Index As Integer) On Error GoTo errorhandler '允许错误发生 Select Case Index Case 0

Adodc1.Recordset.MoveFirst Case 1

Adodc1.Recordset.MovePrevious If Adodc1.Recordset.BOF Then

MsgBox \"第一条记录!\提示信息\" Adodc1.Recordset.MoveFirst End If Case 2

Adodc1.Recordset.MoveNext If Adodc1.Recordset.EOF Then

MsgBox \"最后一条记录!\提示信息\" Adodc1.Recordset.MoveLast End If Case 3

Adodc1.Recordset.MoveLast End Select Exit Sub

errorhandler: '允许错误发生的错误处理 MsgBox \"请刷新后重试!\提示信息\" 'Resume Next End Sub

Private Sub Command8_Click()

Adodc1.RecordSource = \"select * from 客房类型\" Adodc1.Refresh End Sub

8 客房信息管理窗体

Private Sub cmd_add_Click() For i = 0 To 2

Text1(i).Text = \"\" Next i

Text1(0).SetFocus End Sub

Private Sub cmd_delete_Click()

On Error GoTo errorhandler '允许错误发生

Adodc1.RecordSource = \"select * from 客房信息\" If Adodc1.Recordset.RecordCount = 0 Then MsgBox \"无记录\提示信息\" Exit Sub End If

sure = MsgBox(\"确定删除当前纪录吗?\提示信息\") Select Case sure Case vbOK

Adodc1.Recordset.Delete Adodc1.Recordset.Update

MsgBox \"记录已删除。\提示信息\" For i = 0 To 2

Text1(i).Text = \"\" Next i

Case vbCancel Exit Sub End Select Adodc1.Refresh Exit Sub

errorhandler: '允许错误发生的错误处理 'If Err.Number = 91 Then

MsgBox \"入住或预订信息中含有该相关记录,不允许删除。\提示信息\" 'Resume Next 'End If End Sub

Private Sub cmd_exit_Click() Unload Me End Sub

Private Sub cmd_query_Click()

On Error GoTo errorhandler '允许错误发生

Adodc1.RecordSource = \"select * from 客房信息 where 房间号=\" + Text1(0).Text + \"\" If Text1(0).Text = \"\" Then

MsgBox \"请输入房间号!\提示信息\" Exit Sub End If

If IsNumeric(Text1(0).Text) = False Then '避免错误发生 MsgBox \"请输入数字!\提示信息\" Exit Sub End If

Adodc1.Refresh

If Adodc1.Recordset.RecordCount = 0 Then

MsgBox \"无此房间记录!\提示信息\" Exit Sub

End If

Text1(1).Text = Adodc1.Recordset.Fields(\"类型\") Text1(2).Text = Adodc1.Recordset.Fields(\"楼层\") Exit Sub

errorhandler: '允许错误发生的错误处理 If Err.Number = -2147217904 Then

MsgBox \"房间号输入错误,请输入长整型\提示信息\" 'Resume Next End If End Sub

Private Sub cmd_update_Click()

On Error GoTo errorhandler '允许错误发生

Adodc1.RecordSource = \"select * from 客房信息\" Adodc1.Refresh

If Adodc1.Recordset.RecordCount = 0 Then

MsgBox \"无修改目标\提示信息\" Exit Sub End If

Adodc1.RecordSource = \"select * from 客房信息 where 房间号=\" + Text1(0).Text + \"\" If Text1(0).Text = \"\" Or Text1(1).Text = \"\" Or Text1(2).Text = \"\" Then MsgBox \"信息输入不完整!\提示信息\" Exit Sub End If

Adodc1.Refresh

Adodc1.Recordset.Fields(\"类型\") = Text1(1).Text Adodc1.Recordset.Fields(\"楼层\") = Text1(2).Text Adodc1.Recordset.Update

MsgBox \"修改成功!\提示信息\" Adodc1.Refresh Exit Sub

errorhandler: '允许错误发生的错误处理 If Err.Number = 3021 Then

MsgBox \"该房间记录不存在,修改不成功。\提示信息\" 'Resume Next Exit Sub End If

If Err.Number = -2147217900 Then

MsgBox \"房间号存在相关记录,不允许更新或删除。\提示信息\" 'Resume Next Exit Sub End If

If Err.Number = -2147217904 Then

MsgBox \"房间号输入错误,请输入长整型\提示信息\" 'Resume Next Exit Sub End If

If Err.Number = -2147467259 Then

MsgBox \"无此类型,修改不成功。\提示信息\" 'Resume Next Exit Sub End If

If Err.Number = -2147217887 Then

MsgBox \"楼层输入错误,请输入长整型\提示信息\" 'Resume Next Exit Sub End If End Sub

Private Sub cmd_save_Click()

On Error GoTo errorhandler '允许错误发生 For i = 0 To 2

If Text1(i) = \"\" Then

MsgBox \"信息输入不完整!\提示信息\" Exit Sub End If Next i

If IsNumeric(Text1(0).Text) = False Then '避免错误发生 MsgBox \"请在房间号中输入数字!\提示信息\" Exit Sub

ElseIf IsNumeric(Text1(2).Text) = False Then MsgBox \"请在楼层中输入数字!\提示信息\" Exit Sub End If

Adodc1.RecordSource = \"select * from 客房信息 where 房间号=\" + Text1(0).Text + \"\" Adodc1.Refresh

If Adodc1.Recordset.RecordCount > 0 Then

MsgBox \"此房间记录已存在!\提示信息\" Exit Sub End If

Adodc1.Recordset.AddNew

Adodc1.Recordset.Fields(\"房间号\") = Text1(0).Text Adodc1.Recordset.Fields(\"类型\") = Text1(1).Text Adodc1.Recordset.Fields(\"楼层\") = Text1(2).Text MsgBox \"添加成功!\提示信息\" Adodc1.Recordset.Update Exit Sub Exit Sub

errorhandler: '允许错误发生的错误处理 'If Err.Number = -2147217904 Then

' MsgBox \"房间号输入错误,请输入长整型\提示信息\"---- 'Resume Next 'Exit Sub ' End If

If Err.Number = -2147467259 Then

MsgBox \"无此类型,添加不成功。\提示信息\" 'Resume Next Exit Sub End If

'If Err.Number = -2147217887 Then

'MsgBox \"楼层输入错误,请输入长整型\提示信息\"---- 'Resume Next 'Exit Sub 'End If

End Sub

Private Sub Command7_Click(Index As Integer) On Error GoTo errorhandler '允许错误发生

Adodc1.RecordSource = \"select * from 客房信息\" Adodc1.Refresh Select Case Index Case 0

Adodc1.Recordset.MoveFirst Case 1

Adodc1.Recordset.MovePrevious If Adodc1.Recordset.BOF Then

MsgBox \"第一条记录!\提示信息\" Adodc1.Recordset.MoveFirst End If Case 2

Adodc1.Recordset.MoveNext If Adodc1.Recordset.EOF Then

MsgBox \"最后一条记录!\提示信息\" Adodc1.Recordset.MoveLast End If Case 3

Adodc1.Recordset.MoveLast End Select Exit Sub

errorhandler: '允许错误发生的错误处理

Adodc1.RecordSource = \"select * from 客房信息\" Adodc1.Refresh

MsgBox \"刚刷新!请重试。\提示信息\" Resume Next End Sub

Private Sub Command8_Click()

Adodc1.RecordSource = \"select * from 客房信息\" Adodc1.Refresh End Sub

Private Sub Form_Load() Label5.Top = 900

DataGrid1.Left = (Screen.Width - DataGrid1.Width) / 2 DataGrid1.Top = 2000 End Sub

9 客户管理窗体

Private Sub cmd_add_Click() For i = 0 To 3

Text1(i).Text = \"\" Next i

Text1(0).SetFocus End Sub

Private Sub cmd_delete_Click()

On Error GoTo errorhandler '允许错误发生

Adodc1.RecordSource = \"select * from 客户信息\" If Adodc1.Recordset.RecordCount = 0 Then MsgBox \"无记录\提示信息\"

Exit Sub End If

sure = MsgBox(\"确定删除当前纪录吗?\提示信息\") Select Case sure Case vbOK

Adodc1.Recordset.Delete Adodc1.Recordset.Update

MsgBox \"记录已删除。\提示信息\" For i = 0 To 3

Text1(i).Text = \"\" Next i

Case vbCancel Exit Sub End Select Adodc1.Refresh Exit Sub

errorhandler: '允许错误发生的错误处理 'If Err.Number = 91 Then

MsgBox \"在预订或入住信息中有该客户的相关记录,不允许删除。\提示信息\" 'Resume Next 'End If End Sub

Private Sub cmd_exit_Click() Unload Me End Sub

Private Sub cmd_query_Click()

Adodc1.RecordSource = \"select * from 客户信息 where 客户号=\" + Text1(0).Text + \"\" On Error GoTo errorhandler '允许错误发生 If Text1(0).Text = \"\" Then

MsgBox \"请输入客户号!\提示信息\" Exit Sub End If

If IsNumeric(Text1(0).Text) = False Then '避免错误发生 MsgBox \"请在客户号框中输入数字!\提示信息\" Exit Sub End If

Adodc1.Refresh

If Adodc1.Recordset.RecordCount = 0 Then

MsgBox \"无此客户记录!\提示信息\" Exit Sub End If

Text1(1).Text = Adodc1.Recordset.Fields(\"姓名\") Text1(2).Text = Adodc1.Recordset.Fields(\"性别\") Text1(3).Text = Adodc1.Recordset.Fields(\"籍贯\") Exit Sub

errorhandler: '允许错误发生的错误处理 If Err.Number = -2147217904 Then

MsgBox \"客户号输入错误,请输入长整型\提示信息\" Resume Next End If End Sub

Private Sub cmd_update_Click()

On Error GoTo errorhandler '允许错误发生

If IsNumeric(Text1(0).Text) = False Then '避免错误发生 MsgBox \"请在客户号框中输入数字!\提示信息\" Exit Sub End If

Adodc1.RecordSource = \"select * from 客户信息\" Adodc1.Refresh

If Adodc1.Recordset.RecordCount = 0 Then

MsgBox \"无修改目标\提示信息\" Exit Sub End If

Adodc1.RecordSource = \"select * from 客户信息 where 客户号=\" + Text1(0).Text + \"\"

If Text1(0).Text = \"\" Or Text1(1).Text = \"\" Or Text1(2).Text = \"\" Or Text1(3).Text = \"\" Then MsgBox \"信息输入不完整!\提示信息\" Exit Sub End If

Adodc1.Refresh

Adodc1.Recordset.Fields(\"姓名\") = Text1(1).Text Adodc1.Recordset.Fields(\"性别\") = Text1(2).Text Adodc1.Recordset.Fields(\"籍贯\") = Text1(3).Text Adodc1.Recordset.Update

MsgBox \"修改成功!\提示信息\" Adodc1.Refresh Exit Sub

errorhandler: '允许错误发生的错误处理 If Err.Number = 3021 Then

MsgBox \"客户号不存在,不能更新。\提示信息\" 'resume next Exit Sub End If

'If Err.Number = -2147217900 Then

'MsgBox \"客户号存在相关记录,不允许更新或删除。\提示信息\" 'resume next 'Exit Sub 'End If

If Err.Number = -2147217904 Then

MsgBox \"客户号输入错误,请输入长整型\提示信息\" 'resume next Exit Sub End If End Sub

Private Sub cmd_save_Click()

On Error GoTo errorhandler '允许错误发生 For i = 0 To 3

If Text1(i) = \"\" Then

MsgBox \"信息输入不完整!\提示信息\" Exit Sub End If Next i

If IsNumeric(Text1(0).Text) = False Then '避免错误发生

MsgBox \"请在客户号框中输入数字!\提示信息\" Exit Sub End If

Adodc1.RecordSource = \"select * from 客户信息 where 客户号=\" + Text1(0).Text + \"\" Adodc1.Refresh

If Adodc1.Recordset.RecordCount > 0 Then

MsgBox \"此客户记录已存在!添加不成功。\提示信息\" Exit Sub End If

Adodc1.Recordset.AddNew

Adodc1.Recordset.Fields(\"客户号\") = Text1(0).Text Adodc1.Recordset.Fields(\"姓名\") = Text1(1).Text Adodc1.Recordset.Fields(\"性别\") = Text1(2).Text Adodc1.Recordset.Fields(\"籍贯\") = Text1(3).Text MsgBox \"添加成功!\提示信息\" Adodc1.Recordset.Update Exit Sub

errorhandler: '允许错误发生的错误处理 If Err.Number = -2147217904 Then

MsgBox \"客户号输入错误,请输入长整型\提示信息\" 'Resume Next End If End Sub

Private Sub Command7_Click(Index As Integer) On Error GoTo errorhandler '允许错误发生 Select Case Index Case 0

Adodc1.Recordset.MoveFirst Case 1

Adodc1.Recordset.MovePrevious If Adodc1.Recordset.BOF Then

MsgBox \"第一条记录!\提示信息\" Adodc1.Recordset.MoveFirst End If Case 2

Adodc1.Recordset.MoveNext If Adodc1.Recordset.EOF Then

MsgBox \"最后一条记录!\提示信息\" Adodc1.Recordset.MoveLast End If Case 3

Adodc1.Recordset.MoveLast End Select Exit Sub

errorhandler: '允许错误发生的错误处理

Adodc1.RecordSource = \"select * from 客户信息\" Adodc1.Refresh

MsgBox \"刚刷新!请重试。\提示信息\" Resume Next End Sub

Private Sub Command8_Click()

Adodc1.RecordSource = \"select * from 客户信息\" Adodc1.Refresh End Sub

Private Sub Form_Load() Label5.Top = 900

DataGrid1.Left = (Screen.Width - DataGrid1.Width) / 2 DataGrid1.Top = 2200 End Sub

10 客房类型查询窗体

Private Sub Command1_Click()

On Error GoTo errorhandler '允许错误发生 If Text1.Text = \"\" Then

MsgBox \"请输入关键字!\提示信息\" Text1.SetFocus Exit Sub End If

If IsNumeric(Text1.Text) = False And (Combo1.Text = \"面积\" Or Combo1.Text = \"价格\" Or Combo1.Text = \"额定床位\" Or Combo1.Text = \"额定人数\") Then '避免错误发生 MsgBox \"请输入数字!\提示信息\" Exit Sub End If

If Combo1.Text = \"编号\" Or Combo1.Text = \"面积\" Or Combo1.Text = \"价格\" Or Combo1.Text = \"额定床位\" Or Combo1.Text = \"额定人数\" Then

Adodc1.RecordSource = \"select * from 客房类型 where \" & Combo1.Text & \"\" & Combo2.Text & \"\" + Text1.Text + \"\" Else

Adodc1.RecordSource = \"select * from 客房类型 where \" & Combo1.Text & \"\" & Combo2.Text & \"'\" + Text1.Text + \"'\" End If

Adodc1.Refresh

If Adodc1.Recordset.RecordCount = 0 Then

MsgBox \"此类型不存在!\提示信息\" Exit Sub End If Exit Sub

errorhandler: '允许错误发生的错误处理 If Err.Number = -2147217904 Then

MsgBox \"输入数据类型错误,请输入长整型\提示信息\" Resume Next End If End Sub

Private Sub Command3_Click() Unload Me End Sub

Private Sub Form_Load() Combo1.AddItem (\"类型\") Combo1.AddItem (\"面积\") Combo1.AddItem (\"价格\") Combo1.AddItem (\"额定床位\") Combo1.AddItem (\"额定人数\") Combo1.AddItem (\"是否有电视\")

Combo1.AddItem (\"是否有电话\") Combo1.AddItem (\"是否有空调\") Combo1.AddItem (\"是否有卫生间\") Combo1.ListIndex = 0 Combo2.AddItem (\"=\") Combo2.AddItem (\">\") Combo2.AddItem (\"<\") Combo2.AddItem (\">=\") Combo2.AddItem (\"<=\") Combo2.AddItem (\"<>\") Combo2.ListIndex = 0 End Sub

Private Sub Command7_Click(Index As Integer) On Error GoTo errorhandler '允许错误发生 Select Case Index Case 0

Adodc1.Recordset.MoveFirst Case 1

Adodc1.Recordset.MovePrevious If Adodc1.Recordset.BOF Then

MsgBox \"第一条记录!\提示信息\" Adodc1.Recordset.MoveFirst End If Case 2

Adodc1.Recordset.MoveNext If Adodc1.Recordset.EOF Then

MsgBox \"最后一条记录!\提示信息\" Adodc1.Recordset.MoveLast End If Case 3

Adodc1.Recordset.MoveLast End Select Exit Sub

errorhandler: '允许错误发生的错误处理

Adodc1.RecordSource = \"select * from 客房类型\" Adodc1.Refresh

MsgBox \"刚刷新!请重试。\提示信息\" Resume Next End Sub

Private Sub Command8_Click()

Adodc1.RecordSource = \"select * from 客房类型\" Adodc1.Refresh End Sub

11 客房基本信息查询窗体

Private Sub Command1_Click()

On Error GoTo errorhandler '允许错误发生 If Text1.Text = \"\" Then

MsgBox \"请输入关键字!\提示信息\" Text1.SetFocus Exit Sub End If

If IsNumeric(Text1.Text) = False And (Combo1.Text = \"面积\" Or Combo1.Text = \"价格\" Or Combo1.Text = \"额定床位\" Or Combo1.Text = \"额定人数\") Then '避免错误发生 MsgBox \"请输入数字!\提示信息\" Exit Sub End If

If Combo1.Text = \"编号\" Or Combo1.Text = \"面积\" Or Combo1.Text = \"价格\" Or Combo1.Text = \"额定床位\" Or Combo1.Text = \"额定人数\" Then

Adodc1.RecordSource = \"select * from 客房类型 where \" & Combo1.Text & \"\" & Combo2.Text & \"\" + Text1.Text + \"\" Else

Adodc1.RecordSource = \"select * from 客房类型 where \" & Combo1.Text & \"\" & Combo2.Text & \"'\" + Text1.Text + \"'\" End If

Adodc1.Refresh

If Adodc1.Recordset.RecordCount = 0 Then

MsgBox \"此类型不存在!\提示信息\" Exit Sub End If Exit Sub

errorhandler: '允许错误发生的错误处理 If Err.Number = -2147217904 Then

MsgBox \"输入数据类型错误,请输入长整型\提示信息\" Resume Next End If End Sub

Private Sub Command3_Click() Unload Me End Sub

Private Sub Form_Load() Combo1.AddItem (\"类型\") Combo1.AddItem (\"面积\") Combo1.AddItem (\"价格\") Combo1.AddItem (\"额定床位\") Combo1.AddItem (\"额定人数\") Combo1.AddItem (\"是否有电视\") Combo1.AddItem (\"是否有电话\") Combo1.AddItem (\"是否有空调\") Combo1.AddItem (\"是否有卫生间\") Combo1.ListIndex = 0 Combo2.AddItem (\"=\") Combo2.AddItem (\">\") Combo2.AddItem (\"<\") Combo2.AddItem (\">=\") Combo2.AddItem (\"<=\") Combo2.AddItem (\"<>\") Combo2.ListIndex = 0 End Sub

Private Sub Command7_Click(Index As Integer) On Error GoTo errorhandler '允许错误发生 Select Case Index Case 0

Adodc1.Recordset.MoveFirst Case 1

Adodc1.Recordset.MovePrevious If Adodc1.Recordset.BOF Then

MsgBox \"第一条记录!\提示信息\" Adodc1.Recordset.MoveFirst End If Case 2

Adodc1.Recordset.MoveNext If Adodc1.Recordset.EOF Then

MsgBox \"最后一条记录!\提示信息\" Adodc1.Recordset.MoveLast End If Case 3

Adodc1.Recordset.MoveLast End Select Exit Sub

errorhandler: '允许错误发生的错误处理

Adodc1.RecordSource = \"select * from 客房类型\" Adodc1.Refresh

MsgBox \"刚刷新!请重试。\提示信息\" Resume Next End Sub

Private Sub Command8_Click()

Adodc1.RecordSource = \"select * from 客房类型\" Adodc1.Refresh End Sub

12 客房详细信息查询窗体

Private Sub Command1_Click()

On Error GoTo errorhandler '允许错误发生 If Text1.Text = \"\" Then

MsgBox \"请输入关键字!\提示信息\" Text1.SetFocus Exit Sub End If

If IsNumeric(Text1.Text) = False And (Combo1.Text = \"房间号\" Or Combo1.Text = \"楼层\" Or Combo1.Text = \"价格\" Or Combo1.Text = \"额定床位\" Or Combo1.Text = \"额定人数\") Then '避免错误发生

MsgBox \"请输入数字!\提示信息\" Exit Sub End If

If Combo1.Text = \"房间号\" Or Combo1.Text = \"楼层\" Or Combo1.Text = \"价格\" Or Combo1.Text = \"额定床位\" Or Combo1.Text = \"额定人数\" Then

Adodc1.RecordSource = \"select * from 客房详细信息_cx where \" & Combo1.Text & \"\" & Combo2.Text & \"\" + Text1.Text + \"\" Else

Adodc1.RecordSource = \"select * from 客房详细信息_cx where \" & Combo1.Text & \"\" & Combo2.Text & \"'\" + Text1.Text + \"'\" End If

Adodc1.Refresh

If Adodc1.Recordset.RecordCount = 0 Then

MsgBox \"此客房不存在!\提示信息\" Exit Sub End If Exit Sub

errorhandler: '允许错误发生的错误处理 If Err.Number = -2147217904 Then

MsgBox \"输入数据类型错误,请输入长整型\提示信息\" Resume Next End If End Sub

Private Sub Command3_Click() Unload Me End Sub

Private Sub Form_Load() Combo1.AddItem (\"房间号\") Combo1.AddItem (\"类型\") Combo1.AddItem (\"价格\") Combo1.AddItem (\"额定床位\") Combo1.AddItem (\"额定人数\") Combo1.AddItem (\"楼层\")

Combo1.AddItem (\"是否有电视\") Combo1.AddItem (\"是否有电话\") Combo1.AddItem (\"是否有空调\") Combo1.AddItem (\"是否有卫生间\") Combo1.ListIndex = 0 Combo2.AddItem (\"=\") Combo2.AddItem (\">\") Combo2.AddItem (\"<\") Combo2.AddItem (\">=\") Combo2.AddItem (\"<=\") Combo2.AddItem (\"<>\") Combo2.ListIndex = 0 End Sub

Private Sub Command7_Click(Index As Integer) On Error GoTo errorhandler '允许错误发生 Select Case Index Case 0

Adodc1.Recordset.MoveFirst Case 1

Adodc1.Recordset.MovePrevious If Adodc1.Recordset.BOF Then

MsgBox \"第一条记录!\提示信息\" Adodc1.Recordset.MoveFirst End If Case 2

Adodc1.Recordset.MoveNext If Adodc1.Recordset.EOF Then

MsgBox \"最后一条记录!\提示信息\" Adodc1.Recordset.MoveLast End If Case 3

Adodc1.Recordset.MoveLast End Select Exit Sub

errorhandler: '允许错误发生的错误处理

Adodc1.RecordSource = \"select * from 客房详细信息_cx\" Adodc1.Refresh

MsgBox \"刚刷新!请重试。\提示信息\" Resume Next End Sub

Private Sub Command8_Click()

Adodc1.RecordSource = \"select * from 客房详细信息_cx\" Adodc1.Refresh End Sub

13 空房查询窗体

Private Sub cmd_ruzhu_Click() Load frm_ruzhudengji frm_ruzhudengji.Show 0 End Sub

Private Sub cmd_query_Click()

On Error GoTo errorhandler '允许错误发生 If Text1.Text = \"\" Then

MsgBox \"请输入关键字!\提示信息\" Text1.SetFocus Exit Sub End If

If IsNumeric(Text1.Text) = False And (Combo1.Text = \"房间号\" Or Combo1.Text = \"额定人数\") Then '避免错误发生

MsgBox \"请输入数字!\提示信息\" Exit Sub End If

If Combo1.Text = \"房间号\" Or Combo1.Text = \"额定人数\" Then

Adodc1.RecordSource = \"select * from 空房_cx where \" & Combo1.Text & \"\" & Combo2.Text & \"\" + Text1.Text + \"\" Else

Adodc1.RecordSource = \"select * from 空房_cx where \" & Combo1.Text & \"\" & Combo2.Text & \"'\" + Text1.Text + \"'\" End If

Adodc1.Refresh

If Adodc1.Recordset.RecordCount = 0 Then

MsgBox \"此记录不存在!\提示信息\" Exit Sub End If Exit Sub

errorhandler: '允许错误发生的错误处理 If Err.Number = -2147217904 Then

MsgBox \"输入数据类型错误,请输入长整型\提示信息\" Resume Next End If End Sub

Private Sub Command3_Click() Unload Me

End Sub

Private Sub Form_Load() Combo1.AddItem (\"房间号\") Combo1.AddItem (\"类型\") Combo1.AddItem (\"额定人数\") Combo1.ListIndex = 0 Combo2.AddItem (\"=\") Combo2.AddItem (\">\") Combo2.AddItem (\"<\") Combo2.AddItem (\">=\") Combo2.AddItem (\"<=\") Combo2.AddItem (\"<>\") Combo2.ListIndex = 0 End Sub

Private Sub Command7_Click(Index As Integer) On Error GoTo errorhandler '允许错误发生 Select Case Index Case 0

Adodc1.Recordset.MoveFirst Case 1

Adodc1.Recordset.MovePrevious If Adodc1.Recordset.BOF Then

MsgBox \"第一条记录!\提示信息\" Adodc1.Recordset.MoveFirst End If Case 2

Adodc1.Recordset.MoveNext If Adodc1.Recordset.EOF Then

MsgBox \"最后一条记录!\提示信息\" Adodc1.Recordset.MoveLast End If Case 3

Adodc1.Recordset.MoveLast End Select Exit Sub

errorhandler: '允许错误发生的错误处理

Adodc1.RecordSource = \"select * from 空房_cx\" Adodc1.Refresh

MsgBox \"刚刷新!请重试。\提示信息\" Resume Next End Sub

Private Sub Command8_Click()

Adodc1.RecordSource = \"select * from 空房_cx\" Adodc1.Refresh End Sub

14未满客房查询窗体

Private Sub cmd_query_Click()

On Error GoTo errorhandler '允许错误发生 If Text1.Text = \"\" Then

MsgBox \"请输入关键字!\提示信息\" Text1.SetFocus

Exit Sub End If

If IsNumeric(Text1.Text) = False And (Combo1.Text = \"房间号\" Or Combo1.Text = \"额定人数\" Or Combo1.Text = \"在住人数\") Then '避免错误发生 MsgBox \"请输入数字!\提示信息\" Exit Sub End If

If Combo1.Text = \"房间号\" Or Combo1.Text = \"额定人数\" Or Combo1.Text = \"在住人数\" Then Adodc1.RecordSource = \"select * from 未满非空房间_cx2 where \" & Combo1.Text & \"\" & Combo2.Text & \"\" + Text1.Text + \"\" Else

Adodc1.RecordSource = \"select * from 未满非空房间_cx2 where \" & Combo1.Text & \"\" & Combo2.Text & \"'\" + Text1.Text + \"'\" End If

Adodc1.Refresh

If Adodc1.Recordset.RecordCount = 0 Then

MsgBox \"此记录不存在!\提示信息\" Exit Sub End If Exit Sub

errorhandler: '允许错误发生的错误处理 If Err.Number = -2147217904 Then

MsgBox \"输入数据类型错误,请输入长整型\提示信息\" Resume Next End If End Sub

Private Sub Command3_Click() Unload Me End Sub

Private Sub Form_Load() Combo1.AddItem (\"房间号\") Combo1.AddItem (\"类型\") Combo1.AddItem (\"在住人数\") Combo1.AddItem (\"额定人数\") Combo1.ListIndex = 0 Combo2.AddItem (\"=\") Combo2.AddItem (\">\") Combo2.AddItem (\"<\") Combo2.AddItem (\">=\") Combo2.AddItem (\"<=\") Combo2.AddItem (\"<>\") Combo2.ListIndex = 0 End Sub

Private Sub Command7_Click(Index As Integer) On Error GoTo errorhandler '允许错误发生 Select Case Index Case 0

Adodc1.Recordset.MoveFirst Case 1

Adodc1.Recordset.MovePrevious If Adodc1.Recordset.BOF Then

MsgBox \"第一条记录!\提示信息\" Adodc1.Recordset.MoveFirst End If Case 2

Adodc1.Recordset.MoveNext If Adodc1.Recordset.EOF Then

MsgBox \"最后一条记录!\提示信息\" Adodc1.Recordset.MoveLast End If Case 3

Adodc1.Recordset.MoveLast End Select Exit Sub

errorhandler: '允许错误发生的错误处理

Adodc1.RecordSource = \"select * from 未满非空房间_cx2\" Adodc1.Refresh

MsgBox \"刚刷新!请重试。\提示信息\" Resume Next End Sub

Private Sub Command8_Click()

Adodc1.RecordSource = \"select * from 未满非空房间_cx2\" Adodc1.Refresh End Sub

Private Sub cmd_ruzhu_Click() Load frm_ruzhudengji frm_ruzhudengji.Show 0 End Sub

15 客满房间查询窗体

Private Sub Command1_Click()

On Error GoTo errorhandler '允许错误发生 If Text1.Text = \"\" Then

MsgBox \"请输入关键字!\提示信息\" Text1.SetFocus Exit Sub End If

If IsNumeric(Text1.Text) = False And (Combo1.Text = \"房间号\" Or Combo1.Text = \"在住人数\" Or Combo1.Text = \"额定人数\") Then '避免错误发生 MsgBox \"请输入数字!\提示信息\" Exit Sub End If

If Combo1.Text = \"房间号\" Or Combo1.Text = \"在住人数\" Or Combo1.Text = \"额定人数\" Then Adodc1.RecordSource = \"select * from 客满房间_cx where \" & Combo1.Text & \"\" & Combo2.Text & \"\" + Text1.Text + \"\" Else

Adodc1.RecordSource = \"select * from 客满房间_cx where \" & Combo1.Text & \"\" & Combo2.Text & \"'\" + Text1.Text + \"'\" End If

Adodc1.Refresh

If Adodc1.Recordset.RecordCount = 0 Then

MsgBox \"此记录不存在!\提示信息\" Exit Sub

End If Exit Sub

errorhandler: '允许错误发生的错误处理 If Err.Number = -2147217904 Then

MsgBox \"输入数据类型错误,请输入长整型\提示信息\" Resume Next End If End Sub

Private Sub Command3_Click() Unload Me End Sub

Private Sub Form_Load() Combo1.AddItem (\"房间号\") Combo1.AddItem (\"类型\") Combo1.AddItem (\"在住人数\") Combo1.AddItem (\"额定人数\") Combo1.ListIndex = 0 Combo2.AddItem (\"=\") Combo2.AddItem (\">\") Combo2.AddItem (\"<\") Combo2.AddItem (\">=\") Combo2.AddItem (\"<=\") Combo2.AddItem (\"<>\") Combo2.ListIndex = 0 End Sub

Private Sub Command7_Click(Index As Integer) On Error GoTo errorhandler '允许错误发生 Select Case Index Case 0

Adodc1.Recordset.MoveFirst Case 1

Adodc1.Recordset.MovePrevious If Adodc1.Recordset.BOF Then

MsgBox \"第一条记录!\提示信息\" Adodc1.Recordset.MoveFirst End If Case 2

Adodc1.Recordset.MoveNext If Adodc1.Recordset.EOF Then

MsgBox \"最后一条记录!\提示信息\" Adodc1.Recordset.MoveLast End If Case 3

Adodc1.Recordset.MoveLast End Select Exit Sub

errorhandler: '允许错误发生的错误处理

Adodc1.RecordSource = \"select * from 客满房间_cx\" Adodc1.Refresh

MsgBox \"刚刷新!请重试。\提示信息\" Resume Next

End Sub

Private Sub Command8_Click()

Adodc1.RecordSource = \"select * from 客满房间_cx\" Adodc1.Refresh End Sub

16 客户信息查询

Private Sub Command1_Click()

On Error GoTo errorhandler '允许错误发生 If Text1.Text = \"\" Then

MsgBox \"请输入关键字!\提示信息\" Text1.SetFocus Exit Sub End If

If IsNumeric(Text1.Text) = False And Combo1.Text = \"客户号\" Then '避免错误发生 MsgBox \"请输入数字!\提示信息\" Exit Sub End If

If Combo1.Text = \"客户号\" Then

Adodc1.RecordSource = \"select * from 客户信息 where \" & Combo1.Text & \"\" & Combo2.Text & \"\" + Text1.Text + \"\" Else

Adodc1.RecordSource = \"select * from 客户信息 where \" & Combo1.Text & \"\" & Combo2.Text & \"'\" + Text1.Text + \"'\" End If

Adodc1.Refresh

If Adodc1.Recordset.RecordCount = 0 Then

MsgBox \"此客户信息不存在!\提示信息\" Exit Sub End If Exit Sub

errorhandler: '允许错误发生的错误处理 If Err.Number = -2147217904 Then

MsgBox \"输入数据类型错误,请输入长整型\提示信息\" Resume Next End If End Sub

Private Sub Command3_Click() Unload Me End Sub

Private Sub Form_Load() Combo1.AddItem (\"客户号\") Combo1.AddItem (\"姓名\") Combo1.AddItem (\"性别\") Combo1.AddItem (\"籍贯\") Combo1.ListIndex = 0 Combo2.AddItem (\"=\") Combo2.AddItem (\">\") Combo2.AddItem (\"<\") Combo2.AddItem (\">=\") Combo2.AddItem (\"<=\") Combo2.AddItem (\"<>\")

Combo2.ListIndex = 0 End Sub

Private Sub Command7_Click(Index As Integer) On Error GoTo errorhandler '允许错误发生 Select Case Index Case 0

Adodc1.Recordset.MoveFirst Case 1

Adodc1.Recordset.MovePrevious If Adodc1.Recordset.BOF Then

MsgBox \"第一条记录!\提示信息\" Adodc1.Recordset.MoveFirst End If Case 2

Adodc1.Recordset.MoveNext If Adodc1.Recordset.EOF Then

MsgBox \"最后一条记录!\提示信息\" Adodc1.Recordset.MoveLast End If Case 3

Adodc1.Recordset.MoveLast End Select Exit Sub

errorhandler: '允许错误发生的错误处理

Adodc1.RecordSource = \"select * from 客户信息\" Adodc1.Refresh

MsgBox \"刚刷新!请重试。\提示信息\" Resume Next End Sub

Private Sub Command8_Click()

Adodc1.RecordSource = \"select * from 客户信息\" Adodc1.Refresh End Sub

17 历史纪录查询窗体

Private Sub Command1_Click()

On Error GoTo errorhandler '允许错误发生 If Text1.Text = \"\" Then

MsgBox \"请输入关键字!\提示信息\" Text1.SetFocus Exit Sub End If

If IsNumeric(Text1.Text) = False And (Combo1.Text = \"房间号\" Or Combo1.Text = \"客户号\" Or Combo1.Text = \"价格\" Or Combo1.Text = \"入住天数\" Or Combo1.Text = \"结算金额\") Then '避免错误发生

MsgBox \"请输入数字!\提示信息\" Exit Sub

ElseIf IsDate(Text1.Text) = False And (Combo1.Text = \"入住日期\" Or Combo1.Text = \"结算日期\") Then

MsgBox \"请输入日期!\提示信息\" Exit Sub End If

If Combo1.Text = \"客户号\" Or Combo1.Text = \"房间号\" Or Combo1.Text = \"结算金额\" Or Combo1.Text = \"入住日期\" Or Combo1.Text = \"入住天数\" Or Combo1.Text = \"结算日期\" Then Adodc1.RecordSource = \"select * from 历史记录_cx3 where \" & Combo1.Text & \"\" & Combo2.Text & \"\" + Text1.Text + \"\" Else

Adodc1.RecordSource = \"select * from 历史记录_cx3 where \" & Combo1.Text & \"\" & Combo2.Text & \"'\" + Text1.Text + \"'\" End If

Adodc1.Refresh

If Adodc1.Recordset.RecordCount = 0 Then

MsgBox \"此记录不存在!\提示信息\" Exit Sub End If Exit Sub

errorhandler: '允许错误发生的错误处理 If Err.Number = -2147217904 Then

MsgBox \"输入数据类型错误,请输入长整型\提示信息\" Resume Next End If End Sub

Private Sub Command3_Click() Unload Me End Sub

Private Sub Form_Load() Combo1.AddItem (\"客户号\") Combo1.AddItem (\" 姓名\") Combo1.AddItem (\" 类型\") Combo1.AddItem (\"房间号\") Combo1.AddItem (\"入住日期\") Combo1.AddItem (\"结算日期\") Combo1.AddItem (\" 结算金额\") Combo1.AddItem (\" 入住天数\") Combo1.ListIndex = 0 Combo2.AddItem (\"=\") Combo2.AddItem (\">\") Combo2.AddItem (\"<\") Combo2.AddItem (\">=\") Combo2.AddItem (\"<=\") Combo2.AddItem (\"<>\") Combo2.ListIndex = 0 End Sub

Private Sub Command7_Click(Index As Integer) On Error GoTo errorhandler '允许错误发生 Select Case Index Case 0

Adodc1.Recordset.MoveFirst Case 1

Adodc1.Recordset.MovePrevious If Adodc1.Recordset.BOF Then

MsgBox \"第一条记录!\提示信息\" Adodc1.Recordset.MoveFirst

End If Case 2

Adodc1.Recordset.MoveNext If Adodc1.Recordset.EOF Then

MsgBox \"最后一条记录!\提示信息\" Adodc1.Recordset.MoveLast End If Case 3

Adodc1.Recordset.MoveLast End Select Exit Sub

errorhandler: '允许错误发生的错误处理

Adodc1.RecordSource = \"select * from 历史记录_cx3\" Adodc1.Refresh

MsgBox \"刚刷新!请重试。\提示信息\" Resume Next End Sub

Private Sub Command8_Click()

Adodc1.RecordSource = \"select * from 历史记录_cx3\" Adodc1.Refresh End Sub

18 在住记录查询窗体

Private Sub Command1_Click()

On Error GoTo errorhandler '允许错误发生 If Text1.Text = \"\" Then

MsgBox \"请输入关键字!\提示信息\" Text1.SetFocus Exit Sub End If

If IsNumeric(Text1.Text) = False And (Combo1.Text = \"房间号\" Or Combo1.Text = \"客户号\" Or Combo1.Text = \"价格\" Or Combo1.Text = \"额定床位\" Or Combo1.Text = \"额定人数\") Then '避免错误发生

MsgBox \"请输入数字!\提示信息\" Exit Sub

ElseIf IsDate(Text1.Text) = False And Combo1.Text = \"入住日期\" Then MsgBox \"请输入日期!\提示信息\" Exit Sub End If

If Combo1.Text = \"客户号\" Or Combo1.Text = \"房间号\" Or Combo1.Text = \"价格\" Or Combo1.Text = \"入住日期\" Or Combo1.Text = \"额定床位\" Or Combo1.Text = \"额定人数\" Then Adodc1.RecordSource = \"select * from 在住记录_cx3 where \" & Combo1.Text & \"\" & Combo2.Text & \"\" + Text1.Text + \"\" Else

Adodc1.RecordSource = \"select * from 在住记录_cx3 where \" & Combo1.Text & \"\" & Combo2.Text & \"'\" + Text1.Text + \"'\" End If

Adodc1.Refresh

If Adodc1.Recordset.RecordCount = 0 Then

MsgBox \"此记录不存在!\提示信息\" Exit Sub End If

Exit Sub

errorhandler: '允许错误发生的错误处理 If Err.Number = -2147217904 Then

MsgBox \"输入数据类型错误,请输入长整型\提示信息\" Resume Next End If End Sub

Private Sub Command3_Click() Unload Me End Sub

Private Sub Form_Load() Combo1.AddItem (\"客户号\") Combo1.AddItem (\"姓名\") Combo1.AddItem (\"性别\") Combo1.AddItem (\"类型\") Combo1.AddItem (\"房间号\") Combo1.AddItem (\"价格\") Combo1.AddItem (\"额定床位\") Combo1.AddItem (\"额定人数\") Combo1.AddItem (\"入住日期\") Combo1.ListIndex = 0 Combo2.AddItem (\"=\") Combo2.AddItem (\">\") Combo2.AddItem (\"<\") Combo2.AddItem (\">=\") Combo2.AddItem (\"<=\") Combo2.AddItem (\"<>\") Combo2.ListIndex = 0 End Sub

Private Sub Command7_Click(Index As Integer) On Error GoTo errorhandler '允许错误发生 Select Case Index Case 0

Adodc1.Recordset.MoveFirst Case 1

Adodc1.Recordset.MovePrevious If Adodc1.Recordset.BOF Then

MsgBox \"第一条记录!\提示信息\" Adodc1.Recordset.MoveFirst End If Case 2

Adodc1.Recordset.MoveNext If Adodc1.Recordset.EOF Then

MsgBox \"最后一条记录!\提示信息\" Adodc1.Recordset.MoveLast End If Case 3

Adodc1.Recordset.MoveLast End Select Exit Sub

errorhandler: '允许错误发生的错误处理

Adodc1.RecordSource = \"select * from 在住记录_cx3\" Adodc1.Refresh

MsgBox \"刚刷新!请重试。\提示信息\" Resume Next End Sub

Private Sub Command8_Click()

Adodc1.RecordSource = \"select * from 在住记录_cx3\" Adodc1.Refresh End Sub

19 预订记录查询窗体

Private Sub Command1_Click()

On Error GoTo errorhandler '允许错误发生 If Text1.Text = \"\" Then

MsgBox \"请输入关键字!\提示信息\" Text1.SetFocus Exit Sub End If

If IsNumeric(Text1.Text) = False And (Combo1.Text = \"房间号\" Or Combo1.Text = \"客户号\" Or Combo1.Text = \"预订天数\") Then '避免错误发生 MsgBox \"请输入数字!\提示信息\" Exit Sub

ElseIf IsNumeric(Text1.Text) = False And (Combo1.Text = \"预订日期\" Or Combo1.Text = \"预订入住日期\") Then

MsgBox \"请输入日期!\提示信息\" Exit Sub End If

If Combo1.Text = \"姓名\" Or Combo1.Text = \"性别\" Or Combo1.Text = \"类型\" Then Adodc1.RecordSource = \"select * from 预订信息_cx3 where \" & Combo1.Text & \"\" & Combo2.Text & \"'\" + Text1.Text + \"'\" Else

Adodc1.RecordSource = \"select * from 预订信息_cx3 where \" & Combo1.Text & \"\" & Combo2.Text & \"\" + Text1.Text + \"\" End If

Adodc1.Refresh

If Adodc1.Recordset.RecordCount = 0 Then

MsgBox \"此记录不存在!\提示信息\" Exit Sub End If Exit Sub

errorhandler: '允许错误发生的错误处理 If Err.Number = -2147217904 Then

MsgBox \"输入数据类型错误,请输入长整型\提示信息\" Resume Next End If End Sub

Private Sub Command3_Click() Unload Me End Sub

Private Sub Form_Load() Combo1.AddItem (\"客户号\")

Combo1.AddItem (\"姓名\") Combo1.AddItem (\"性别\") Combo1.AddItem (\"房间号\") Combo1.AddItem (\"类型\") Combo1.AddItem (\"预订日期\") Combo1.AddItem (\"预订入住日期\") Combo1.AddItem (\"预订天数\") Combo1.ListIndex = 0 Combo2.AddItem (\"=\") Combo2.AddItem (\">\") Combo2.AddItem (\"<\") Combo2.AddItem (\">=\") Combo2.AddItem (\"<=\") Combo2.AddItem (\"<>\") Combo2.ListIndex = 0 End Sub

Private Sub Command7_Click(Index As Integer) On Error GoTo errorhandler '允许错误发生 Select Case Index Case 0

Adodc1.Recordset.MoveFirst Case 1

Adodc1.Recordset.MovePrevious If Adodc1.Recordset.BOF Then

MsgBox \"第一条记录!\提示信息\" Adodc1.Recordset.MoveFirst End If Case 2

Adodc1.Recordset.MoveNext If Adodc1.Recordset.EOF Then

MsgBox \"最后一条记录!\提示信息\" Adodc1.Recordset.MoveLast End If Case 3

Adodc1.Recordset.MoveLast End Select Exit Sub

errorhandler: '允许错误发生的错误处理

Adodc1.RecordSource = \"select * from 预订信息_cx3\" Adodc1.Refresh

MsgBox \"刚刷新!请重试。\提示信息\" Resume Next End Sub

Private Sub Command8_Click()

Adodc1.RecordSource = \"select * from 预订信息_cx3\" Adodc1.Refresh End Sub

20 入住登记窗体

Private Sub cmd_add_Click() For i = 0 To 1

Text1(i).Text = \"\"

Text1(i).Enabled = True Next i

Text1(0).SetFocus

cmd_save.Enabled = True cmd_add.Enabled = False End Sub

Private Sub cmd_dengji_Click() Load frm_addcust_info frm_addcust_info.Show 0 cmd_add.Enabled = True End Sub

Private Sub cmd_exit_Click() Unload Me End Sub

Private Sub cmd_save_Click()

On Error GoTo errorhandler '允许错误发生 For i = 0 To 1

If Text1(i) = \"\" Then

MsgBox \"信息输入不完整!\提示信息\" Exit Sub End If Next i

If IsNumeric(Text1(0).Text) = False Or IsNumeric(Text1(1).Text) = False Then '避免错误发生-----

MsgBox \"请输入数字!\提示信息\" Exit Sub End If '---------------------------------------------------------------------------------------- cmd_add.Enabled = True

Adodc1.RecordSource = \"select * from 入住记录 where (备注='未退房') and (客户号= \" + Text1(0).Text + \") and (房间号= \" + Text1(1).Text + \")\" Adodc1.Refresh

If Adodc1.Recordset.RecordCount <> 0 Then

MsgBox \"该入住记录已存在,添加不成功。\提示信息\" Exit Sub End If

Adodc2.RecordSource = \"select * from 客户信息 where 客户号=\" + Text1(0).Text + \"\" Adodc2.Refresh

If Adodc2.Recordset.RecordCount = 0 Then

MsgBox \"该客户信息不存在,添加不成功。请先录入客户信息!\提示信息\" Exit Sub End If

Adodc3.RecordSource = \"select * from 客房信息 where 房间号=\" + Text1(1).Text + \"\" Adodc3.Refresh

If Adodc3.Recordset.RecordCount = 0 Then

MsgBox \"该客房信息不存在,添加不成功。\提示信息\" Exit Sub End If

'房间客满的设定--------!!!!!!!!!!!!!!!!!!!!!!!!!!!!

Adodc4.RecordSource = \"select * from 客满房间_cx where 房间号=\" + Text1(1).Text + \"\" Adodc4.Refresh

If Adodc4.Recordset.RecordCount > 0 Then

MsgBox \"该客房已满,添加不成功。请选择其他房间!\提示信息\" Exit Sub

End If '!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! Adodc1.RecordSource = \"select * from 入住记录\" Adodc1.Refresh

Adodc1.Recordset.AddNew

Adodc1.Recordset.Fields(\"客户号\") = Text1(0).Text Adodc1.Recordset.Fields(\"房间号\") = Text1(1).Text Adodc1.Recordset.Fields(\"入住日期\") = Text1(2).Text Adodc1.Recordset.Fields(\"备注\") = \"未退房\" MsgBox \"添加成功!\提示信息\" Adodc1.Recordset.Update Exit Sub

errorhandler: '允许错误发生的错误处理 If Err.Number = -2147217904 Then

MsgBox \"输入数据类型错误,请输入正确类型\提示信息\" Resume Next Exit Sub End If End Sub

Private Sub Form_Load() Adodc1.Recordset.MoveLast Text1(2).Text = Date For i = 0 To 1

Text1(i).Enabled = False Next i

cmd_add.Enabled = False cmd_save.Enabled = False End Sub

Private Sub Command7_Click(Index As Integer) On Error GoTo errorhandler '允许错误发生 Select Case Index Case 0

Adodc1.Recordset.MoveFirst Case 1

Adodc1.Recordset.MovePrevious If Adodc1.Recordset.BOF Then

MsgBox \"第一条记录!\提示信息\" Adodc1.Recordset.MoveFirst End If Case 2

Adodc1.Recordset.MoveNext If Adodc1.Recordset.EOF Then

MsgBox \"最后一条记录!\提示信息\" Adodc1.Recordset.MoveLast End If Case 3

Adodc1.Recordset.MoveLast End Select Exit Sub

errorhandler: '允许错误发生的错误处理

Adodc1.RecordSource = \"select * from 入住记录\" Adodc1.Refresh

MsgBox \"刚刷新!请重试。\提示信息\" Resume Next End Sub

Private Sub Command8_Click()

Adodc1.RecordSource = \"select * from 入住记录\" Adodc1.Refresh End Sub

21 预订登记窗体

Private Sub cmd_add_Click() For i = 0 To 4

Text1(i).Text = \"\"

Text1(i).Enabled = True Next i

Text1(0).SetFocus Text1(2).Text = Date cmd_save.Enabled = True cmd_add.Enabled = False End Sub

Private Sub cmd_dengji_Click() Load frm_addcust_info frm_addcust_info.Show 0 cmd_add.Enabled = True End Sub

Private Sub cmd_exit_Click() Unload Me End Sub

Private Sub cmd_save_Click()

'On Error GoTo errorhandler '允许错误发生 For i = 0 To 4

If Text1(i) = \"\" Then

MsgBox \"信息输入不完整!\提示信息\" Exit Sub End If Next i

cmd_add.Enabled = True

If IsNumeric(Text1(0).Text) = False Then ------------------------------------------

MsgBox \"请在客户号中输入数字!\提示信息\" Exit Sub

ElseIf IsNumeric(Text1(1).Text) = False Then MsgBox \"请在房间号中输入数字!\提示信息\" Exit Sub

ElseIf IsDate(Text1(3).Text) = False Then

MsgBox \"请在预订入住日期中输入日期!\提示信息\" Exit Sub

ElseIf IsNumeric(Text1(4).Text) = False Then

MsgBox \"请在预订天数中输入数字!\提示信息\" Exit Sub

'避免错误发生

End If '-----------------------------------------------------------------------------------------

'预订冲突的解决---处理重复预订同一房间的方法。

Adodc1.RecordSource = \"select * from 预订记录 where 预订入住日期='\" + Text1(3).Text + \"' and 房间号=\" + Text1(1).Text + \"\"

Adodc1.Refresh ''预订入住日期应设置为日期型''where (\" + Text1(3).Text + \">=预订入住日期 and \" + Text1(3).Text + \"<(预订入住日期+预订天数)) If Adodc1.Recordset.RecordCount <> 0 Then

MsgBox \"该客房已经被预订,您不能再预订此客房。\提示信息\" Exit Sub

End If '---------------------------------------------------------------

Adodc2.RecordSource = \"select * from 客户信息 where 客户号=\" + Text1(0).Text + \"\" Adodc2.Refresh

If Adodc2.Recordset.RecordCount = 0 Then

MsgBox \"该客户信息不存在,添加不成功。\提示信息\" Exit Sub End If

Adodc3.RecordSource = \"select * from 客房信息 where 房间号=\" + Text1(1).Text + \"\" Adodc3.Refresh

If Adodc3.Recordset.RecordCount = 0 Then

MsgBox \"该客房信息不存在,添加不成功。\提示信息\" Exit Sub End If

Adodc1.Recordset.AddNew

Adodc1.Recordset.Fields(\"客户号\") = Text1(0).Text Adodc1.Recordset.Fields(\"房间号\") = Text1(1).Text Adodc1.Recordset.Fields(\"预订日期\") = Text1(2).Text Adodc1.Recordset.Fields(\"预订入住日期\") = Text1(3).Text Adodc1.Recordset.Fields(\"预订天数\") = Text1(4).Text MsgBox \"添加成功!\提示信息\" Adodc1.Recordset.Update 'Exit Sub

'errorhandler: '允许错误发生的错误处理 ' If Err.Number = -2147217904 Then

' MsgBox \"输入数据类型错误,请输入长整型\提示信息\" 'Resume Next 'End If End Sub

Private Sub Form_Load() Adodc1.Recordset.MoveLast For i = 0 To 4

Text1(i).Enabled = False Next i

cmd_save.Enabled = False cmd_add.Enabled = False End Sub

Private Sub Command7_Click(Index As Integer) On Error GoTo errorhandler '允许错误发生 Select Case Index Case 0

Adodc1.Recordset.MoveFirst Case 1

Adodc1.Recordset.MovePrevious If Adodc1.Recordset.BOF Then

MsgBox \"第一条记录!\提示信息\" Adodc1.Recordset.MoveFirst End If Case 2

Adodc1.Recordset.MoveNext If Adodc1.Recordset.EOF Then

MsgBox \"最后一条记录!\提示信息\" Adodc1.Recordset.MoveLast End If Case 3

Adodc1.Recordset.MoveLast End Select Exit Sub

errorhandler: '允许错误发生的错误处理

Adodc1.RecordSource = \"select * from 预订记录\" Adodc1.Refresh

MsgBox \"刚刷新!请重试。\提示信息\" 'Resume Next End Sub

Private Sub Command8_Click()

Adodc1.RecordSource = \"select * from 预订记录\" Adodc1.Refresh End Sub 22 结算窗体

Private Sub cmd_exit_Click() Unload Me End Sub

Private Sub cmd_input_Click()

On Error GoTo errorhandler '允许错误发生 If Text1.Text = \"\" Then

MsgBox \"请输入客户号!\提示信息\" Text1.SetFocus Exit Sub End If

If IsNumeric(Text1.Text) = False Then '避免错误发生 MsgBox \"请输入数字!\提示信息\" Text1.Text = \"\" Text1.SetFocus Exit Sub End If

Adodc1.RecordSource = \"select * from 入住记录 where (备注='未退房') and (客户号= \" + Text1.Text + \")\" Adodc1.Refresh

If Adodc1.Recordset.RecordCount = 0 Then

MsgBox \"无此客户在住未退房记录!\提示信息\" Exit Sub End If

'DataGrid1.Visible = True '----------- 'For i = 0 To 3

'Command7(i).Visible = True 'Next i

'Command8.Visible = True

'Frame1.Visible = True '----------- cmd_jiesuan.Enabled = True Exit Sub

errorhandler: '允许错误发生的错误处理 If Err.Number = -2147217904 Then

MsgBox \"客户号输入错误,请输入长整型\提示信息\" Resume Next End If End Sub

Private Sub cmd_jiesuan_Click()

On Error GoTo errorhandler '允许错误发生 Adodc1.Refresh

Adodc1.Recordset.Fields(\"结算日期\") = Date Adodc1.Recordset.Fields(\"备注\") = \"已退房\" Adodc1.Recordset.Update

MsgBox \"结算成功!\提示信息\" cmd_jiesuan.Enabled = False

Adodc2.RecordSource = \"select * from 历史记录_cx3 where (客户号=\" + Text1.Text + \") \" Adodc2.Refresh

DataGrid1.Visible = False '------------ For i = 0 To 3

Command7(i).Visible = False Next i

Command8.Visible = True Frame1.Visible = False

DataGrid2.Visible = True '-------------- Exit Sub

errorhandler: '允许错误发生的错误处理 If Err.Number = -2147217904 Then

MsgBox \"客户号输入错误,请输入长整型\提示信息\" Resume Next Exit Sub End If End Sub

Private Sub Form_Load()

cmd_jiesuan.Enabled = False

'DataGrid1.Visible = False '----- 'For i = 0 To 3

'Command7(i).Visible = False 'Next i

'Command8.Visible = False 'Frame1.Visible = False

DataGrid2.Visible = False '------ End Sub

Private Sub Command7_Click(Index As Integer) On Error GoTo errorhandler '允许错误发生

Select Case Index Case 0

Adodc1.Recordset.MoveFirst Case 1

Adodc1.Recordset.MovePrevious If Adodc1.Recordset.BOF Then

MsgBox \"第一条记录!\提示信息\" Adodc1.Recordset.MoveFirst End If Case 2

Adodc1.Recordset.MoveNext If Adodc1.Recordset.EOF Then

MsgBox \"最后一条记录!\提示信息\" Adodc1.Recordset.MoveLast End If Case 3

Adodc1.Recordset.MoveLast End Select Exit Sub

errorhandler: '允许错误发生的错误处理 If Err.Number = 3021 Then

MsgBox \"无在住未结算记录。\提示信息\" Exit Sub End If End Sub

Private Sub Command8_Click()

Adodc1.RecordSource = \"select * from 入住记录 where (备注='未退房')\" Adodc1.Refresh

Adodc2.RecordSource = \"select * from 历史记录_cx3\" Adodc2.Refresh

DataGrid1.Visible = True DataGrid2.Visible = False Text1.Text = \"\" End Sub

23 退出系统窗体

Private Sub tcxt_Click()

sure = MsgBox(\"确定要退出系统吗?\提示信息\") If sure = vbOK Then End Else End If End Sub

因篇幅问题不能全部显示,请点此查看更多更全内容