2024年1月7日发(作者:辛树森)
旅游管理系统—毕业设计(论文)
旅游管理系统
1(选题背景
计算机软件开发在当代已成为一个主要的行业,发展前景越来越好,软件开发需求人员也越来越大,特别是数据库和信息管理方面的开发,更是供不应求。在毕业之即,作为计算机专业的学生,为了适应社会的需要,加强自己的编程能力.在毕业设计选题时,我坚定不移地选择了数据库应用系统开发方面的课题。下面将具体分析:
1.1 旅游资源前景
旅游业是当今国际国内发展最快的产业之一,也是世界各国相互了解、交流、,从而促进经济全球化的重要手段,所以各国政府都非常重视旅游业的发展.我国现代旅游业只有短短20年历史,但已经取得了举世瞩目的成绩:1992年国内旅游人次为3.3亿人次,收入250亿元;1999年达到7.19亿人次,收入2831亿元;2001年再创新高,达到7。44亿人次,收入3522.26亿元.1999年,我国国内国际旅游总收入超过了4000亿元人民币,创汇140亿美元,比1978年增长48倍。2000年,我国旅游人数和收入已经从1978年的世界第41位跃至前10名之列.在制定“十五"(2001至2005年)计划和2015年跨世纪发展规划中,中国有二十四个省把旅游作为在经济结构调整中优先发展的支柱产业、重点产业。按照规划,预计到2020年,中国旅游业总收入将超过3。3万亿元人民币,相当于国内生产总值的百分之八,真正成为国民经济的支柱产业。加入WTO以后旅游业成为了更加活跃、竞争更加激烈、发展更加迅速的第三产业的支柱之一。
现在,我国旅行社信息化建设落后,旅行社电脑的用途多数是打打字。线路销售手工操作,效率低下容易出错,客户资料不易整理,大量丢失,这些都是限制我们
旅游发展的瓶颈了。而目前市场的旅游管理软件,动辄几万元,远非我们所愿意承受的。旅游业普遍存在着企业规模较小,管理不规范等弱点.因为旅游涉及吃、住、行、游、购、娱等诸多要素,而且这些要素又分散在不同的地域中,一个人不可能全面掌握所有的信息。一旦掌握某方面的信息的人离开企业,就会对企业的经营造成负面影响。
旅游资源及线路管理系统可以把各种旅游资源分类存储管理,通过网络实现资源共享,不仅方便快捷,而且不会因为人员流动影响企业的经营,是旅游社在激烈的市场竞争中的坚强后盾。
1。2 数据库和信息管理系统前景
社会的进步,科学的发达,经济的高速发展,使管理工作越来越离不开信息,信息处理已成为当今世间上一项主要的社会活动.随着微型计算机日益增多,它在各行各业中得到迅速推广和应用,已经深入到社会的各个领域,计算机已经成为现代信息处理的重要工具。随之而来的就是各行各业对计算机应用软件的大量需求。
1.2。1 管理信息系统概念
管理信息系统(MIS,Management Information System),是一个由人、计算机等组成的能进行信息的收集、传送、储存、维护和使用的系统,能够实测企业的各种运行情况,并利用过去的历史数据预测未来,从企业全局的角度出发辅助企业进行决策,利用信息控制企业的行为,帮助企业实现其规划目标。这里给出的定义强调了管理信息系统的功能和性质,也强调了管理信息系统中的计算机对企业管理而言只是一种工具.管理信息系统是信息系统的重要分支之一,经过30多年的发展,已经成为一个具有自身概念、理论、结构、体系和开发方法的覆盖多学科的新学科.
信息管理者
信息源 信息处理 信息用户
图4.2。1 管理信息总体结构图
而数据和信息的结合在现代社会生活中表现出了越来越强大的功能和作用,数据已经渗透到了社会中的每一个角落和行业,与我们的生活息息相关。随着计算机的日益普及和网络的发展,数据库的应用范围越来越广,数据库应用的功能也越来越强。
1。2.2 数据库的基本概念
(1) 数据库
数据库(databa,简称DB),即数据的仓库,是存储在计算机内、有组织的、可共享的相关数据的集合。数据库中的数据按一定的数据模型组织、描述和存储,具有较小的冗余度、较高的数据独立性和扩展性,并可为各种用户共享。
数据库中的数据是高度结构化的,可以存储大量的数据,并且能够方便地进行数据的查询,另外数据库还具有较好的保护安全和维护数据一致性的措施,能够方便数据的共享.
(2) 数据库管理系统
数据库管理系统(databa management system,简称DBMS)是在操作系统支持下,为数据库的建立、使用和维护而配置的软件系统,数据库管理系统是位于用户与操作系统之间的一层数据管理软件,它在操作系统的基础上。对数据库进行管理和控制,利用数据库管理系统提供的一系列命令,用户能够方便地建立数据库和操作数据,比如建表、向表中添加、删除记录等。用户使用的各种数据库命令以及数据库应用程序的运行,都要通过数据库管理系统来实现。另外,数据库管理系统还要保证数据的安全性、完整性、多用户对数据库的并发使用及发生故障后的系统恢复等任务。
(3) 数据库应用程序
数据库应用程序是指用Visual Basic 或 Delphi等开发工具开发的程序,用来实现某种具体的功能,例如旅游资源及线路管理系统,各种信息管理系统等.数据
库应用程序 是在操作系统和数据库管理系统的支持下开发和运行的,它利用数据库管理系统提供的各种手段访问一个或多个数据库及数据.
由于旅游业的兴起和快速发展,需要一种高效、快速及方便地系统来管理整个旅游过程中的基本信息和资源,以减少人力、物力、时间等多方面资源的浪费,给企业或公司带来更多的利润,这就使得信息管理和数据库管理系统得到了充分的利用。
本旅游资源及线路管理系统就是计算机信息管理和数据库应用程序开发相结合的产物。
2(需求分析
2。1 软件的需求分析
软件需求分析是指用户对目标系统在功能、性能、行为、设计约束等方面的期望。
需求分析的任务是确定系统必须完成哪些工作,也就是对目标系统提出完整、准确、清晰、具体的要求.需求分析的结果是系统开发的基础,关系到工程的成败和软件产品的质量. 2。2 需求分析阶段对系统的综合要求有四个方面:
(1) 系统功能要求
应该划分出系统必须完成的所以功能.
(2) 系统性能要求
系统需要的存储容量以及后援存储,重新启动和安全性等方面的考虑都属于性能要求。
(3) 运行要求
这类要求集中表现为对运行时所处环境的要求.
(4) 将来可能提出的要求
应该明确地列出那些虽然不属于当前系统开发范畴,但是据分析将来很可能会提出来的要求。这样做的目的是在设计过程中对系统将来可能的扩充和修改预做,以便一旦需要时能比较容易地进行这种扩充和修改。
通过这些需求分析来确定整个系统的功能模块设计和界面的设置和安排。需求分析在整个软件开发设计中起着十分重要的作用。因此,在实际的工程中,应该接触产品的最终用户或者最终用户代表.缺乏这样的接触,对于许多需求问题,就无法得到可靠的回答。如果缺乏可靠的需求信息,就无法生产出高质量的产品。实际上,使用不可靠的需求信息,产品无疑是不能使用的,而且常常不是用户所想要的。
3(方案论证
3。1 技术可行性
旅游资源及线路管理系统的实现技术有多种,可以采用传统的客户机/服务器(C/S)型的MIS型架构.另外一种采用Web 技术实现。Web技术超越了传统的“客户机/服务器”两层结构,采用三层体系结构:用户界面层/事务层/数据库层。因此Web结构有着更好的安全性。在用户机上不需要安装任何应用程序,应用程序可以安装在事务层所在的计算机上,数据内容存放在数据库服务器上。
C,S模式是一种分布式的处理模式,用Server进行数据处理,用Client运行前端应用软件,具有如下特点:
(1)、系统的可靠性好,可以在网上方便地增加Client或Server,通常增加一个Client ,并不需要增加多少Server的开销。
(2)、C,S模式支持开放的Client接口和开放的Server接口,往往不依赖于硬件及操作系统平台,便于应用程序的移植。
(3)、由于C,S模式采用数据集中,处理分散的模式,主机模式下的DBMS数据完整性得以保留.
(4)、由于充当Client 的PC机,具有良好的图形界面和丰富的应用软件,使得它的表现能力强,访问数据十分容易。
从而,使C,S模式成为信息平台的发展趋势。
3.2 开发工具及开发平台的选择
本系统采用C/S模式(即客户机-服务器模式),用VB 作为应用程序的前端开发工具,与后端的SQL Server2000数据库相结合的方式来完成。再加上VB作为一种面向对象的可
视化编程工具,具有简单易学,灵活方便和易于扩充的特点。VB通过配置ODBC数据库连接到SQL Server 2000数据库,再通过ADO、RDO和DAO对这些数据进行访问和操作,这更有便于数据的管理和安全。
3.3 采用SQL Server 2000 数据库的优点
SQL可用于所有用户的DB活动模型,包括系统管理员、数据库管理员、应用程序员、决策支持系统人员及许多其它类型的终端用户。基本的SQL命令只需很少时间就能学会,最高级的命令在几天内便可掌握.
SQL为许多任务提供了命令,其中包括:
查询数据 ?
? 在表中插入、修改和删除记录
? 建立、修改和删除数据对象
? 控制对数据和数据对象的存取
? 保证数据库一致性和完整性
以前的数据库管理系统为上述各类操作提供单独的语言,而SQL将全部任务统一在一种语言中。
4(服务器与客户端配置
要以SQL Server2000为后台数据库开发应用程序,首先要对服务器与各户端进行配置。本节将简单地介绍如何配置SQL Server2000服务器和ODBC数据源.
4。1启动、暂停和停止SQL Server2000
在缺省情况下,SQL Server2000安装完成后,“服务管理器”会自动地添加到系统的“启动”文件夹中,即在系统启动后,自动运行SQL Server2000服务管理器,可以在系统任务栏中看到它的图标。
双击图标,打开SQL Server2000服务管理器.
在服务管理器,可以选择服务器所在的计算机和SQL Server2000服务,同时可以很轻松地控制SQL Server2000服务。选中“当启动OS时自动启动服务”复选框,即可关现自动启动服务功能。
也可以在“企业管理器"中设置自动启动SQL Server2000服务。单击“开始”按钮,依次选择“程序"/“SQL Server2000”/“企业管理器”,打开SQL
Server2000企业管理
器。
企业管理器可以帮助用户完成以下工作:
? 定义SQL Server实例组;
? 将个别服务器注册到组中;
? 为每个已注册的服务器配置所有SQL Server选项;
? 在每个已注册的服务器中创建并管理所有SQL Server数据库、对象、登录、用户和权限;
? 在每人已注册的服务器上定义并执行所有SQL Server管理任务;
? 通过唤醒调用SQL查询分析器,交互地设计并测试SQL语句、批处理和脚本;
唤醒调用SQL Server定义的各种向导。 ?
4.2配置ODBC数据源
本书所介绍的应用程序实例都是通过配置ODBC数据源连接到SQL Server2000数据库的.数据源是一个存储定义,它可以记录以下信息:
? 连接到数据源所使用的ODBC驱动程序。
? ODBC驱动程序连接到数据源所使用用的信息;
? 连接所使用的驱动程序特有的选项。例如,SQL Server ODBC数据源可以记录要使用的SQL_92选项,或者驱动程序是否应记录性能统计.
客户端上的每个ODBC数据源都有一个唯一的数据源名称(DSN)。SQL
ServerODBC驱动程序的ODBC数据源包含用于连接到SQL Server实例的全部信息以及任何基本选项。
SQL Server使用ODBC数据源ODBC数据源.在“控制面板"中,选择“管理工具"下的“数据源(ODBC)”,启动ODBC数据源管理器。单击“驱动程序”选项卡,可以看到系统统安装的所有ODBC驱动程序,从中可以找到SQL Server的信息,并查看SQL Server2000的版信息。
我们可以按照以下方式将SQL Server2000数据库添加到ODBC数据源中。
1( 单击“系统DSN”选项卡,进入系统数据源页面。
2( 单击“添加”按钮,打开“创建新数据源"对话框.
3( 在驱动程序列表中,选择SQL Server,然后单击“完成"按钮,打开“创建
数据源向导”窗口.输入数据源名称、说明和SQL Server服务器。
4( 单击“下一步”,打开设置身份验证窗口,根据数据库的具体设置选择身份验
证方式,通常需要选择“使用用户输入登录的SQL Server验证”,然后手动地输入登录
ID(例如sa)和密码。
5( 单击“下一步”按钮,打开设置数据库选项对话框.在选择的SQL Server数据库上,存在多个数据库,默认的数据库是master,用户可以选择自怀创建的数据库,如newdb.用户还可以在指定服务器中添加数据库,选中“附加数据库文件名称”复选框,为可附加的数据库指定主文件名。这个数据库被附加并用作数据源的默认数据库。请指定主文件的完全路径名和文件名,并在“更改默认的数据库为"框中指定的数据库名字,用作附加数据库的名字.
6( 单击“下一步”按钮,进入数据源向导的下一个窗口。在这个窗口中,用户可以批暄用于SQL Server消息的语言、字符设置转换和SQL Server驱动程序是应当使用区域设置.还可以控制运和运行时间较长的查询和驱动程序统计设置的记录。
7( 单击“完成”按钮,数据源向导会弹出一个总结报告,汇总此数据源的所有信息,包括SQL ServerODBC驱动程序版本、数据源名称、数据源描述、服务器名称、数据库、语言、是否转换字符数据、日志驱动程序、使用集成安全机制、使用区域设置、预定义的语句选项、使用备用服务器、使用ANSI的空值,填充和警告以及数据加密等。
8( 单击“测试数据源"按钮,可以栓查数据源配置是否成功。
5(系统总体设计规划
在通过以上的需求分析、方案论证、开发工具及开发平台的选择、服务器与客户端配置,
一切开发前的就绪工作做好以后,我们就可以进入系统的总体开发和设计了.下面主要介绍
系统的总体设计和规划.
5.1 系统功能描述
本系统所描述的旅游资源及线路管理的主要功能包括:
(1) 地域信息管理功能
? 地域信息的录入,包括地域名称和地域类型等信息;
? 地域信息的修改;
? 地域信息的删除;
? 地域信息的查询。
(2) 景点资源管理功能
? 景点资源的录入,包括景点编号、景点名称、联系人、票价等信息;
? 景点资源的修改;
? 景点资源的删除;
? 景点资源的查询。
(3) 宾馆资源管理功能
? 宾馆资源的录入,包括宾馆编号、宾馆名称、联系人、报价等信息;
? 宾馆资源的修改;
? 宾馆资源的删除;
? 宾馆资源的查询。
(4) 餐厅资源管理功能
? 餐厅资源的录入,包括餐厅编号、餐厅名称、联系人、报价等信息;
? 餐厅资源信息的修改;
? 餐厅资源信息的删除;
? 餐厅资源信息的查询。
(5) 娱乐资源管理功能
? 娱乐资源信息的录入,包括娱乐厅编号、娱乐厅名称、联系人、报价等信息;
? 娱乐资源信息的修改;
? 娱乐资源信息的删除;
? 娱乐资源信息的查询。
(6) 交通资源管理功能
? 火车资源信息管理;
? 飞机资源信息公里。
(7) 旅游线路管理功能
? 旅游线路信息的录入,包括线路编号、线路名称、报价等信息;
? 旅游线路信息的修改;
? 旅游线路信息的删除;
? 旅游线路信息的查询.
(8) 系统用户管理功能
? 系统用户信息的录入,包括用户名、密码等信息;
? 系统用户信息的修改;
? 系统用户信息的删除;
? 系统用户信息的查询.
5.2 功能模块划分
从功能描述的内容可以看到,本系统可以实现其完整的功能.根据这些功能,设计出的
系统功能模块如下图5.2所示。
旅游资源及线路管理系统
地 景餐娱交旅系宾
域 点 厅 乐 通 游 统馆
信资资资资线用资
息源源源源路户源
管管管管管管管管
理 理 理 理 理 理 理 理
火飞
车机
资资 源源
管管
理 理
图5.2 旅游资源及线路管理系统功能模块示意图
在功能模块示意图的树状结构中,每一个叶结点都是一个最小的功能模块。每一个功能模块都需要针对不同的表完成相同的数据库操作,即添加记录、修改记录、以及查询显示记录信息.
旅游资源及线路管理系统的功能模块之间的关系如图5。2。1所示。
旅游线路管理 提供数据
提供数据 提供数据 线路地域数据 提供数据 提供数据 线路景点数据 景点资源管理 地
线路域 提供数据 提供数据 线路宾馆数据 宾馆资源管理 报价信 提供数据
提供数据 及成息线路用餐数据 餐厅资源管理 本预管
算 理 提供数据 提供数据 线路娱乐数据 娱乐资源管理
线路交通数据 交通资源管理
其他线路数据
图5.2.1旅游资源及线路管理系统的功能模块关系图
从模块关系图中可以看出,旅游资源信息除了供用户查阅外,不可以为旅游线路管理提供数据。当用户需要生成一条旅游线路时,可以从旅游资源里取到最新的数据。线路报价和成本预算也会随着资源的变化而变化。
5。3 系统流程分析
了解了系统的功能模块划分,以及各模块之间的关系。这是系统总体设计的重要组成部分。如果对系统形成一个完整而全面的认识,还需要进行系统流程分析。
所谓系统流程就是用户在使用系统时的工作过程。多用户系统的工作流程都是从用户登录模块开始,对用户的身份进行认证.身份认证可以分为以下两个过程:
(1) 确认用户是否有效的系统用户;
(2) 确定用户的类型。
第1个过程决定用户能否进入系统.第2个过程根据用户的类型决定用户的操作权限,从而决定用户的工作界面。
本系统的流程分析如图5.3所示。
开始 重试
否
失败 是
用户登录 失败超过3次 退出程序
成功
用户管理模块 旅游资源及线路管理模块
读取用户类型 1管理自己的用户信息 旅游资源管理 2管理普通用户的信息
Admin用户
旅游线路管理
管理自己的用户信息
5。3系统流程分析图
从系统流程分析图中可以看到,每个用户有3次机会进行身份认证.如果3次输入的用户名和密码都无法与数据库中的数据匹配,则强制退出系统。
5.4 数据库设计
5。4。1 创建数据库表:
数据库Travel中包含以下16个表:地域信息表Area、景点资源信息表Place、宾馆资源信息表Hotel、餐厅资 源信息表Restaurant、娱乐厅资源 信息表Amument、娱乐项目资源信息表AmuItem、火车资源信息表Train、飞机资源信息表Plane、线路基本信息表tline、线路景点信息表lplace、线路宾馆信息表lHotel、线路用餐信息表lRes、线路娱
乐信息表lamu、线路火车信息表ltrain、线路飞机信息表lplane、用户信息表Urs。在本系统中因为要用到标识符自动增加,在这里我们不使用企业管理器来创建表,而使用脚本文件创建数据表,这对后面的设计有很大的帮助和方便作用。
(1) 创建表Area
创建表Area的脚本文件为,它的代码如下:
create table Area
(AreaId int primary key identity,
AreaName varchar(40) not null,
AreaType smallint not null
)
在使用create talbe指令创建表时,应该注意使用Primary key关键字定义表的主键。表中每一行的主键都有唯一值,可以使用主键惟一地标识一行数据.
(2) 创建表Place
创建表Place的脚本文件为Place。sql,它的代码如下:
create table place
(Pid int primary key identity,
Pname varchar(200) not null,
Contact varchar(100),
Phone varchar(100),
Address varchar(100),
Postcode varchar(10),
Adult_price Decimal(10,2),
Child_price Decimal(10,2),
AreaId int,
Input_time char 17
)
在使用create table 指令创建表时,应该注意使用identity关键字定义表的标识列。Identity属性可以用于获得自动增加的标识号。例如,表place中的Pid字段是标识列,对于新插入表中的记录,它的Pid字段将获得一个自动分配的整型值。对于很多表中都使用的惟一编号列,通常可以使用identity定义。
(3) 创建表Hotel
创建表Hotel的脚本文件为,它的代码如下:
create table Hotel
(Hid int primary key identity,
Hname varchar(200) not null,
Hlevel varchar(40),
Contact varchar(100),
Phone varchar(100),
Address varchar(100),
Postcode varchar(100),
Price1 Decimal (10,2),
Price2 Decimal (10,2),
Price3 Decimal (10,2),
Price4 Decimal (10,2),
AreaId int,
Input_time char 17
)
在使用create table 指令创建表时,应该注意使用not null关键字定义表的末空字段。使用not null定义的字段将不允许为空,这样就可以避免表中出现无效的数据,影响系统运行。例如,表Hotel中的Hname字段将不能为空,否则在系统的宾馆名称列表中将出现一个空.
(4) 创建表Restaurant
创建表Restaurant的脚本文件Restaurant。sql,它的代码如下:
create table Restaurant
(Rid int primary key identity,
Rname varchar(200) not null,
Rlevel varchar(40),
Contact varchar(100),
Phone varchar(100),
Address varchar(100),
Postcode varchar(10),
Breakfast decimal(10,2),
Dinner decimal(10,2),
AreaId int,
Input_time char(17)
)
(5) 创建表Amument
创建表Amument的脚本文件为,它的代码如下:
create table Amument
(Aid int primary key identity,
Aname varchar(200) not null,
Contact varchar(100),
Phone varchar(100),
Address varchar(100),
Postcode varchar(10),
AreaId int,
Input_time char(17)
)
(6) 创建表AmuItem
创建表AmuItem的脚本文件为AmuItem。sql,它的代码如下:
create table AmuItem
(Iid int primary key identity,
Aid int,
Item varchar(50) not null,
Price decimal(10,2),
Input_time char(17)
)
(7) 创建表Train
创建表Train的脚本文件为Train。sql,它的代码如下:
create table Train
(Tid int primary key identity,
Tno varchar(20) not null,
Sstation varchar(40),
Estation varchar(40),
Stime varchar(40),
Etime varchar(40),
PriceYz decimal(7,2),
PriceRz decimal(7,2),
PriceYw decimal(7,2),
PriceRw decimal(7,2),
Input_time char(17)
)
(8) 创建表Plane
创建表Plane的脚本文件为,它的代码如下:
create table Plane
(Pid int primary key identity,
AirCom varchar(50) not null,
Pno varchar(20) not null,
SairPort varchar(40),
EaiPort varchar(40),
Stime varchar(40),
Etime varchar(40),
Price1 decimal(7,2),
Price2 decimal(7,2),
Cycle char(7),
Input_time char(17)
)
(9) 创建表tline
创建表tline的脚本文件为,它的代码如下:
create table tline
(lid int primary key ,
lname varchar(50),
lday smallint,
ltype smallint,
insCom varchar(40),
insFee decimal(8,2),
oterCost decimal(8,2),
tourPay decimal(8,2),
benefit decimal(8,2),
AreaId int
)
(10) 创建表lplace
创建表lplacee的脚本文件为lplace。sql,它的代码如下:
create table lplace
(lid int not null,
Pid int not null
)
(11) 创建表lhotel
创建表lhotel的脚本文件为,它的代码如下:
create table lhotel
(lid int not null,
hid int not null,
rType tinyint,
rdays tinyint
)
(12) 创建表lres
创建表lres的脚本文件为lres。sql,它的代码如下:
create table lres
(lid int not null,
rid int not null,
rType tinyint,
rTimes tinyint
)
(13) 创建表lamu
创建表lamu的脚本文件为lamu。sql,它的代码如下:
create table lamu
(lid int not null,
Iid int not null,
aTimes tinyint
)
(14) 创建表ltrain
创建表ltrain的脚本文件为,它的代码如下:
create table ltrain
(lid int not null,
direct int not null,
tid tinyint not null,
rType tinyint
)
(15) 创建表lplane
创建表lplane的脚本文件为,它的代码如下:
create table lplane
(lid int not null,
direct tinyint not null,
pid int not null
)
(16) 创建表Urs
创建表Urs的脚本文件为Urs。sql,它的代码如下:
create table Urs
(UrName varchar(40) primary key,
Pwd varchar(40) not null,
EmpName varchar(40)
)
在查询分析器中打开这些sql文件,然后单击运行图标,就可以在数据库中创建相应的表。
5.5数据库访问
5。5.1 ODBC 数据库访问技术
ODBC(Open Databa Connectivity,开放数据库互连)是Microsoft公司开放服务结构中有
关数据库的一个组成部分,它建立了一组规范,并提供了一组对数据库访问的标准API(应
用程序编程接口).这些API利用SQL来完成其大部分任务.ODBC本身也提供了对SQL
语言的支持,用户可以直接将SQL语句送给ODBC.
一个基于ODBC的应用程序对数据库的操作不依赖任何DBMS(数据库管理系统),不
直接与DBMS打交道,所有的数据库操作由对应的DBMS的ODBC驱动程序完成.也就是
说,不论是FoxPro、Access还是SQL Server 2000数据库,均可用ODBC API进行访问。由
此可见,ODBC的最大优点是能以统一的方式处理所有的数据库。
一个完整的ODBC由下列几个部分组成.
? 应用程序(Application);
? ODBC管理器(Administrator)。该程序位于Windows控制面板的32位ODBC内,
其主要任务是管理ODBC驱动程序和数据库;
? 驱动程序管理器(Driver Manager)。驱动程序管理起包含在ODBC32。DLL中,对
用户是透明的。其任务是管理ODBC驱动程序,是ODBC中最重要的部件; ?
ODBC API;
ODBC驱动程序。它是一些DLL,提供了ODBC和数据库之间的接口; ?
? 数据源。数据源包含了数据库位置和数据库类型等信息,实际上是一种数据连接
的抽象。
各部件之间的关系如图5.5所示。
数据源名 应用程序
(DNS)
应用层
ODBC ODBC API
管理器 SQL
驱动程序
管理器
ODBC 驱动程序
ODBC层 数据源 Data Source
数据层
图5.5 ODBC各部件关系图
应用程序要访问一个数据库,首先必须用ODBC管理器注册一个数据源,管理器根据数据源提供的数据库位置、数据库类型及ODBC驱动程序等信息,建立起ODBC与具体数据库的联系.这样,只要应用程序将数据源名提供给ODBC就能建立起与相应数据库的连接。
5。5.2 数据库访问控件
在使用Visual Basic开发数据库应用程序的时候,会经常使用数据库访问控件.这些控件包括:
? Data控件;
? ADO Data控件;
? DataList控件/DataCombo控件;
? DataGrid控件;
? MSChart控件。
5.6 功能模块规划
窗体、模块和类模块是Visual Basic的重要资源.它们在程序设计中具有不可替代的作用。设计好它们之间的功能,使用它们能够协调合作,对于开发数据库应用程序是非常重要的。
窗体是Visual Basic程序中比不可少的资源。它可以实现工程的外观显示,添加程序代码,实现需要的功能。窗体文件通常直接存放在应用程序的目录下。
模块可以用来管理全局常量、变量和用户自定义函数等。
用户可以在类模块中创建自定义类。本实例中约定,数据库的每个表都对应一个类模块。类的成员变量对应表中的每个列,类的成员函数则是对表的各种操作.
5.6.1添加模块
根据Visual Basic功能模块的划分原则,我们将分别创建以下几个模块。
?Const 用来管理工程中的常量。
?DbFunc 用来管理工程中与数据库操作相关的声明、变量和函数。
?GeneralFunc 用来管理工程中一些通用的自定义函数。
?Variable 用来管理工程中的全局变量。
5.6.2 添加类模块
根据Visual Basic功能模块的划分原则,为每一个表创建一个类模块,将对此表的所有数据库操作封装在类中.
在通常情况下,类的成员变量与对应的表中的字段名相同。由于绝大多数成员函数的编码格式都是非常相似的,只是所使用的SQL语句不同,所以只说明类中成
员函数的功能,并不对所有的成员函数进行具体的代码分析.下面就Area类来说明类模块成员函数。
Area类的成员函数
函数名 具体说明
Init 初始化成员变量
Delete 删除指定的地域记录。参数TmpId表示要删除的地域编号
GetId 根据指定的地域名读取地域编号。参数TmnName表示要读取的地域名称
GetInfo 读取指定的地域记录。参数TmpId表示要读取的地域编号
In_DB 判断指定的地域名称是否已经在数据库中。参数TmpName表示指定地域名
Inrt 插入新的地域记录
将所有的地域数据读取到数组中。为了便于使用,此过程按照地域的分类将Load_Area 地域分别装入到数组d1()、d2()、d3()中
Update 修改指定的地域记录。参数TmpId表示要修改的地域编号 具体的模块代码和类模块成员函数的代码不一一说明。
5。7 系统主界面设计
5.7。1设计主界面
图5.7。2参照表5.7.1设置主界面窗体的属性。
表5。7。1 设置主窗体的属性
窗体属性 设置值 具体说明
FrmMain 名称 设置窗体名称
BorderStyle 1—Fixed Single 设置窗体的边框属性
Caption 旅游资源及线路管理系统 窗体的标题条文本
MaxButton Fal 取消最大化按钮
MinButton True 激活最小化按钮
Picture 设置窗体背景
StartUpPosition 2-屏幕中心 设置窗体位于屏幕中心
本实例的主界面如图5。7。1所示。
图5.7。2旅游资源及线路管理系统主界面
5.7。2在主界面中添加代码
因为系统的其他功能还没有实现,所以只能添加退出系统的代码。其他的代码将在相应的功能实现后再添加到窗体中.
当用户单击lblExit按钮时,将执行lblExit_Click()过程,退出系统。代码如下:
Private Sub lblexit_Click()
DBapi_Disconnect
End
End Sub
5。8 登录模块设计
用户要使用本系统,首先要同过系统的身份认证,这个过程叫做登录.登录过程需要完成以下任务:
? 根据用户名和密码来判断是否可能进入系统;
? 根据用户类型决定用户拥有的权限。
5。8.1 设计登录窗体
创建一个新窗体,设置窗体名为FrmLogin。登录窗体的布局如图5。8所示。
5.8。2 在登录窗体中添加代码
其中的Cmd_Ok按钮的代码如下:
Private Sub Cmd_OK_Click()
Dim j As Single
'数据有效性检查
If txtUr = ”” Then
MsgBox "请输入用户名”
us
Exit Sub
End If
If txtPwd = ”" Then
MsgBox ”请输入密码"
us
Exit Sub
End If
NameKey = MakeStr(txtUr)
PasswordKey = MakeStr(txtPwd)
’判断用户是否存在
If MyUr。In_DB(NameKey) = Fal Then
MsgBox ”用户名不存在”
Try_times = Try_times + 1
If Try_times >= 3 Then
MsgBox ”您已经三次尝试进入本系统,均不成功,系统将关闭”
DBapi_Disconnect
End
El
Exit Sub
End If
End If
’判断密码是否正确
o (NameKey)
If <〉 PasswordKey Then
MsgBox ”密码错误”
Try_times = Try_times + 1
If Try_times 〉= 3 Then
MsgBox ”您已经三次尝试进入本系统,均不成功,系统将关闭”
DBapi_Disconnect
End
El
Exit Sub
End If
End If
'登录成功,将当前用户的信息保存在CurUr中
CurUr。GetInfo (MyUr。UrName)
’关闭自己
Unload Me
End Sub
5.9 旅游地域资源管理模块设计
地域管理模块可以实现以下功能:
? 添加地域信息;
? 修改地域信息;
? 删除地域信息;
? 查看地域信息。
5.9。1 设计旅游地域资源编辑窗体
编辑地域信息的窗体可以用来添加和修改地域信息。创建一个新窗体,窗体设置为FrmAreaEdit。
窗体FrmAreaEdit的布局如图5.9所示。
图5。9 窗体FrmAreaEdit的布局
下面分析窗体FrmAreaEdit中部分过程的代码。
1( 全局变量Modify
变量Modify用来标记当前的数据库访问状态。当Modify=True时,表示修改已有的数据,当Modify=Fal时,表示插入新的数据;变量OriId表示当前编辑地域数据的地域编号;变量OriAreaName表示当前编辑地域数据的原有地域名称;变量OriType表示当前编辑地域数据的原有地域类别.
2( Cmd_OK_Click过程
当用户单击“确定”按钮时,将触发Cmd_Ok_Click事件,对应的程序代码如下:
Private Sub Cmd_OK_Click()
’检查用户输入的地域数据是否有效
If Check = Fal Then
Exit Sub
End If
With MyArea
’把用户输入的地域数据赋值到MyArea对象的成员变量中
.AreaName = MakeStr(txtAreaName)
。AreaType = CurType
'判断地域名称是否存在
If Modify = Fal Or OriAreaName <〉 Trim(txtAreaName) Then
If 。In_DB(MakeStr(txtAreaName)) = True Then
MsgBox ”地域名称已经存在,请重新输入”
us
txtAreaName。SelStart = 0
txtAreaName。SelLength = Len(txtAreaName)
Exit Sub
End If
End If
’根据变量Modify的值,决定是插入新数据,还是修改已有的数据
If Modify = Fal Then
。Inrt
El
.Update (OriId)
End If
End With
’关闭窗体
Unload Me
End Sub
在上面的程序段中,分别对插入地域数据和修改地域数据两种情况进行处理.插入数据
时使用()过程,修改数据时调用Area。Update()过程.
5。9.2 设计旅游地域资源管理窗体
创建一个新窗体,窗体名称设置为FrmAreaMan.
窗体FrmAreaMan的布局如图5。9.2所示. 下面分析窗体FrmAreaMan中部分过程的代码。
( Loadarea过程 1
Loadarea过程的功能是从数据库中读取不同类型的地域数据,并根据用户的选择把指定
类别的地域名称添加到List1中.对应的代码如下:
Private Sub Loadarea()
Dim i As Integer
List1。Clear
_Area
'本市地域
If = True Then
Do While d1(i) 〈〉 ""
List1。AddItem d1(i) '把本市地域添加到List1列表框中
i = i + 1
Loop
End If
'外埠地域
If = True Then
Do While d2(i) 〈〉 ””
m d2(i) '把外埠地域添加到List1列表框中
i = i + 1
Loop
End If
’国外地域
If Option3。Value = True Then
Do While d3(i) 〈> ””
List1。AddItem d3(i) '把国外地域添加到List1列表框中
i = i + 1
Loop
End If
End Sub
ea过程的作用是将地域名称按照类别读取到全局数组d1()、d2()和d3()
中。
2( DeleteCheck过程
当用户要删除地域数据时,程序将调用DeleteCheck()函数,判断当前选择的地域是否
可以删除,对应的代码如下:
Private Function DeleteCheck(ByVal TmpId As Long) As Integer
Dim TmpName As String
'旅游娱乐厅资源地域数据检查
TmpName = MyPlace。AreaInPlace(CurAreaId)
If TmpName <〉 "” Then
DeleteCheck = -1
MsgBox "当前地域信息在娱乐厅 — ” + TmpName + " - 中使用,为保证数据的完整
性,不允许删除此地域.”
Exit Function
End If
’旅游宾馆资源地域数据检查
TmpName = Hotel(CurAreaId)
If TmpName <> "” Then
DeleteCheck = —1
MsgBox ”当前地域信息在宾馆 - " + TmpName + ” - 中使用,为保证数据的完整
性,不允许删除此地域."
Exit Function
End If
'旅游用餐资源地域数据检查
TmpName = Res(CurAreaId) If TmpName <〉 "” Then
DeleteCheck = —1
MsgBox ”当前地域信息在餐厅 — " + TmpName + ” - 中使用,为保证数据的完整
性,不允许删除此地域.”
Exit Function
End If
'旅游娱乐资源地域数据检查
TmpName = Amu(CurAreaId)
If TmpName <> ”” Then
DeleteCheck = —1
MsgBox ”当前地域信息在娱乐厅 - " + TmpName + ” — 中使用,为保证数据的完整
性,不允许删除此地域.”
Exit Function
End If
'旅游线路地域数据检查
TmpName = Line(CurAreaId)
If TmpName 〈〉 "” Then
DeleteCheck = —1
MsgBox ”当前地域信息 -在线路— " + TmpName + ” — 中使用,为保证数据的完整
性,不允许删除此地域。"
Exit Function
End If
'通过检查,可以删除当前地域
DeleteCheck = 0
End Function
为了维护数据库结构的完整性,在删除数据时,往往需要进行数据库完整性的判断.地
域数据是本系统中最基本的数据,与很多表存在联系。所以在删除地域数据时,需要在其他
表中进行判断,如果要删除的地域存在于其他表中,则不能删除,因为删除此地域会造成其
他表的数据不完整。
3( Form_Load过程
当装入窗体FrmAreaMan时,将触发Form_Load事件,对应的代码如下:
Private Sub Form_Load()
'将当前地域类型设置为“本市"
Option1。Value = True
'装入数据
Loadarea
End Sub
4( Cmd_Modi_Click过程
当用户单击“修改”按钮时,将触发Cmd_Modi_Click事件,对应的代码如下:
Private Sub Cmd_Modi_Click()
'判断是否选择了要修改的地域
If List1。ListIndex < 0 Then
MsgBox "请选择要修改的地域”
Exit Sub
End If
’修改本市地域
If Option1。Value = True Then
e = 1
FrmAreaEdit。lblAreaType = ”本市"
End If
'修改外埠地域
If = True Then
e = 2
aType = "外埠”
End If
’修改国外地域
If = True Then
e = 3
aType = "国外"
End If
’将变量Modify设置设置为Fal,表示插入新数据
= True
'设置全局变量
FrmAreaEdit。OriAreaName = List1。Text
aName = List1。Text
FrmAreaEdit。OriId = CurAreaId
’启动编辑地域信息的窗体
FrmAreaEdit。Show 1
'修改后重新装入地域数据
Loadarea
End Sub
5( Cmd_Del_Click过程
当用户单击“删除"按钮时,将触发Cmd_Del_Click事件,对应的代码如下:
Private Sub Cmd_Del_Click()
'判断是否选择了要删除的地域
If List1。ListIndex < 0 Then
MsgBox "请选择要删除的地域”
Exit Sub
End If
'调用DeleteCheck()函数,判断选择的地域是否可以删除
If DeleteCheck(CurAreaId) = —1 Then
Exit Sub
End If
'询问是否可以删除地域
If MsgBox("是否删除当前地域?", vbYesNo, "请确认”) = vbYes Then
(CurAreaId)
Loadarea
End If
End Sub
5。10 景点资源管理模块设计
景点资源管理模块可以实现以下功能:
? 添加景点资源信息;
? 修改景点资源信息;
? 删除景点资源信息;
? 查看景点资源信息。
5.10。1 设计景点资源编辑窗体
创建一个新窗体,窗体名称设置为FrmPlaceEdit。窗体FrmPlaceEdit的布局如图6。10
所示。
图5。10 窗体FrmPlaceEdit的布局
下面分析窗体FrmPlaceEdit中各个过程的代码.
1( Form_Load过程
当FrmPlaceEdit窗体启动时,将触发Form_Loade事件,对应的代码如下:
Private Sub Form_Load()
m ("本市")
ComboType。AddItem (”外埠")
m ("国外")
dex = OriType — 1
Call Loadarea(OriType, ComboName)
If InCombo(OriAreaName, ComboName) = True Then
ComboName。Text = OriAreaName
End If
End Sub
2( Cmd_Ok_Click()过程
当用户单击“确定”按钮时,将触发Cmd_OK_Click事件,对应的代码如下:
Private Sub Cmd_OK_Click()
'检查用户输入的地域数据是否有效
If Check = Fal Then
Exit Sub
End If
With MyPlace
'把用户输入的地域数据赋值到MyPlace对象的成员变量中
。Pname = MakeStr(txtPlace)
。Contact = MakeStr(txtContact)
.Phone = MakeStr(txtPhone)
.Address = MakeStr(txtAddress)
。Postcode = MakeStr(txtCode)
。Adult_price = Val(txtAdult)
。Child_price = Val(txtChild)
.AreaId = (ComboName)
’判断景点名称是否存在
If Modify = Fal Or OriPlaceName 〈〉 Trim(txtPlace) Then
If .In_DB(MakeStr(txtPlace)) = True Then
MsgBox ”景点名称已经存在,请重新输入"
us
txtPlace。SelStart = 0
gth = Len(txtPlace)
Exit Sub
End If
End If
'根据变量Modify的值,决定是插入新数据,还是修改已有的数据
If Modify = Fal Then
。Inrt
El
。Update (OriId)
End If
End With
’关闭窗体
Unload Me
End Sub
5.10.2 设计景点资源管理窗体
创建一个新窗体,窗体名称设置为FrmPlaceMan。参照表5.10。2添加并设置控件的属
性.
表5。10.2 窗体FrmPlaceMan包含的控件及属性
对象名 属性 属性值
ConnectionString DSN=Travel Adodc1 Password Sa
UrName Sa
RecordSource SELECT*FROM Place
Visible Fal
DataGrid1 DataSource Adodc1 Cmd_Add Caption 添加
Cmd_Modi Caption 修改
Cmd_Del Caption 删除
Cmd_Clo Caption 关闭
窗体FrmPlaceMan的布局如图5。10所示。
下面分析窗体FrmPlaceMan中几个过程的代码。
1( Refresh_Place过程
Refresh_Place()过程的功能是为Adodc1控件设置数据源,从而决定在DataGrid1控件
显示的数据内容,对应的代码如下:
Private Sub Refresh_Place()
’设置数据源
Source = "SELECT me 所在地域, As 景点名称," _
+ ” p。Contact As 联系人, p。Phone As 联系电话, s As 通信地址," _
+ ” de As 邮政编码, _Price As 成人票价," _
+ ” _Price As 儿童票价, _time As 录入时间” _
+ " FROM Place p, Area a WHERE =" _
+ " And a。AreaName=’” + Trim() + ”’”
Adodc1。Refresh
End Sub
因为在DataGrid1控件中要显示的数据内容联系到了数据库中的两个表,这就是在数据库中所说地表的连接查询.要选择两个不同的表,需要找到一个两个表都相同的公共部分,这样才能使两个表建立起一定的关系。在本例中,Area表和Place表是通过AreaId字段来建立连接关系的.但我们在操作的时候好象并没有对AreaId进行实际操作。这里用到了前面所说地在创建表的脚本文件时, 使用IDENTITY关键字定义表的标识列,IDENTITY属性可以用于获得自动增加的标识号.然后通过place 。AreaId = (ComboName)语句把自动获得的标识号赋值到place表中的AreaId字段中.这样就可以使我们在实际应用中减少许多复杂地考虑过程,这种方法在后面的实例中也经常用到.
2( Cmd_Modi_Click事件
当用户单击“修改"按钮时,将触发Cmd_Modi_Click事件,对应的代码如下:
Private Sub Cmd_Del_Click()
Dim TmpId As Long
’判断是否选择了要删除的记录
If = True Then
MsgBox ”请选择记录"
Exit Sub
End If
’确定当前选择记录的位置
p = Adodc1。Recordt。AbsolutePosition
’读取当前行的景点编号,因为要以此编号做为删除景点的关键字
TmpId = (Trim(Adodc1。(1)))
’判断当前记录是否出现在线路中
If nLine(TmpId) > 0 Then
MsgBox "此景点在线路中使用,不能删除”
Exit Sub
End If
’确认删除
If MsgBox("是否删除当前行?", vbYesNo, ”确认") = vbYes Then
(TmpId)
Refresh_Place
If p - 1 〉 0 Then
Adodc1。 p - 1
End If
End If
End Sub
Private Sub Cmd_Modi_Click()
'判断是否选择了记录
If Adodc1。Recordt。EOF = True Then
MsgBox "请选择记录”
Exit Sub
End If
’确定当前选择记录的位置
p = Adodc1。Recordt。AbsolutePosition
'地域信息
aName =
FrmPlaceEdit。OriType = ComboType。ListIndex + 1
'景点编号
FrmPlaceEdit。OriId = (Adodc1。(1))
’景点名称
ceName = Trim((1))
ce = Trim(Adodc1。Recordt。Fields(1))
'联系人
FrmPlaceEdit。txtContact = Trim(t。Fields(2))
’联系电话
ne = Trim((3))
'通信地址
ress = Trim(Adodc1。(4))
'邮政编码
e = Trim(Adodc1。Recordt。Fields(5))
'成人报价
FrmPlaceEdit。txtAdult = Trim(Adodc1。Recordt。Fields(6))
’儿童报价
FrmPlaceEdit。txtChild = Val(Adodc1。(7))
'把变量Modify设置为True,表示当前状态为修改已有记录
FrmPlaceEdit。Modify = True
1
'修改完成,刷新显示内容
Refresh_Place
p
End Sub
使用DataGrid控件显示数据的一种常用的方法,它的特点是简单直观,一目了然.DataGrid控件只能用来显示数据,数据源由ADO Data控件提供。可以通过et。Fields(n)读取结果集中的字段数据,n是字段的序号,第1个字段的序号
。 为0
5。11宾馆、餐厅、娱乐资源管理模块设计
由于宾馆资源管理模块、餐厅资源管理模块设计、娱乐资源管理模块设计这三个模块设计的界面和模块功能基本相似。这里就以娱乐资源管理模块设计为例来说明。
娱乐资源管理模块可以实现以下功能:
? 添加娱乐资源信息;
? 修改娱乐资源信息;
? 删除娱乐资源信息;
? 查看娱乐资源信息。
5.11。1设计娱乐资源编辑窗体
创建一个新窗体,窗体名称设置为FrmAmuEdit.窗体FrmAmuEdit的布局入图5.11所示。
图5.11 窗体FrmAmuEdit的布局
5。11.2设计娱乐项目管理窗体
与景点、宾馆、餐厅等旅游资源不同,娱乐资源包含很多的娱乐项目。如保龄球、台球、游泳等,所以需要有一个娱乐项目管理窗体。创建一个新窗体,窗体名称设置为FrmAitemMan。窗体FrmAitemMan的布局如图5。11.2所示。
图5。11。2 窗体FrmAitemMan的布局
下面分析窗体FrmAitemMan中几个主要过程的代码.
1( 公共变量
在窗体FrmAitemMan中有一个公共变量OriAid,表示当前所编辑的娱乐项目所属的娱乐厅编号。此变量必须在启动窗体FrmAitemMan之前进行设置。
2( Loaditem()
Loaditem()过程的功能是根据变量OriAid指定的娱乐厅,读取娱乐厅中包含的所有娱乐项目,并把这些娱乐项目显示在列表中。对应的代码如下:
Private Sub Loaditem()
Dim i As Integer
’清空娱乐项目列表
'根据当前的娱乐厅编号,读取所有的娱乐项目到数组ArrItem()中
em_ByAmu (OriAid)
'依次把数组ArrItem()中的数据添加到娱乐项目列表List1中
i = 0
Do While ArrItem(i) <> ""
m ArrItem(i)
i = i + 1
Loop
End Sub
在程序设计中,经常需要把数据库中满足一定条件的数据读取到组合框或列表框中,以便用户选择,可以使用两种方法实现此功能.第一种方法使用DataCombo控件作为组合框,使用DataList控件作为列表框,把需要的数据读取到ADO Data控件中。将DataList控件的RowSource属性设置为ADO Data控件,ListField属性设置为要读取的字段,需要的数据就会自动出现在列表框中(组合框的方法也是一样的)。这种方法比较方便,不需要编写任何代码。第二种方法可以使用ComboBox控件作为组合框,使用ListBox控件作为列表框。编写程序将需要的数据从表中读取到一个(或一组)全局数组中,然后再使用AddItem方法把数组中的元素依次添加到ComboBox或ListBBox控件中.这样方法比较灵活,程序员可以控制程序的实现方法,增加一些扩展功能,同时全局数组中的数据不可以提供给其他部分的程序使用.
1. List1_Click过程
当用户单击娱乐项目列表时,将触发List1_Click事件,对应的代码如下:
Private Sub List1_click()
’判断是否选择了娱乐项目
If = ”" Then
Exit Sub
End If
’把选择的娱乐项目名称显示在右侧的“娱乐项目"编辑框中
txtItem = List1。Text
'读取娱乐项目编号,并根据此编号读取娱乐项目的所有信息
TmpId = MyAitem。GetId(OriAid, txtItem)
MyAitem。GetInfo (TmpId)
'把娱乐项目的价格赋值到txtPrice文本框中
txtPrice = MyAitem。Price
’把娱乐项目的编辑时间赋值到lblinput_time标签中
lblInput_time = MyAitem。Input_time
End Sub
5。11。3 设计娱乐资源管理窗体
创建一个新窗体,窗体名称设置为FrmAmuMan。窗体的布局如图5。11。3所示
图5.11。3 窗体FrmAmuMan的布局
当用户单击“娱乐项目”按钮时,将触发Cmd_Item_Click事件,对应的代码如下: Private Sub Cmd_Item_Click()
'要进入娱乐项目管理界面,必须首先选择一个娱乐厅
If = True Then
MsgBox "请选择记录”
Exit Sub
End If
'读取选择好的娱乐厅娱乐,并赋值到中
= (Trim((1)))
’打开娱乐项目管理窗体
1
End Sub
5.12 火车、飞机资源管理模块设计
火车资源管理模块设计和飞机资源管理模块设计的基本思想和结构大体上相似,这里以
飞机管理模块设计为例来说明.
飞机资源管理模块可以实现以下功能:
? 添加飞机资源信息;
? 修改飞机资源信息;
? 删除飞机资源信息;
? 查看飞机资源信息.
5.12.1 设计飞机资源编辑窗体
创建一个新窗体,窗体名称设置为FrmPlaneEdit。窗体FrmPlaneEdit的布局如图5。12
所示。
图5。12 窗体FrmPlaneEdit的布局
窗体FrmPlaneEdit中增加了“航班周期“的处理,下面介绍一下FrmPlaneEdit中的主
要代码。
1( Form_Load过程
当FrmPlaneEdit窗体启动时,将触发Form_Load事件,对应的代码如下:
Private Sub Form_Load()
Dim TmpCycle As Integer
’将航班周期字符串折分单个字符,并保存在变量TmpCycle中
’然后根据变量TmpCycle的值,决定航班周期的显示
Do While OriCycle <〉 ""
TmpCycle = Val(Left(OriCycle, 1))
OriCycle = Right(OriCycle, Len(OriCycle) — 1)
Select Ca TmpCycle
Ca 1
= 1
Ca 2
Check2。Value = 1
Ca 3
= 1
Ca 4
Check4。Value = 1
Ca 5
= 1
Ca 6
Check6。Value = 1
Ca 7
= 1
End Select
Loop
End Sub
2( Cmd_Ok_Click过程
当用户单击“确定“按钮时,将触发Cmd_Ok_Click事件,对应的代码如下:
Private Sub Cmd_OK_Click()
本文发布于:2024-01-07 22:27:06,感谢您对本站的认可!
本文链接:https://www.wtabcd.cn/fanwen/fan/89/1165882.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |