毕业设计(论文)基于VB的图书管理系统设计与实现.doc

上传人:laozhun 文档编号:3979985 上传时间:2023-03-30 格式:DOC 页数:31 大小:1.03MB
返回 下载 相关 举报
毕业设计(论文)基于VB的图书管理系统设计与实现.doc_第1页
第1页 / 共31页
毕业设计(论文)基于VB的图书管理系统设计与实现.doc_第2页
第2页 / 共31页
毕业设计(论文)基于VB的图书管理系统设计与实现.doc_第3页
第3页 / 共31页
毕业设计(论文)基于VB的图书管理系统设计与实现.doc_第4页
第4页 / 共31页
毕业设计(论文)基于VB的图书管理系统设计与实现.doc_第5页
第5页 / 共31页
点击查看更多>>
资源描述

《毕业设计(论文)基于VB的图书管理系统设计与实现.doc》由会员分享,可在线阅读,更多相关《毕业设计(论文)基于VB的图书管理系统设计与实现.doc(31页珍藏版)》请在三一办公上搜索。

1、图书管理系统摘要图书管理系统是以SQL Servers 2000作为后台数据库,采用Visual Basic6.0开发的一个数据库管理系统。开发本系统的基本步骤:需求分析、系统概念设计、系统逻辑和物理设计、系统实现和维护。在系统分析中先后用数据字典、数据流图、E-R图分析了系统所需的各种数据。在系统的设计过程中,我主要采用了部件进行前台和后台的连接,还采用模块独立设计法,比较详细的展现了各个部件的功能。在后台数据库的设计当中, 我又力求层次清晰,设计简单实用。在系统具体实行阶段中,我较细致的画出了各个窗体并给出了相应的事件和代码,以实现各个窗体的作用。功能概述:该系统界面友好,操作简便,能完成

2、图书的分类查询,读者借书数量的查询,图书信息的添加修改删除,读者信息的添加修改删除,同时还能实现借阅功能和还书功能等一系列图书管理功能,开发本系统的总体任务是实现图书管理的系统化和自动化,帮助管理人员更高效地完成图书管理工作。本着实用性的原则,整个系统由四大功能组成,每个功能又能保持数据的同步更新。一、 图书查询部分:包括按书名查询,按作者查询,按图书类别查询,读者已借书数查询等功能。二、 读者借阅部分:包括读者对想借图书是否被借的查询,登记借阅信息等功能。三、 读者还书部分:包括登记还书信息等功能。四、 更新图书和读者信息部分:包括图书信息的添加修改删除,读者信息的添加修改删除,同时,在添加

3、读者信息时,系统自动将其借书证号作为ID,密码默认为666666添加到用户表中,方便读者登录本系统。 本系统具有高效、易操作、易维护等特点,并且系统结构清晰、界面友好,功能较为齐全,能有效地协助管理人员进行图书管理工作。1.需求分析需求分析阶段必须准确了解与分析用户需求(包括数据与处理),需求分析是整个设计过程的基础。需求分析阶段确定的系统逻辑模型是以后设计和实现目标系统的基础。1.1系统的数据字典本系统主要数据元素的数据字典卡片为:名字:图书信息报表别名:图书信息表描述:图书基本信息表定义:图书信息报表书号书名作者类别登记日期是否被借+出版社+年份+价格+数量名字: 读者信息报表别名: 读者

4、信息表描述: 读者基本信息表定义: 读者信息报表姓名借书证号所在单位职业电话号码登记日期已借书数名字: 借阅信息报表别名: 借阅信息表描述: 登记读者借书和还书的表定义: 借阅信息报表姓名借书证号书号+书名+借书日期+还书日期+罚款名字: 用户报表别名: 用户表表描述: 存储用户IDPassword和权限的表定义: 用户报表IDPassword权限2.数据库概念结构设计将需求分析得到的用户需求抽象为信息结构即概念模型的过程就是概念结构设计。它是整个数据库设计的关键。概念设计阶段主要任务和目标是根据需求分析的结果,包括一般联系实体,画出对应的E-R图。对于复杂的系统,通常首先要对它的各功能模进行

5、分析,然后再把它的功能结构图画出来,功能分析之后,再根据不同用户对数据和使用权限的不同要求分析局部E-R模式,然后再把各个局部E-R模式综合起来形成统一的整体E-R图。 2.1图书管理系统功能分析图书管理系统包括查询、借阅、还书、更新图书和读者信息。(1)图书查询管理:包括按书名查询,按作者查询,按图书类别查询,读者已借书数查询4部分。其中,图书信息包括图书编号、书名、图书类别、作者、出版社、剩余数量、登记日期、价格、出版日期以及是否已被借出。(2)图书借阅管理:包括者对想借图书是否被借的查询,登记借阅信息2部分功能。其中,登记借阅信息包括借书证号、姓名、图书编号、书名和借书日期。另外,还要求

6、每人最多只能借5本书。(3)图书还书管理:实现登记还书信息功能。其中,还书信息与借阅信息的区别是存储还书日期和罚款。(4)图书和读者信息管理:包括图书信息和读者信息都包括查询、添加、修改和删除4部分功能。其中,读者信息包括姓名、借书证号、所在单位、职业、电话号码、登记日期、已借书数。同时,在添加读者信息时,系统自动将其借书证号作为ID,密码默认为666666添加到用户表中,方便读者登录本系统。图书信息同上。2.2 E-R图的设计数据库在一个信息管理系统中占有非常重要的地位,数据库结构设计的好坏将直接对应用系统的效率以及实现的效果产生影响。合理的数据库结构设计可以提高数据存储的效率,保证数据的完

7、整和一致。同时,合理的数据库结构也将有利于程序的实现。设计数据库系统时应该首先充分了解用户各个方面的需求,包括现有的以及将来可能增加的需求。针对图书管理系统的需求,通过对图书管理系统流程分析,设计此系统需要的E-R图。利用E-R图进行数据库的概念设计,可分成三步进行:首先设计局部ER模式,然后把各局部E-R模式综合成一个全局模式,最后对全局ER模式进行优化,得到最终的模式,即概念模式。 E-R模型的“联系”用于刻画实体之间的关联。一种完整的方式是对局部结构中任意两个实体类型,依据需求分析的结果,考察局部结构中任意两个实体类型之间是否存在联系。若有联系,进一步确定是1:N,M:N,还是1:1等。

8、还要考察一个实体类型内部是否存在联系,两个实体类型之间是否存在联系,多个实体类型之间是否存在联系,等等。所有局部E-R模式都设计好了后,接下来就是把它们综合成单一的全局概念结构。全局概念结构不仅要支持所有局部E-R模式,而且必须合理地表示一个完整、一致的数据库概念结构。1) 确定公共实体类型为了给多个局部E-R模式的合并提供开始合并的基础,首先要确定各局部结构中的公共实体类型。在这一步中我们仅根据实体类型名和键来认定公共实体类型。一般把同名实体类型作为公共实体类型的一类候选,把具有相同键的实体类型作为公共实体类型的另一类候选。2) 局部E-R模式的合并合并的原则是:首先进行两两合并;先和合并那

9、些现实世界中有联系的局部结构;合并从公共实体类型开始,最后再加入独立的局部结构。3) 消除冲突冲突分为三类:属性冲突、结构冲突、命名冲突。设计全局E-R模式的目的不在于把若干局部E-R模式形式上合并为一个E-R模式,而在于消除冲突,使之成为能够被所有用户共同理解和接受的同一的概念模型。4) 全局E-R模式的优化在得到全局E-R模式后,为了提高数据库系统的效率,还应进一步依据处理需求对E-R模式进行优化。一个好的全局E-R模式,除能准确、全面地反映用户功能需求外,还应满足下列条件:实体类型的个数要尽可能的少;实体类型所含属性个数尽可能少;实体类型间联系无冗余。根据上述所示得出本系统的全局ER图如

10、下:借阅书读者姓名借书证号书号书名书号出版社登记日期类别作者姓名借书证号职业所在单位年份价格是否被借还书日期借书日期书名登记日期已借书数mn3.数据库逻辑结构设计(E-R图向关系模型转换)数据的概念结构设计完毕后, 逻辑结构设计的任务就是把概念结构设计阶段设计好的基本E-R图转换为与逻辑结构。根据上面的E-R图,现在将数据库概念结构转化为SQL Server2000数据库系统所支持的实际数据模型,也就是数据库的逻辑结构。E-R图转换的关系模型为:图书信息表(书号、书名、图书类别、作者、出版社、是否被借、登记日期、价格、年份)读者信息表(借书证号、姓名、所在单位、职业、电话号码、登记日期、已借书

11、数)图书借阅信息表(借书证号、书号、姓名、书名和借书日期、还书日期)用户表(ID、Password、权限)在上面的实体以及实体之间关系的基础上,形成数据库中的表以及各个表之间的关系。SQL Server2000数据库中各个表的设计代码如下:定义图书信息表:Create book(sno char(10) primary key,Sname char(20),Swriter char(15),Sfy char( 10),登记日期 datetime,是否被借 char(2),价格 money,出版社 char(20),年份 datetime数量 smallint)定义读者信息表:Create re

12、ader(借书证号 char(10) primary key,姓名 char(8),所在单位 char(20),职业 char(10),电话号码 char(15),登记日期 datetime,已借书数 smallint)定义借阅信息表:Create 借阅信息(借书证号 char(10),Sno char(10),姓名 char(8),Sname char(20),借出日期 datetime,还书日期 datetime,罚款 money,Primary key(借书证号,sno),Foreign key(借书证号) references reader(借书证号),Foreign key(sno)

13、 references book(sno)定义用户表:Create 用户(ID char(10) Primary key,Password char(10),权限 char(10)关系模型的逻辑结构是一组关系模式的集合,关系模型要求关系必须是规范化的,即要求关系必须满足一定的规范条件,这些规范条件中最基本的一条就是,关系订单每一个分量必须是一个不可分的数据项。关系模型可以具有更高的数据独立性、更好的安全保密性。4.物理设计(数据库的维护)由于应用环境不断变化,数据库运行过程中物理存储也会不断变化,对数据库设计进行调整修改等维护工作是设计工作的继续和提高。对数据库经常性的维护工作主要包括:(1)

14、数据库的转储和恢复针对不同的应用要求制定不同的转储计划,保证一旦发生故障能尽快将数据库恢复到某种一致的状态,尽可能减少对数据库的破坏。(2)数据库的安全性、完整性控制在数据库运行过程中由于应用环境的变化,对安全性的要求也会发生变化,如原来机密的数据现在可以公开查询了,新加入的数据又可能是机密的了。系统中用户的密级改变。这都需要根据实际情况修改原有的安全性控制,可以设置数据库密码及用户权限。同样,数据库的完整性的约束条件也会变化,需要DBA不断修正。(2)数据库性能的监督、分析和改造利用Microsoft SQL Server2000提供的检测系统性能参数的工具,在数据库运行过程中,监督数据进行

15、分析,找出改进系统性能的方法,并做适当调整。(4)数据库的重组及重构造数据库运行一段时间后,由于记录不断增、删、改,增添、修改的数据不能为空,否则不能保存到数据库中。使数据库的物理存储情况变坏,降低了数据的存取效率,数据库性能下降,这时DBA要对数据库进行重组织,或部分重组织(只对频繁增、删的表进行重组织),可以利用Microsoft SQL Server2000专门提供的数据重组织实用程序操作,按原设计要求重新安排存储位置、回收垃圾、减少指针链等,提高系统性能。有些情况,如由于数据库应用环境发生变化,增加了新的应用或新的实体,取消了某些应用,有的实体与实体间的联系发生变化,则需要调整数据库的

16、模式及内模式。5.系统功能结构框图6.程序原代码及其说明。用SQL对所建表实现下列查询1 求总藏书量、藏书总金额,总库存册数、最高价、最低价。select sum(数量) /*从图书表中选出总藏书量*/from bookselect sum(价格) /*从图书表中选出藏书总金额*/from bookselect count(distinct sname) /*从图书表中选出总库存册书*/from bookselect max(价格) /*从图书表中选出价格最高的图书*/from bookselect min(价格) /*从图书表中选出价格最低的图书*/from book2 列出藏书在3本以上的

17、书(书名、作者、出版社、年份)。select *from bookwhere sname=any(select sname /*选出图书表中3本以上书名相同的书*/from bookgroup by(sname)having count(*)=3) and出版社=any /*选出图书表中3本以上书名相同并且出版社也相同的书*/(select 出版社from bookgroup by(出版社)having count(*)=3) 3 哪些出版社的藏书种类数超过5种。select 出版社 /*选出藏书种类数超过5中的出版社*/from bookgroup by(出版社)having count(s

18、name)54 目前实际已借出多少册书?select count(*) /*选出实际已借册数*/from bookwhere 是否被借=是5 年份最久远的书。select * /*选出年份最久远的书*/from bookwhere 年份=any(select min(年份)from book)6 “数据库系统原理教程,王珊编,清华大学出版社,1998年出版”还有几本?select count(*)from bookwhere sname=数据库系统原理教程and swriter=王珊and 出版社=清华大学出版社and 是否被借=否and 年份 like%1998%7 哪一年的图书最多?sel

19、ect 登记日期 /*选出哪一年的图书最多*/from bookgroup by(登记日期)having count(sno)=all(select count(sno)from bookgroup by 登记日期)8 哪本借书证未归还的图书最多?select 借书证号,姓名 /*选出哪本借书证未归还的图书最多*/from readerwhere 已借书数=(select max(已借书数)from reader)9平均每本借书证的借书册数。select avg(已借书数) /*选出平均每本借书证的借书册数*/from reader 10哪个单位平均借书册数最多?select 所在单位 /*选

20、出哪个单位平均借书册数*/from readergroup by(所在单位)having avg(已借书数)=all(select avg(已借书数)from readergroup by(所在单位)11 最近两个月都未被借过的书。select * /*选出最近两个月都未被借过的书*/from bookwhere sno not in(select snofrom 借阅信息where month(借出日期)in (11,12)12 列出那些借了图书逾期未归还的借书证号和图书名。select 借书证号,sname/*选出借了图书逾期未归还的借书证号和图书名*/from 借阅信息where 还书日

21、期 is null and (2010-year(借出日期)*365+(1-month(借出日期)*30+(12-day(借出日期)3013这个月未借过书的借书证.select 借书证号,姓名 /*选出这个月未借过书的借书证号和姓名*/from readerwhere 借书证号 not in(select 借书证号from 借阅信息where month(借出日期)=12)14 这两个月哪种书出借最多?select sname /*选出这两个月哪种书借出最多*/from 借阅信息group by(sname)having count(sname)=all(select count(sname)

22、from 借阅信息7.收获及体会通过这次课程设计,我掌握了Accesss数据库的编程方法,掌握了Visual Basic中文版视化面向对象的编程语言的使用方法。对目前流行的软件开发方法和手段,有了一定的认识,丰富了软件开发的经验,提高了编制程序的水平,加深理解了许多课程中、书本上学到的知识和理论。同时通过编写毕业设计论文,我还掌握了软件文档的书写方法和书写格式。因为初次开发一个系统,所以此系统还有许多不完善的地方。由于时间有限,和我的编程水平和经验不足,有些功能并没有完全实现,有些功能实现的并不理想。在已经完成的程序中,也存在许多不尽人意的算法和数据结构。而这也让我充分认识到了软件编制的困难程

23、度。对软件的编制速度,复杂程度有了充分的认识。整个库存管理系统已经开发完毕。在开发的过程中,确实遇到了不少的困难和阻碍,首先,由于第一次接触这样的系统开发,当时上手时一片迷茫,根本不知道要做些什么事情,从何做起,怎么做,其次,书本上的理论知识终究不同于实际的操作,真正让我把项目设置的整个流程反映在系统中着实还是有一定的困难的。因为毕竟没有真正地实践过,对于整个流程还只是停留在书本上看到的,老师上课讲到的。不过,经过一段时间的调查和研究,翻阅大量的资料以及导师的细心指导,由此开始慢慢地上了轨道,也渐渐地理清了思路,了解了自己应该如何开始,于是为自己制订了一份进度安排,一步步地按照这个进度施行计划

24、。同时,指导老师也让我们先做一份系统分析,那么在真正的设计时就可以有个导向,以此达到事半功倍的效果。确实,事实证明,这是非常需要的。在后期的程序设计中,这份系统分析起到了举足轻重的份量,使我们在具体设计中有了更为清晰的目标。但是,在此过程中,也并不是一帆风顺的,特别是在编程方面,遇到了很多的困难,以前虽说没学过VB,但是真要使用这个开发工具开发一个系统并不是易事,有时候,有些在系统中的功能我们构想的很好,很完美,但在实际的操作中,并不能完全实现,很多时候,虽然把程序编写出来了,但在执行的时候却不断地报错,往往是这个功能可以实现了,那段程序却又出现了错误,所以,在这段过程中,需要经过无数次的修改

25、,不断地学习,反反复复的实践,最终才完成了这个系统的开发。在这次课程设计中,我要特别感谢郑教师,在您的大力帮助下不仅仅是完成了此系统的开发而且学会了一门编程语言,使我的能力得到了提高。7.系统的实现及运行结果分析7.1 用户登录界面通过该界面登录图书管理系统和进行密码修改。(1)在您选择修改密码时,将进入如下界面:在单击“确定”按钮后,如果两次新密码输入一致,将返回一个信息框,提示密码修改成功。如果不一致,也将返回一个信息框提示两次输入的新密码不一致。 (2)在您选择登录时,将根据用户权限提供相应操作。如果登录的用户是普通用户,进入主界面将不能进行图书信息和读者信息的修改。如下图。如果登录的用

26、户是管理员,进入主界面可以进行所有操作,如下图: 7.2 查询界面进入主界面后,在您选择查询时,将来到查询界面。在这里,您可以选择查询方式,如果您选择按书名查询,并输入书名后点击“确定”,将查到如下结果:当然您也可以选择其他查询,如按作者查询,按分类查询,查询已借书数等。查询完毕后,您可以选择“返回”,重新回到主界面,也可以选择“退出”,退出本系统。7.3 借阅界面在主界面, 您也可以选择借阅,来到借阅界面。在这里,您可以查询要借的图书是否被别人借走。如被借走,您将不能借阅,同时“添加”按钮显示灰色,不能点击。如果没被借走,您可以点击“添加”借阅此书。点击“添加”后,进入如下界面,登记借阅信息

27、:在单击“确定”按钮后,如果输入正确,将返回一个信息框,提示借阅信息已成功登记,如下图。如果该读者已借5本书,点击“确定”按钮后,将返回信息框,提示 借阅完毕后,您可以选择“返回”,重新回到主界面,也可以选择“退出”,退出本系统。7.4 还书界面在主界面, 您也可以选择还书,来到还书界面。在这里,您可以输入借书证号,所还书号点击“确定”,找到要还的图书。来到如下界面,登记还书信息。输入还书日期后,点击“确定” ,如果您借书时间超过一个月,系统将返回一个信息框,提示您需要缴纳罚款。最后系统提示还书信息已成功登记。 还书完毕后,您可以选择“返回”,重新回到主界面,也可以选择“退出”,退出本系统。7

28、.5 更新图书和读者信息界面如果您是管理员在主界面,还可以选择更新图书和读者信息,来到如下界面。在这里,您可以选择更新图书信息和读者信息。(1)如果您要更新图书信息,点击后,来到如下界面:在这里您可以点击“添加”,通过如下界面,录入新的图书信息。您也可以在设置条件里确切的找到图书,对其进行修改和删除,点击“修改”后,进入如下界面,修改后点击“确定”。同时,您也可以点击“删除”,删除图书信息。点击后,返回一个信息框,提示是否要删除,如果您点击“是”,就将该图书信息删除了。最后还可以点击“返回”,回到图 。(2)如果您要更新读者信息,点击后,来到如下界面:同样在这里您可以点击“添加”,通过如下界面

29、,录入新的读者信息。在录入新的读者信息时,系统自动将其借书证号作为ID,密码默认为666666添加到用户表中,方便读者登录本系统。 您还可以在设置条件里确切的找到读者信息,对其进行修改和删除,点击“修改”后,进入如下界面,修改后点击“确定”。同时,您也可以点击“删除”,删除读者信息。点击后,返回一个信息框,提示是否要删除,如果您点击“是”,就将该读者信息删除了。最后点击“返回”,回到图 。9.附录(代码)9.1 附录一(登录界面)Private Sub Command3_Click()Form6.ShowUnload MeEnd SubPrivate Sub Form_Activate()yh

30、dl3 = 0End SubPrivate Sub Command1_Click()yhdl3 = yhdl3 + 1Adodc1.RecordSource = select Password from 用户 where ID = + Text1.Text + AND Password = + Text2.Text + Adodc1.Refreshyhdl2 = Adodc1.Recordset.RecordCountIf yhdl2 = 0 ThenMsgBox 用户名或密码错误,请重新输入, , 提示If yhdl3 2 ThenMsgBox 您已输错3次,已无法登陆!, , 提示Unlo

31、ad MeEnd IfExit SubElseAdodc2.RecordSource = select 权限 from 用户 where ID = + Text1.Text + Adodc2.RefreshSet DataGrid1.DataSource = Adodc2DataGrid1.Refreshyhdl = DataGrid1.TextIf yhdl = 普通用户 ThenForm2.ShowForm2.Command1.Enabled = FalseForm1.HideElseForm2.ShowForm1.HideEnd IfEnd IfEnd SubPrivate Sub Co

32、mmand2_Click()Unload MeEnd SubPrivate Sub 登录_Click()yhdl3 = yhdl3 + 1Adodc1.RecordSource = select Password from 用户 where ID = + Text1.Text + AND Password = + Text2.Text + Adodc1.Refreshyhdl2 = Adodc1.Recordset.RecordCountIf yhdl2 = 0 ThenMsgBox 用户名或密码错误,请重新输入, , 提示If yhdl3 2 ThenMsgBox 您已输错3次,已无法登陆!

33、, , 提示Unload MeEnd IfExit SubElseAdodc2.RecordSource = select 权限 from 用户 where ID = + Text1.Text + Adodc2.RefreshSet DataGrid1.DataSource = Adodc2DataGrid1.Refreshyhdl = DataGrid1.TextIf yhdl = 普通用户 ThenForm2.ShowForm2.Command1.Enabled = FalseForm1.HideElseForm2.ShowForm1.HideEnd IfEnd IfEnd SubPriv

34、ate Sub 退出_Click()Unload MeEnd SubPrivate Sub 修改密码_Click()Form6.ShowUnload MeEnd Sub9.2 附录二(查询界面)Private Sub Command1_Click()Text2.Text = Text3.Text = Adodc2.RecordSource = select sno as 书号,sname as 书名,swriter as 作者,sfy as 分类,登记日期 as 登记日期,是否被借 as 是否被借,价格 as 价格,出版社 as 出版社,年份 as 年份 from book where sna

35、me= + Text1.Text + Adodc2.RefreshSet DataGrid1.DataSource = Adodc2DataGrid1.RefreshEnd SubPrivate Sub Command2_Click()Text1.Text = Text2.Text = Adodc2.RecordSource = select sno as 书号,sname as 书名,swriter as 作者,sfy as 分类,登记日期 as 登记日期,是否被借 as 是否被借,价格 as 价格,出版社 as 出版社,年份 as 年份 from book where sfy= + Tex

36、t3.Text + Adodc2.RefreshSet DataGrid1.DataSource = Adodc2DataGrid1.RefreshEnd SubPrivate Sub Command3_Click()Text1.Text = Text3.Text = Adodc2.RecordSource = select sno as 书号,sname as 书名,swriter as 作者,sfy as 分类,登记日期 as 登记日期,是否被借 as 是否被借,价格 as 价格,出版社 as 出版社,年份 as 年份 from book where swriter= + Text2.Te

37、xt + Adodc2.RefreshSet DataGrid1.DataSource = Adodc2DataGrid1.RefreshEnd SubPrivate Sub Command4_Click()Unload MeForm2.ShowEnd SubPrivate Sub Command5_Click()Unload MeEnd SubPrivate Sub Command6_Click()Adodc6.RecordSource = select 已借书数 as 已借书数 from reader where 借书证号= + Text4.Text + Adodc6.RefreshSet

38、 DataGrid2.DataSource = Adodc6DataGrid2.RefreshText5.Text = DataGrid2.TextEnd Sub9.3 附录三(借阅模块)Private Sub Command1_Click()Unload MeForm2.ShowEnd SuPrivate Sub Command2_Click()Unload MeEnd SubPrivate Sub Command3_Click()Adodc3.RecordSource = select 是否被借 from book where sno= + Text1.Text + Adodc3.Refr

39、eshSet DataGrid2.DataSource = Adodc3DataGrid2.Refreshjl = DataGrid2.TextIf jl = 是 ThenComm1.Enabled = FalseMsgBox 您所查询的图书已被借走!, vbOKOnly, 信息提示ElseComm1.Enabled = TrueEnd IfEnd SubPrivate Sub Form_Load()recs = Adodc1.Recordset.RecordCountText2.Text = recsIf recs 0 ThenAdodc1.Recordset.MoveLastAdodc1.

40、Recordset.MoveFirstEnd IfEnd SubPrivate Sub Comm1_Click()flag = 1Form11.Show vbModalText2.Text = recsEnd SubPrivate Sub retComm_Click()Unload MeForm1.ShowEnd SubPrivate Sub Form_Activate()Text1(0) = : Text1(1) = Text1(2) = : Text1(3) = Text1(4) = : Text1(5) = End SubPrivate Sub Comm1_Click()If Trim(

41、Text1(0).Text) = ThenMsgBox 数据不能为空,请正确输入, vbOKOnly, 信息提示Text1(0).SetFocusExit SubEnd IfIf Trim(Text1(1).Text) = ThenMsgBox 数据不能为空,请正确输入, vbOKOnly, 信息提示Text1(1).SetFocusExit SubEnd IfIf Trim(Text1(2).Text) = ThenMsgBox 数据不能为空,请正确输入, vbOKOnly, 信息提示Text1(2).SetFocusExit SubEnd IfIf Trim(Text1(3).Text)

42、= ThenMsgBox 数据不能为空,请正确输入, vbOKOnly, 信息提示Text1(3).SetFocusExit SubEnd IfIf Trim(Text1(4).Text) = ThenMsgBox 数据不能为空,请正确输入, vbOKOnly, 信息提示Text1(4).SetFocusExit SubEnd IfAdodc1.RecordSource = select 已借书数 from reader where 借书证号= + Text1(0).Text + Adodc1.RefreshSet DataGrid1.DataSource = Adodc1DataGrid1.

43、Refreshyjss = DataGrid1.Textyjss = yjss + 1Adodc2.RecordSource = select * from book where sno= + Text1(1).Text + Adodc2.RefreshSet DataGrid2.DataSource = Adodc2 DataGrid2.Refreshsfbj = DataGrid2.TextIf sfbj = 是 ThenMsgBox 对不起!您所借的图书已被借走!, vbOKOnly, 信息提示ElseIf yjss 5 ThenMsgBox 对不起!您所借的书数已超过5本,请及时归还!

44、, vbOKOnly, 信息提示Elsesfbj = 是recs = recs + 1Form5.Adodc1.Recordset.AddNewForm5.Adodc1.Recordset.Fields(借书证号) = Trim(Text1(0).Text)Form5.Adodc1.Recordset.Fields(姓名) = Trim(Text1(2).Text)Form5.Adodc1.Recordset.Fields(sno) = Trim(Text1(1).Text)Form5.Adodc1.Recordset.Fields(sname) = Trim(Text1(3).Text)Form5.Adodc1.Recordset.Fields(借出日期) = Trim(Text1(4).Text)Adodc1.Recordset.Fields(已借书数) = Trim(yjss)Adodc2.Recordset.Fields(是否被借) = Trim(sfbj)If Trim(Text1(5).Text) ThenFo

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 办公文档 > 其他范文


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号