1、图书管理系统目 录摘 要 IIIABSTRACTIV前 言V第一章 综述 11.1 图书馆管理系统开发背景11.2 图书馆管理系统的目的和意义2第二章 系统分析设计32.1 系统功能分析32.2 系统功能模块设计3第三章 数据库分析与设计53.1 数据库需求分析53.2 数据库概念结构设计53.3 数据库逻辑结构设计73.3.1 书籍信息表73.3.2 读者信息表83.3.3 借阅信息表83.3.4 读者类别表83.3.5 用户表83.4 读者借书过程的数据流图和数据词典83.4.1 数据流图83.4.2 数据词典93.5 读者还书过程的数据流图和数据词典123.5.1 数据流图113.5.2
2、 数据词典12第四章 系统详细设计与实现144.1 图书馆管理信息系统主窗体的创建144.2 系统用户管理模块的创建164.3 添加读者种类窗体的创建204.4 查询图书信息与借书窗体的创建22第五章 结果与讨论285.1 工作成果285.2 问题与不足285.3 学习心得28参考文献30致 谢31- 32 -摘 要随着科学技术的迅猛发展,图书馆管理工作的自动化所需的软硬件条件已经成熟。因此,我按照软件工程思想和管理信息系统的开发步骤,以图书馆的应用需求为背景,设计开发了本图书馆管理系统。图书管理系统是典型的信息管理系统(MIS)。本文介绍了在Visual Basic 6.0环境下开发本系统的
3、详细过程,提出实现图书馆信息管理、资源共享的基本目标,从而推动迈向数字化图书馆的步伐,并阐述系统结构设计和功能设计,从图书的入库登记到查询浏览,从借书证发放到图书的借阅,形成了一个整体自动化管理模式,从软件工程的角度进行了科学而严谨的阐述。关键词: 图书管理 数据 浏览 ABSTRACTAlong with the rapid development of science and technology, the library automation management work for software and hardware conditions ripe. Therefore, I a
4、ccording to software engineering idea and the management information system development steps in the library, the application for background, design the library management system.The library management system is the typical information management system (MIS). Introduced in the Visual Basic 6.0 unde
5、r the environment of development of the system, and puts forward the detailed process of library, information management, resources sharing, and promote the Basic goal towards the pace of the digital library, and expounds the construction and design of the system and function of books, from design t
6、o browse, inquires from card issued to books borrowing, formed a whole automation management mode, from the Angle of software engineering is a scientific and rigorous.Keywords:Library Management Data Browse前 言随着计算机网络技术与通信技术的发展,人类已进入信息化社会,人们对信息和数据的利用与处理也已进入自动化、网络化和社会化阶段,因此,开发相关的信息管理系统已成为社会各行各业之必须,计算机
7、学科作为一门边缘学科,集管理科学、信息科学、系统科学、现代通信技术和计算机技术于一身,可以解决企业或组织所面临的问题。 图书馆管理系统是一种典型的信息管理系统,它的设计与开发遵循信息管理系统开发的方法。信息管理系统的开发方法有生命周期法、原型法和面向对象的开发方法等,并且管理信息系统的开发是一个开发周期长、技术要求高、影响因素多的复杂系统工程,因此我欲采用面向对象的方法开发小型图书管理系统,以完善个人、小型图书馆、中小型企事业单位的图书管理。本毕业设计研究的主要内容是:使用者需要凭用户名和密码才能进入图书馆管理系统;管理员可以对图书、用户等信息进入增加、修改、删除等操作;也可以进行借出操作和归
8、还操作;用户可以实现多种不同方式查询。本设计主要用于中小规模的图书管理,总体任务是使图书管理工作规范化、系统化、程序化,避免图书管理的随意性,提高信息处理的速度和准确性,能够及时、准确、有效的查询和修改图书情况。第一章 综述随着各图书馆的图书的数量不断增多和图书馆规模的不断扩大,管理这些庞大的体系非常困难的,因为图书的情况是随时改变的,因此必需对图书进行动态的管理,而这对于一个管理人员来说是一件比较复杂的事情,存储、查询、借阅是必不可少的业务。为了能让管理员从繁重的工作中解脱出来,使管理员在使用一个软件以后能极其容易地对所有图书进行管理,并且准确无误,轻松自如。因此开发一个图书馆管理系统软件是
9、当务之急,也是本毕业设计选题的重要意义和研究宗旨。图书馆管理系统的流通部分是所有图书馆系统中最重要的部分,流通系统将读者与图书、读者与管理员、读者与读者相互间联系起来,而且流通系统处理的数据类型多,数量大,精细且频繁,因而需要系统应具备较完善的检验防错功能,从而根据系统的运行及反馈信息高质量,高效率地管理系统流通部门的全部功能。由于时间仓促和本人水平有限,不当之处在所难免,请各位老师批评指正。1.1 图书馆管理系统开发背景当今时代是飞速发展的信息时代。在各行各业中离不开信息处理,这正是计算机被广泛应用于信息管理系统的环境。计算机的最大好处在于利用它能够进行信息管理。使用计算机进行信息控制,不仅
10、提高了工作效率,而且大大的提高了其安全性。 尤其对于复杂的信息管理,计算机能够充分发挥它的优越性。计算机进行信息管理与信息管理系统的开发密切相关,系统的开发是系统管理的前提。本系统就是为了管理好图书馆信息而设计的。 图书馆作为一种信息资源的集散地,图书和用户借阅资料繁多,包含很多的信息数据的管理,现今,有很多的图书馆都是初步开始使用,甚至尚未使用计算机进行信息管理。根据调查得知,他们以前对信息管理的主要方式是基于文本、表格等纸介质的手工处理,对于图书借阅情况(如借书天数、超过限定借书时间的天数)的统计和核实等往往采用对借书卡的人工检查进行,对借阅者的借阅权限、以及借阅天数等用人工计算、手抄进行
11、。数据信息处理工作量大,容易出错;由于数据繁多,容易丢失,且不易查找。总的来说,缺乏系统,规范的信息管理手段。尽管有的图书馆有计算机,但是尚未用于信息管理,没有发挥它的效力,资源闲置比较突出,这就是管理信息系统的开发的基本环境。 数据处理手工操作,工作量大,出错率高,出错后不易更改。图书馆采取手工方式对图书借阅情况进行人工管理,由于信息比较多,图书借阅信息的管理工作混乱而又复杂;一般借阅情况是记录在借书证上,图书的数目和内容记录在文件中,图书馆的工作人员和管理员也只是当时对它比较清楚,时间一长,如再要进行查询,就得在众多的资料中翻阅、查找了,造成查询费时、费力。如要对很长时间以前的图书进行更改
12、就更加困难了。基于这此问题,我认为有必要建立一个图书管理系统,使图书管理工作规范化,系统化,程序化,避免图书管理的随意性,提高信息处理的速度和准确性,能够及时、准确、有效的查询和修改图书情况。1.2 图书馆管理系统的目的和意义 我们要实现科学技术现代化,图书情报工作的现代化是极其重要的,又由于科学和技术的不断发展和进步,现代技术是一个动态的概念.第二次世界大战以来,以计算机技术为代表的现代技术有了巨大的发展,而且还在迅速的变化发展之中,70年代后期,出现图书情报工作的 “联机革命”,使计算机更广泛地,更有效的应用到各个角落,发达国家较重视这一领域的发展,我国尚存在较大的差距。所以我们说,图书情
13、报工作计算机化是提高我国科学技术水平的一项带有重大战略意义的措施,它是图书情报工作现代化的重要标志。计算机技术是现代技术的一部分,图书自动化也只是图书馆现代化的一部分,它们之间是部分和整体的关系,但由于计算机技术是信息技术的心脏,现代社会的骄子,信息社会的科技主角,所以在图书馆现代技术中,计算机技术处于核心地位,它对于其他现代化设备起控制,连接和转换的作用,而图书馆自动化是图书馆现代化的核心和主导部分。图书情报的计算机管理系统能提高图书馆本身管理水平,能代替工作人员进行图书情报资料的某些加工处理,把工作人员从繁重的手工劳动,重复劳动中解放出来。总之,建立图书馆的计算机自动化管理系统,不但可以大
14、大提高图书馆图书流通率,而且推动了社会文化生活的进步。本论文以图书馆管理信息系统的需求分析及概念设计为切入点,运用理论与实际相结合的方法,构建一个包含读者信息,书籍信息和借阅信息的图书馆管理系统。图书馆管理系统是典型的信息管理系统(MIS),其开发主要包括后台数据库的建立和维护以及前端应用程序的开发两个方面。对于前者要求建立起数据一致性和完整性强、数据安全性好的库。而对于后者则要求应用程序功能完备,易使用等特点。因此本人结合开放式图书馆的要求,对Access数据库管理系统、Visual Basic程序设计进行了较深入的学习和应用,主要完成对图书管理系统的需求分析、功能模块划分、数据库模式分析,
15、并由此设计了数据库结构和应用程序。希望本文所设计的图书馆管理系统能够满足借阅者和图书馆管理人员的需求。第二章 系统分析设计2.1 系统功能分析系统开发的总体任务是实现各种信息的系统化、规范化和自动化。系统功能分析是在系统开发的总体任务的基础上完成。本设计中的图书馆管理信息系统需要完成功能主要有:1.有关读者种类标准的制定、种类信息的输入,包括种类编号、种类名称、借书数量、借书期限等。2.读者种类信息的修改、查询等。3.读者基本信息的输入,包括读者编号、读者姓名、读者种类、读者性别、工作单位、家庭住址、电话号码、办证日期等。4.读者基本信息的查询、修改,包括读者编号、读者姓名、读者种类、读者性别
16、、工作单位、家庭住址、电话号码、办证日期等。5.书籍信息的输入,包括书籍编号、书籍名称、书籍类别、作者姓名、出版社名称、出版日期、登记日期等。6.书籍信息的查询、修改,包括书籍编号、书籍名称、书籍类别、作者姓名、出版社名称、出版日期、登记日期等。7.借书信息的输入,包括借书信息编号、读者编号、读者姓名、书籍编号、书籍名称、借书日期等。8.借书信息的查询、修改,包括借书信息编号、读者编号、读者姓名、书籍编号、书籍名称、借书日期等。9.还书信息的输入,包括还书信息编号、读者编号、读者姓名、书籍编号、书籍名称、借书日期、还书日期等。10.还书信息查询和修改,包括还书信息编号、读者编号、读者姓名、书籍
17、编号、书籍名称、借书日期、还书日期等。2.2 系统功能模块设计 对上述各项功能进行集中、模块划分,按照结构化程序设计的要求,得到如图2.1所示的系统功能模块图。图书馆管理信息系统借阅信息管理书籍信息管理读者信息管理用户管理密码管理设置读者种类设置读者信息设置书籍种类设置书籍信息借书信息管理还书信息管理读者种类添加读者信息查询书籍类别修改读者信息修改读者信息添加书籍信息修改借书信息添加书籍信息添加书籍类别添加借书信息查询还书信息修改书籍信息查询读者种类修改借书信息修改还书信息添加还书信息查询系统管理图2.1 系统功能模块图第三章 数据库分析与设计3.1 数据库需求分析用户的需求具体体现在各种信息
18、的提供、保存、更新和查询,这就要求数据库结构能充分满足各种信息的输出和输入。收集基本数据、数据结构以及数据处理的流程,组成一份详尽的数据字典,为以后的具体设计打下基础。针对一般图书馆管理信息系统的需求,通过对图书馆管理工作过程的内容和数据流程分析,设计如下面所示的数据项和数据结构:1.读者种类信息,包括的数据项有:种类编号、种类名称、借书数量、借书期限、有效期限等。2.读者信息,包括的数据项有:读者编号、读者姓名、读者种类、读者性别、工作单位、家庭住址、电话号码、办证日期等。3.书籍类别信息,包括的数据项有:类别编号、类别名称等。4.书籍信息,包括的数据项有:包括书籍编号、书籍名称、书籍类别、
19、作者姓名、出版社名称、出版日期、登记日期等。5.借阅信息,包括的数据项有:借阅信息编号、读者编号、读者姓名、书籍编号、书籍名称、借书日期、还书日期等。 有了上面的数据结构、数据项和数据流程,就可以进行下面的数据库设计了。3.2 数据库概念结构设计得到上面的数据项和数据结构以后,就可以设计出能够满足用户需求的各种实体,以及它们之间的关系,为后面的逻辑结构设计打下基础。本实例根据上面的设计规划出的实体有:读者类别信息实体、读者信息实体、书籍类别信息实体、书籍信息实体、借阅信息实体。各个实体具体的描述E-R图如下。读者类别信息实体E-R图如图3.1所示。读者类别信息实体种类编号种类名称借书期限借书数
20、量图3.1 读者类别信息实体E-R图读者信息实体E-R图如图3.2所示。读者信息实体读者编号读者姓名读者类别办证日期 图3.2 读者信息实体E-R图书籍类别信息实体E-R图如图3.3所示。书籍类别信息实体类别编号类别名称关键词备注信息图3.3 书籍类别信息实体E-R图书籍信息实体E-R图如图3.4所示。书籍信息实体书籍编号书籍名称书籍类别出版社图3.4 书籍信息实体E-R图借阅信息实体E-R图如图3.5所示。借阅信息实体借阅信息编号读者信息书籍信息借书日期图3.5 借阅信息实体E-R图实体之间相互关系的E-R图如图3.6所示。 读者类别信息书籍类别信息书籍信息管理读者信息管理借阅书籍借阅信息管
21、理读者信息登记书籍信息登记 图3.6 实体之间关系的E-R图3.3 数据库逻辑结构设计3.3.1 书籍信息表由多个图书记录构成。图书记录的数据结构如下:图书编号(BookID)整数(唯一标示符)图书书名(BookName)变长字符串图书作者(Author)变长字符串图书出版社(Publisher)变长字符串3.3.2 读者信息表由多个读者记录构成读者记录的数据结构如下:读者证号(ReaderID)整数(唯一标示符)读者姓名(ReaderName)变长字符串读者联系方法(Address)变长字符串3.3.3 借阅信息表由若干个借书记录构成借书记录的数据结构如下:借阅图书(BookID)整数(与图
22、书库中的图书编号对应)(唯一标示符)借阅者(ReaderID)整数(与读者库中的图书编号对应)借阅时间(BorrowDate)日期3.3.4 读者类别表有单个系统设置记录构成系统设置记录的数据结构如下:记录号(id)整数(系统自动生成,唯一标示符)最多可借图书数(MaxBLNum)整数最多借书天数(MaxBLDays)整数3.3.5 用户表由若干个系统操作员记录构成系统操作员记录的数据结构如下:记录序号(id)整数(系统自动生成,唯一标示符)账号(Addminister)变长字符串口令(Password)变长字符串权限级别(Level)变长字符串3.4 读者借书过程的数据流图和数据词典3.4.
23、1 数据流图 读者借书过程数据流程如图3.7所示。日历读者1借书检验2借书登记选定图书读者库图书库图书是否被借出图书信息检验图3.7 读者借书过程3.4.2 数据词典1.数据源点及汇点描述:名称:读者简要描述:借书、还书、查询及登记注册有关数据流:借书证;所借书本名称:日历简要描述:当日日期有关数据流:年月日2.加工逻辑词条描述:加工名:借书检验加工编号:简要描述:检验读者身份、图书是否入库、读者还能借多少书以此判定读者是否能借书输入数据流:借书证;所借书本,读者信息,图书信息,图书访问记录,日期输出数据流:借书错误信息,借书信息加工逻辑:IF借书证未登记入库THEN发出“借书错误”ELSEI
24、F图书未登记入库THEN发出“借书错误”ELSEIF读者已借图书和现借图书多于限制数 THEN 发出“借书错误” ELSEIF读者已借图书中有超期THEN发出“借书错误”ELSE发出“借书信息”ENDIFENDIFENDIFENDIF加工名:借书登记加工编号:简要描述:将“借书信息”登记到“图书访问记录库图书访问记录”中,完成后将书本递交读者输入数据流:借书信息,日期输出数据流:图书访问记录,图书加工逻辑:将借书信息及日期写入图书访问记录;3.数据流名词条描述:数据流名:借书证说明:用以携带读者的唯一识别标识数据流来源:读者数据流去向:借书检验数据流组成:借书证借书证号姓名联系方法 借书证号“
25、000000001”.“999999999” 姓名2字母24 联系方法4字母50数据流名:图书说明:记录图书的主要相关信息数据流来源:读者数据流去向:借书检验数据流组成:图书书号书名作者出版社 书号“000000001”.“999999999” 书名2字母24 作者2字母24 出版社2字母24数据流名:检验错误说明:用于指示读者借书错误信息数据流来源:借书检验数据流去向:读者数据流组成:检验错误2字母40数据流名:借书信息说明:用于传递读者号和图书号数据流来源:借书检验数据流去向:借书登记数据流组成:借书信息借书证号书号数据流名:日期说明:提供当前日期信息数据流来源:日历数据流去向:借书检验,
26、借书登记数据流组成:日期年月日年“0000”.“9999”月“01”.“12”日“01”.“31”数据流名:图书访问记录说明:用于记录读者借书信息数据流来源:图书访问记录库,借书登记数据流去向:借书检验数据流组成:图书访问记录书号借阅证号借书日期 借书日期日期数据流名:读者信息说明:用于记录登记入库的读者信息数据流来源:读者库数据流去向:借书检验数据流组成:读者信息借书证号姓名联系方法数据流名:图书信息说明:用于记录登记入库的图书信息数据流来源:图书库数据流去向:借书检验数据流组成:图书信息书号书名作者出版社价格摘要状态4.数据文件词条描述:数据文件名:读者库简述:存放读者信息输入数据:无输出
27、数据:读者信息数据文件组成:读者库由“读者信息”组成数据文件名:图书库简述:存放图书信息输入数据:无输出数据:图书信息数据文件组成:图书库由“图书信息”组成数据文件名:图书访问记录库简述:存放图书访问记录信息输入数据:图书访问记录输出数据:图书访问记录数据文件组成:图书访问记录库由“图书访问记录”组成3.5 读者还书过程的数据流图和数据词典3.5.1 数据流图读者还书过程数据流程如图3.8所示。日历读者3还书检验4还书登记图书还书返回信息还书信息图书访问记录检验错误图3.8 读者还书过程3.5.2 数据词典1.加工逻辑词条描述:加工名:还书检验加工编号:3 简要描述:检验图书是否图书室外借图书
28、 输入数据流:图书,图书访问记录输出数据流:检验错误,还书信息 加工逻辑:IF书号与数据库数据不符THEN 发出“检验错误” ELSE发出“还书信息”ENDIF加工名:还书登记 加工编号:4 简要描述:删除读者对该图书的借书信息,如果超期给出警告及天数 输入数据流:还书信息,日期 输出数据流:图书访问纪录,还书成功 加工逻辑:IF所还图书超期THEN 统计超期天数 生成含警告的返回信息 ELSE删除图书访问记录库中相应的借书记录 生成成功信息ENDIF 给出还书返回信息2.数据流名词条描述:数据流名:还书信息说明:用于传递图书书号数据流来源:还书检验数据流去向:还书登记数据流组成:还书信息书号
29、数据流名:还书成功说明:用于通知还书成功数据流来源:还书登记数据流去向:读者数据流组成:还书成功2字母10数据文件词条描述:(前面已描述)第四章 系统详细设计与实现4.1 图书馆管理信息系统主窗体的创建这个项目使用多文档界面,单击工具栏中的ADD MDI Form按钮,生成一个窗体。在这个窗体上添加所需的控件,窗体和控件的属性设置见表4-1所示。表4-1 主窗体及其控件属性设置控件属性属性取值frmMain(Form)NameFrmMainCaption王登伟毕业设计-图书馆管理系统StartUpPositon2-屏幕中心WindowStateMaximizedSbStatusBar(Stat
30、usBar)NameSbStatusBarPanels(1)StyleSbrTextPanels(2)StyleSbrDatePanels(3)StyleSbrTime在窗体中加入状态栏控件,可以实时反映系统中各个状态的变化。状态栏控件需要在通常的属性窗口中设置一般属性,还需要在其特有的弹出式菜单中进行设置。选中状态栏控件,单击鼠标右键,选中Property菜单,然后设置属性。创建好的主窗体如图4.1所示。图4.1 图书馆管理系统主窗体在Visual Basic中使用公用模块来存放整个工程项目公用函数、过程和全局变量等。这样可以极大地提高代码的效率。在录入有关信息时,需要回车来进入下一个文本框
31、,这样对软件使用者非常方便。在所有的功能模块都需要这个函数,所以将它放在公用模块中,代码如下:Public Sub EnterToTab(Keyasc As Integer) 判断是否为回车键 If Keyasc=13 Then 转换成Tab键 SendKeys”TAB” End IfEnd SubKeyasc用来保存当前按键,SendKeys函数用来指定的按键。一旦单击回车键,将返回Tab键,下一个控件自动获得输入焦点。添加全局变量,用来记录各个窗体的读写状态,代码如下:Pubic flagRTedit As BooleanPubic gintRTmode As IntegerPubic f
32、lag Redit As BooleanPubic gintRmode As IntegerPubic flagBTedit As BooleanPubic gintBTmode As IntegerPubic flagBedit As BooleanPubic gintBmode As IntegerPubic flagBOedit As BooleanPubic gintBOmode As IntegerPubic flagBBedit As BooleanPubic gintBBmode As IntegergintRTmode变量用来记录是添加状态还是修改状态,赋值1为添加,赋值2为修
33、改。flagRTedit变量用来标示是否进入修改的窗体。其他全局变量同理。由于图书馆管理信息系统启动后,需要对用户进行判断。如果登陆者是授权用户,将进入系统,否则将停止程序的执行。这个判断需要在系统运行的最初进行,因此将代码放在公用模块中。 4.2 系统用户管理模块的创建系统启动后,将首先出现如图4.2所示的窗体。 图4.2 系统启动界面窗体图点击确定后将出现登录窗体如图4.3所示,用户首先输入用户名,然后输入密码。如果用户3次输入的密码不正确,将退出程序。图4.3 用户登录窗体用户登录窗体中放置了两个文本框(TextBox),用来输入用户名和密码;两个按钮(CommandButton)用来确
34、定或者取消登录;3个标签用来标志窗体的信息。这些控件的属性设置见表4-2所示。表4-2 登录窗体中各个控件的属性设置控件属性属性取值frmLogin(Form)NamefrmLoginCaption身份验证StartUpPositonCenterScreenWindowStateNomaltxtUserNameNametxtUserNametxtPasswordNametxtPasswordPasswordChar*cmdOKNamecmdOKCaption确定cmdCance1NamecmdCance1Caption取消Label1Caption用户名Label2Caption密码Label
35、3Caption注意:如果您的身份验证三次未正确,系统将自动关闭!文本框txtPassword的PasswordChar属性是用指定字符来掩盖用户名输入密码。为窗体定义全局变量OK,用来判断登录是否成功;定义Cnt,用来记载输入密码的次数,并且在载入窗体时初始化这两个全局变量,代码如下:强制变量声明Option ExplicitPubic OK As Boolean记录确定次数Dim miscount As IntegerPrivate Sub Form_Load() OK=False miscount=0End SubOption Explicit是用来规定所有变量使用前必须定义。这样可以避
36、免由于输入错误而产生的新变量。当用户输入完用户名和用户密码,单击cmdOK按钮将对用户输入信息进行判断。用户单击该按钮,将触发按钮cmdOK的Click事件,连接数据库中用户表如图4.4所示。图4.4 用户表代码如下:Option ExplicitDim cnt As Integer 记录确定次数Private Sub cmdCancle_Click() Unload MeEnd SubPrivate Sub cmdOK_Click()Dim sql As StringDim rs_login As New ADODB.RecordsetDim conn As New ADODB.Connec
37、tionconn.Open provider=Microsoft.Jet.OLEDB.4.0; data source= & App.Path & database.mdb If Trim(Text1.Text) = Then MsgBox 用户名不能为空,请重新输入! Text1.SetFocus Else sql = select * from 用户表 where user_ID= & Trim(Text1.Text) & rs_login.Open sql, conn, adOpenKeyset, adLockPessimistic If rs_login.EOF = True Then
38、 MsgBox 没有这个用户,请重输入!, vbOKOnly + vbExclamation, Text1.Text = Text1.SetFocus Else username = Text1.Text If Trim(rs_login.Fields(1) = Trim(Text2.Text) Then Unload Me frmMain.Show Else MsgBox 密码不正确,请重输入!, vbOKOnly + vbExclamation, Text2.SetFocus Text2.Text = End If End If End If cnt = cnt + 1 If cnt =
39、3 Then Unload Me End IfEnd SubPrivate Sub Form_Load()cnt = 0End Sub用户如果没有输入用户名和用户密码,将出现消息框给予提示。如果输入的用户名在用户表中没有找到,将提示重新输入用户名,文本框将重新获得输入焦点。例如在图4.3用户登录窗体中的用户名中输入“100”,将在数据库中用户表中的user_ID中进行匹配,如图4.4用户表所示,user_ID中没有“100”,这时系统将出示提示框“没有这个用户,请重新输入”。如果用户输入用户名正确而输入的密码不正确,文本框txtPassword将重新获得输入焦点。例如在图4.3用户登录窗体中的
40、用户名中输入“110”,密码中输入“1234”,将先对数据库中用户表的user_ID中的项进行匹配,如图4.4用户表中所示,有“110”这一项,用户名匹配成功,接着将密码“1234”与user_ID中“110”想对应的mima中的项进行匹配,发现与“110”所对应的项是“3333”,密码匹配不成功,这时系统将出示提示框“密码不正确,请重新输入”。当所输入的用户名和密码都在数据库中的用户表中匹配成功,用户登陆成功,全局变量OK将被赋值为True;一旦三次输入密码均不正确,全局变量OK将被赋值False。公用模块中的Main过程将根据OK的值决定是退出,或者进入系统。如果用户取消登录,单击“取消”
41、按钮,将触发按钮Click事件,代码如下: OK=False Me.Hide Me是Visual Basic中一个常用对象,用来指代当前对象本身。4.3 添加读者种类窗体的创建添加读者种类窗体是在窗体上放置多个文本框,用来输入读者种类信息;两个按钮用来确定是否添加读者种类信息;多个标签用来提示文本框中需要输入的内容。用户通过此窗体的使用可以很容易的添加读者的种类,如图4.5所示。图4.5 添加读者类别窗体在载入窗体时,将会连接数据库当中的读者类别表,如图4.6所示。图4.6 读者类别表程序代码如下: Private Sub Command1_Click() Dim sql As StringD
42、im conn As New ADODB.Connection Dim rs_readerstyle As New ADODB.Recordset If Trim(Text1.Text) = Then MsgBox 读者种类不能为空 , vbOK0nly + vbExclamation, Text1.SetFocus Exit SubEnd If If Trim(Text2.Text) = Then MsgBox 借书数量不能为空, vbOK0nly + vbExclamation, Text2.SetFocus Exit Sub End If If Trim(Text3.Text) = Then MsgBox 借书期限不能为空, vbOK0nly + vbExclamation, Text3.SetFocus Exit Sub End If If Trim(Text4.Text) = Then MsgBox 有限期限不能为空, vbOK0nly + vbExclamation, Text4.SetFocus Exit Sub End If Provider = Microsof