




免费预览已结束,剩余27页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
题 目:图书管理系统 此设计还有源程序,有需要的朋友下载了文档后留下你的邮箱,方便我传给你。 附件1:课程设计任务书学生姓名班 级指导教师姓名职 称课程设计题目:图书管理系统任务与要求选题原因曾经自己使用过这个系统,根据现实经济生活、学生生活,提出题目,难易适中,业务情况容易了解,涉及其它专业的专业性也不太强。 系统功能描述在本系统中我们将建立图书管理查询启动封面功能模块,系统总控模块,普通用户登入模块,管理员登入模块,图书查询,修改,添加,更新,删除模块。参考文献中文文献1 篇英文文献 篇工作质量要 求采取“结构评定成绩”进行成绩的综合评定,即课程设计成绩由平时成绩、课程设计作品及课程设计报告三部分组成。其中:平时成绩占20%(其中:出勤10%、工作表现 10%),课程设计作品占50%(其中:程序代码整洁规范10%、程序运行结果正确30%、程序结构合理10%),课程设计报告30%。成绩分为优秀、良好、中等、及格、不及格五个等级。优秀为100分到90分,良好为89分到80分,中等为79分到70分,及格为69分到60分,不及格为60分以下。6优秀系统设计的标准如下:系统设计合理,有一定的实用性或趣味性,逻辑性强,界面友好,数据真实。 7优秀报告的标准如下:层次清晰,文字流畅,重点突出。课程设计(论文)工作的计划与进度安排:第一阶段:选定题目,分组分工(第1-2周);第二阶段:工作流程分析、ER图设计、概要设计、详细设计(第3-6周);第三阶段:进行界面和代码设计(第7-14周); 第四阶段:整理文档和设计的模块上交验收,评定成绩(第15-18周)。 注:每个阶段都要在限定时间内向任课老师提交相应的文档,并集体讨论。第三阶段要定期讨论进展情况。 图书管理系统内容摘要(登陆用户:曾天天 密码:070705048)图书管理系统是采用Visual Basic6.0开发的一个数据库管理系统。开发本系统的基本步骤:需求分析、系统概念设计、系统逻辑和物理设计、系统实现和维护。在系统分析中先后用数据字典、数据流程、系统的功能结构图、ER图分析了系统所需的各种数据。在系统的设计过程中,我们采用了模块独立设计法,比较详细的展现了各个模块的功能。在库和表的设计当中, 我们力求层次清晰,设计简单实用。在系统具体实行阶段中,我们精心细致的画出了各个窗体并给出了相应的事件和代码,以实现各个窗体的作用。开发环境:本图书管理开发系统是在Pentyum IV 以上机型的计算机上进行开发并获得通过的,同时方便系统开发,减少开发过程的难度,我们是基于以下的软件环境。以Windows XP为操作系统以Visual Basic6.0为开发工具以Access 2000作为后台数据库功能概述:该系统界面友好,操作简便,能完成添加图书信息,修改图书信息,查询图书信息,添加读者类别,修改读者类别,查询读者信息,修改读者信息等一系列图书管理功能,开发本系统的总体任务是实现图书管理的系统化和自动化,帮助管理人员更好更高效地完成图书管理工作。本着实用性和介绍性的原则,整个系统由四大模块组成,每个大的模块又包括三至四个小的模块。一、 图书管理部分:包括图书信息管理和类别管理,其功能是实现对各部分数据内容进行添加、修改、查询等操作。二、 读者管理部分:包括读者信息管理和读者类别管理,其功能是实现对各部分数据内容的添加和修改等操作。三、 借阅管理部分:包括借书管理和还书管理,其功能是实现对各部分数据内容的添加和查询等操作。四、 系统管理部分:包括修改系统用户密码和增加新用户两项功能。 系统具有高效、易操作、易维护等特点,并且系统结构清晰、界面友好,功能较为齐全,能有效地协助管理人员进行图书管工作。如果想真正把它用到图书馆的图书自动化管理中,还需要读者对该系统进行一步的完善工作。需求分析需求分析阶段确定的系统逻辑模型是以后设计和实现目标系统的基础,因此必须准确完整地体现用户的要求。2.1系统的数据字典本系统的主要数据元素的数据字典卡片:名字:读者信息查询报表别名:读者信息表描述:读者基本情况查询结果的信息表定义:读者信息查询报表读者编号读者姓名性别类别单位住址电话登记日期已借书数量位置:输出到打印机名字:图书信息查询报表别名:图书信息表描述:各种书籍查询基本信息表定义:图书信息查询报表图书编号书名类别作者出版社出版日期登记日期是否被借出位置:输出到打印机2.2. 数据流程图数据流程图(Data Flow DFD)是描述实际业务管理系统工作流程的一种图形表示法。它描绘系统的逻辑模型图,其中没有任何具体的物理元素,只是描绘信息在系统中流动和处理的情况。因为数据流图是逻辑系统的图形表示,即使不是专业的计算机技术人员也容易理解,所以是极好的通信工具。此外,设计数据流图只需考虑系统必须完成的基本逻辑功能,完全不需要考虑如何具体地实现这些功能,所以它也是软件设计的很好的出发点。图书管理系统主要是为了对图书、读者基本信息等进行计算机管理。下面就是对各个功能模块的流程分析:修改删除添加1 图书类别管理基本信息流程图图书类别管理 流程图分析:图书类别基本信息的流动首先是以图书类别的编号为依据,来达到添加、修改、查询图书类别记录。同时,也对数据库中的图书类别表的编号进行检查。 2 图书信息管理基本信息流程图 图书信息管理添加修改删除流程图分析:图书基本信息的流动首先是以图书编号为流动方向的依据,来达到添加、修改、记录、删除图书记录。为了数据的一致性,进行这些操作的同时,也对数据库中的记录进行检查,检查是否有重复的记录。如有则不能进行添加。3 读者类别管理基本信息流程图读者类别管理修改删除添加流程图分析:读者类别基本信息的流动首先是以读者类别编号为流动方向的依据,来达到添加、修改、记录读者类别记录。为了数据的一致性,进行这些操作的同时,也对数据库中的记录进行检查,检查是否有重复的记录。如没有则可进行添加。4 读者信息管理基本信息流程图查询修改删除添加读者信息管理流程图分析:读者基本信息的流动首先是以读者的编号为依据,来达到添加、修改、查询、删除读者信息的记录。同时,也对数据库中的读者信息表的编号进行检查。 5借书管理基本信息流程图查询删除添加借书管理流程图分析:借书管理基本信息的流动首先是以借阅编号为流动方向的依据,来达到添加、查询借书记录。为了数据的一致性,进行这些操作的同时,也对数据库中的记录进行检查,检查是否有重复的记录。如没有则可进行添加。6 还书管理基本信息流程图查询删除添加还书管理流程图分析:借阅管理部分是实现对各部分数据内容的添加和查询操作,在借阅信息中包括借阅编号、读者编号、读者姓名、书籍名称、出借日期和还书日期。并通过添加功能来达到借阅信息表的数据的更新,通过查询可使管理员很快地了解借阅信息,从而避免书籍的丢失现象产生。通过上面对各个模块流程的分析,那么我们就不难对整个系统的大致流程有一个全面的认识。设计时采用了常用的自顶向下的瀑布式结构化设计方法。各子系统具有独立的数据库结构,同时又具有相关的关键字,这样系统做起来后就便于用户操作。综合上面各个模块的流程分析,其总体流程图如下:图书管理系统图书管理读者管理图书借阅管理系统管理添加管理员修改密码退出系统图书类别管理图书信息管理读者信息管理读者类别管理借书管理还书管理2.3.系统的概念设计概念设计阶段主要任务和目标是根据需求分析的结果,包括一般联系实体,画出对应的ER图。对于复杂的系统,通常首先要对它的各功能模进行分析,然后再把它的功能结构图画出来,便是设计和优化。功能分析之后,再根据各个岗位、各个用户对数据和使用权限的不同要求作出局部ER图,然后再把各个局部ER图综合起来形成统一的整体ER图。 3.1模块功能分析图书管理部分:包括图书信息管理和类别管理,其功能是实现对各部分数据内容进行添加、修改、查询等操作。各管理部分的明细如下:(1)图书信息管理:包括图书信息的添加、图书信息的修改、图书信息的查询和图书的信息删除4部分。其中,图书信息包括图书编号、书名、图书类别、作者、出版社、出版日期、登记日期以及是否已被借出。(2)图书类别管理:包括图书类别的添加、图书类别的修改、图书类别的删除3部分功能。其中,图书类别包括类别名称和类别编号两部分。借阅管理部分:包括借书管理和还书管理,其功能是实现对各部分数据内容的添加和查询等操作。各管理部分的明细如下:(1)借书管理:包括添加借书信息和查询借书信息2部分功能。其中,借阅信息包括借阅编号、读者编号、读者姓名、图书编号、图书名称、出借日期和还书日期。(2)还书管理:实现添加还书信息功能。其中,还书信息与借阅信息部分明细相同。读者管理部分:包括读者信息管理和读者类别管理,其功能是实现对各部分数据内容的添加和修改、删除等操作。各管理部分的明细如下:(1)读者信息管理:包括读者信的添加、读者信息的修改、读者信息的查询和读者信息的删除4部分功能。其中,读者信息包括读者姓名、读者编号、性别、读者类别、工作单位、家庭住址、电话号码、登记日期和已借书数量。(2)读者类别管理:包括读者类别的添加、读者类别的修改、读者类别的删除3部分功能。其中,读者类别包括各种类名称、借书期限和有效期限4部分。系统管理部分:包括修改系统用户密码、增加新用户和退出系统三项功能。系统初始设置一个超级用户名和密码,操作人员可以利用这个超级用户名和密码登录,之后,可以设置其他的超级用户名称,也可以设置权限用户,同时也设置了这个用户可以使用的权限。 3.2系统功能结构图图书管理系统图书管理读者管理图书借阅管理系统管理添加管理员修改密码退出系统图书类别管理图书信息管理读者信息管理读者类别管理借书管理还书管理 3.3系统ER图的设计数据库在一个信息管理系统中占有非常重要的地位,数据库结构设计的好坏将直接对应用系统的效率以及实现的效果产生影响。合理的数据库结构设计可以提高数据存储的效率,保证数据的完整和一致。同时,合理的数据库结构也将有利于程序的实现。设计数据库系统时应该首先充分了解用户各个方面的需求,包括现有的以及将来可能增加的需求。针对图书管理系统的需求,通过对图书管理系统流程分析,设计此系统需要如下面所示的数据项和数据结构:图书信息:包括的数据项有:图书编号、书名、图书类别、作者出版社、出版日期、登记日期读者信息:包括的数据项有:读者姓名、编号、性别、读者类别、工作单位、家庭住址、电话号码、登记日期和已借书数量图书借阅信息:包括的数据项有:借阅编号、读者编号、读者姓名、图书编号、图书名称、出借日期和还书日期。在概念设计阶段中,设计人员从用户的角度看待数据及处理要求和约束,产生一个反映用户观点的概念模式。然后再把概念模式转换成逻辑模式。将概念设计从设计过程中独立开来,使各阶段的任务相对单一化,设计复杂程度大大降低,不受特定DBMS的限制。利用ER方法进行数据库的概念设计,可分成三步进行:首先设计局部ER模式,然后把各局部ER模式综合成一个全局模式,最后对全局ER模式进行优化,得到最终的模式,即概念模式。 ER模型的“联系”用于刻画实体之间的关联。一种完整的方式是对局部结构中任意两个实体类型,依据需求分析的结果,考察局部结构中任意两个实体类型之间是否存在联系。若有联系,进一步确定是1:N,M:N,还是1:1等。还要考察一个实体类型内部是否存在联系,两个实体类型之间是否存在联系,多个实体类型之间是否存在联系,等等。所有局部ER模式都设计好了后,接下来就是把它们综合成单一的全局概念结构。全局概念结构不仅要支持所有局部ER模式,而且必须合理地表示一个完整、一致的数据库概念结构。1)确定公共实体类型 为了给多个局部ER模式的合并提供开始合并的基础,首先要确定各局部结构中的公共实体类型。在这一步中我们仅根据实体类型名和键来认定公共实体类型。一般把同名实体类型作为公共实体类型的一类候选,把具有相同键的实体类型作为公共实体类型的另一类候选。2)局部ER模式的合并 合并的原则是:首先进行两两合并;先和合并那些现实世界中有联系的局部结构;合并从公共实体类型开始,最后再加入独立的局部结构。3)消除冲突 冲突分为三类:属性冲突、结构冲突、命名冲突。设计全局ER模式的目的不在于把若干局部ER模式形式上合并为一个ER模式,而在于消除冲突,使之成为能够被所有用户共同理解和接受的同一的概念模型。3)全局ER模式的优化 在得到全局ER模式后,为了提高数据库系统的效率,还应进一步依据处理需求对ER模式进行优化。一个好的全局ER模式,除能准确、全面地反映用户功能需求外,还应满足下列条件:实体类型的个数要尽可能的少;实体类型所含属性个数尽可能少;实体类型间联系无冗余。根据上述所示得出本系统的全局ER图如下:2.3. 系统逻辑和物理设计2.3.1数据库的设计根据上面的数据库ER图,现在需要将上面的数据库概念结构转化为SQL Server2000数据库系统所支持的实际数据模型,也就是数据库的逻辑结构。在上面的实体以及实体之间关系的基础上,形成数据库中的表格以及各个表格之间的关系。图书管理信息系统数据库中各个表格的设计结果如下面的几个表格所示。每个表格表示在数据库中的一个表。1.图书类别表字段名数据类型说明类别名称文本必添字段“是”,允许空字符为“否”类别编号文本必添字段“是”,允许空字符为“否”2.图书信息表字段名数据类型说明图书编号文本必添字段“是”,允许空字符为“否”书名文本必添字段“是”,允许空字符为“否”类别文本字段大小50作者文本字段大小50出版社文本字段大小50出版日期日期/时间无登记日期日期/时间无是否借出文本字段大小23.借阅信息表字段名数据类型说明借阅编号自动编号无读者编号文本字段大小50读者姓名文本字段大小50图书编号文本字段大小50图书名称文本字段大小50出借日期日期/时间无4.读者信息表字段名数据类型说明读者姓名文本必添字段“是”,允许空字符为“否”读者编号文本必添字段“是”,允许空字符为“否”性别文本字段大小2读者类别文本字段大小50工作单位文本字段大小50家庭住址文本字段大小50电话号码文本字段大小50登记日期日期/时间无已借数量数字无5.读者类别表 字段名数据类型说明种类名称文本必添字段“是”,允许空字符为“否”借书数量数字无借书期限数字无有限期限数字无2.3.2数据库的维护 由于应用环境不断变化,数据库运行过和中物理存储也会不断变化,对数据库设计进行调整,修改等维护工作是设计工作的继续和提高。对数据库经常性的维护工作主要包括:1. 数据库的转储和恢复针对不同的应用要求制定不同的转储计划,保证一旦发生故障能尽快将数据库恢复到某种一致的状态,尽可能减少对数据库的破坏。2. 数据库的安全性、完整性控制在数据库运行过程中由于应用环境的变化,对安全性的要求也会发生变化,如原来机密的数据现在可以公开查询了,新加入的数据又可能是机密的了。系统中用户的密级改变。这都需要根据实际情况修改原有的安全性控制,可以设置数据库密码及用户权限。同样,数据库的完整性的约束条件也会变化,需要DBA不断修正。3. 数据库性能的监督、分析和改造利用Microsoft SQL Server2000提供的检测系统性能参数的工具,在数据库运行过程中,监督数据进行分析,找出改进系统性能的方法,并做适当调整。4. 数据库的重组及重构造数据库运行一段时间后,由于记录不断增、删、改,增添、修改的数据不能为空,否则不能保存到数据库中。使数据库的物理存储情况变坏,降低了数据的存取效率,数据库性能下降,这时DBA要对数据库进行重组织,或部分重组织(只对频繁增、删的表进行重组织),可以利用Microsoft SQL Server2000专门提供的数据重组织实用程序操作,按原设计要求重新安排存储位置、回收垃圾、减少指针链等,提高系统性能。有些情况,如由于数据库应用环境发生变化,增加了新的应用或新的实体,取消了某些应用,有的实体与实体间的联系发生变化,则需要调整数据库的模式及内模式。4.3功能模块的实现数据库设计这里的数据库采用Access,用ADO作为连接数据对象。1、建立Access 数据库启动Access,建立一个空的数据库book.mdb,如图3所示。使用程序设计器建立系统需要的表格如下。图书登记表,如图4所示。图3建立数据库book.mdb 图4 图书登记表图书借阅表,如图5所示。图5 图书借阅表图书资料表,如图6所示。系统管理表,如图7所示。图6 图书资料表 图7 系统管理表。2、连接数据在Visual Basic环境下,选择“工程”“引用”命令,在随后出现的对话框中选择“Microsoft ActiveX Data Objects 2.0 Library”,然后单击“确定”按钮,如图8所示。图8用ADO连接数据库在程序设计的公共模块中,先定义ADO连接对象。语句如下:Public conn As New ADODB.Connection 标记连接对象然后在子程序中,用如下的语句即可打开数据库:Dim connectionstring As Stringconnectionstring = provider=Microsoft.Jet.oledb.4.0; &_data source=book.mdbconn.Open connectionstring3、设置ODBCVB的ADO对象是通过ODBC来访问数据库,所以还要建立ODBC数据引擎接口。打开控制面板中的“管理工具”“数据源”(ODBC),出现如图9所示的对话框。图9DBC对话框单击“添加”按钮,出现“创建新数据源”对话框,如图10。图10创建新数据源”对话框选择Microsoft Access Driver(*.mdb),单击“完成”按钮,出现如图11对话框。图11置连接数据源在“数据源名”文本框中添加一个名字,单击“确定”按钮完成系统默认连接设置。然后在ODBC对话框中单击“确定”按钮完成ODBC设置。界面设计设计好的界面如图12所示。图12 图书管理系统界面这是一个多文档界面(MDI)应用程序,可以同时显示多个文档,每个文档显示在各自的窗体中。MDI 应用程序中常有包含子菜单的“窗体”选项,用于在窗体或文档之间进行切换。菜单应用程序中,有5个菜单选项,每个选项对应着E-R图的一个子项目。1、创建主窗体首先创建一个工程,命名为图书管理系统,选择“工程”“添加MDI窗体”命令,则在项目中添加了主窗体。该窗体的一些属性如表1所示。表1 主窗体的属性属 性值Caption图书管理系统NameMainMenuMainmenu1WindowstateMaxsizeWindowstate的值为Maxsize,即程序启动之后自动最大化。将“菜单”组件从“工具箱”拖到窗体上。创建一个 Text 属性设置为“文件”的顶级菜单项,且带有名为“关闭”的子菜单项。类似地创建一些菜单项,如表2所示。表2 菜 单 项 表菜 单 名 称Text属性功 能 描 述MenuItem1图书管理顶级菜单,包含子菜单MenuItem2图书类别调出图书登记窗体MenuItem3图书信息调出图书借阅窗体MenuItem4图书资料顶级菜单,包含子菜单MenuItem5查询输出调出查询输出窗体MenuItem6系统管理顶级菜单,包含子菜单MenuItem7增加用户调出用户窗体MenuItem8修改密码调出密码窗体MenuItem9退出系统退出2、创建各子窗体选择“工程”“添加窗体”命令,添加子窗体。在新建Visual Basic工程时自带的窗体中,将其属性MIDChild改成True,则这个窗体成为MID窗体的子窗体。在这个项目中,要创建的子窗体如表3所示。表3 所有子窗体子 窗 体 名Text图书登记frmdengji图书借阅frmjieyue增加新用户frmadduser查询输出frmfind登录系统frmlogin修改密码frmchangepwd下面分别给出这些子窗体,以及它们所使用的控件。(1) 图书登记子窗体控件如表4所示。表4 图书登记子窗体控件控 件 类 别控件Name控件TextLabelLabel1编号Label2书名Label3类型Label4购买日期Label5TextBoxText1(空)Text2(空)Text3(空)Text4(空)Text5(空)CommandButtonCommand1Command2ADO DataAdodc1(空)DataGridDataGrid1(空)图书借阅和图书赔偿子窗体分别,因为它们的控件与图书登记子窗体的雷同,在此不作介绍。(2) 增加用户子窗体如图13所示,其控件如表5所示。图13 增加用户子窗体表5 增加用户子窗体控件控 件 类 别控件Name控件TextLabelLabel1输入用户名Label2输入密码Label3确认密码TextBoxText1(空)Text2(空)Text3(空)ComboBoxComb1选择权限CommandButtonCommandl确定Command2取消(3) 修改密码子窗体如图14所示。图14 修改密码子窗体(4) 用户登录子窗体如图15所示。图15 用户登录子窗体 (5) 添加读者类别如图16,其控件如表9所示。图16建立公共模块1、显示目录建立公共模块可以提高代码的效率,同时使得修改和维护代码都很方便。创建公共模块的步骤如下:(1) 在菜单中选择“工程”“添加模块”命令,则出现模块对话框,如图18所示。(2) 选择模块图标后,单击“打开”按钮,则模块已经添加到项目中了。默认情况下名为Module1。图17 模块对话框(3) 在模块中定义整个项目的公共变量。Public conn As New ADODB.Connection 标记连接对象Public userID As String 标记当前用户IDPublic userpow As String 标记用户权限Public find As Boolean 标记查询Public sqlfind As String 查询语句Public rs_data1 As New ADODB.RecordsetPublic findok As BooleanPublic frmdata As BooleanPublic Const keyenter = 13 enter键的ASCII码在主窗体添加完菜单之后,就要为各个子菜单创建事件处理程序。主窗体代码在本项目中,子菜单事件都是Click事件,这里先给出主窗体部分的代码。下面是响应“增加用户”子菜单Click事件,调出增加用户窗体代码。Private Sub add_admin_Click()frmadduser.ShowEnd SubPrivate Sub add_back_book_Click()frmbackbookinfo.ShowEnd SubPrivate Sub add_book_info_Click()frmaddbookinfo.ShowEnd SubPrivate Sub add_book_style_Click()frmaddbookstyle.ShowEnd SubPrivate Sub add_lend_book_Click()frmfindbook.ShowEnd SubPrivate Sub add_reader_info_Click()frmaddreaderinfo.ShowEnd SubPrivate Sub add_reader_style_Click()frmaddreaderstyle.ShowEnd SubPrivate Sub change_pwd_Click()frmchangepwd.ShowEnd SubPrivate Sub del_book_info_Click()frmmodifybookinfo.ShowEnd SubPrivate Sub del_book_style_Click()frmmodifybookstyle.ShowEnd SubPrivate Sub del_reader_info_Click()frmreaderinfo.ShowEnd SubPrivate Sub del_reader_style_Click()frmmodifyreaderstyle.ShowEnd SubPrivate Sub exit_sys_Click()EndEnd SubPrivate Sub find_book_info_Click()frmfindbook.ShowEnd SubPrivate Sub find_lend_book_Click()frmfindborrowinfo.ShowEnd SubPrivate Sub find_reader_info_Click()frmfindreader.ShowEnd SubPrivate Sub Form_Load()End SubPrivate Sub modify_book_info_Click()frmmodifybookinfo.ShowEnd SubPrivate Sub modify_book_style_Click()frmmodifybookstyle.ShowEnd SubPrivate Sub modify_reader_info_Click()frmreaderinfo.ShowEnd SubPrivate Sub modify_reader_style_Click()frmmodifyreaderstyle.ShowEnd Sub2、各子窗体的代码(1) 图书登记子窗体代码本窗体用来填写图书登记的信息,用ADO来连接数据库,是本窗体的重点。采用MDI的子程序,所以运行后,它出现在主程序的界面下,如图18所示。图18 图书登记子窗体按钮控件要求先填写基本信息,然后与数据库信息比较。Option ExplicitPrivate Sub Command1_Click()Dim rs_addbook As New ADODB.RecordsetDim sql As StringIf Trim(Combo1.Text) = Then MsgBox 请选择图书种类, vbOKOnly + vbExclamation, Combo1.SetFocus Exit SubEnd IfIf Trim(Text1.Text) = Then MsgBox 图书编号不能为空, vbOKOnly + vbExclamation, Text1.SetFocus Exit SubEnd IfIf Trim(Text2.Text) = Then MsgBox 书名不能为空, vbOKOnly + vbExclamation, Text2.SetFocus Exit SubEnd If If Not IsDate(Text5.Text) Then MsgBox 请按照yyyy-mm-dd格式输入日期, vbOKOnly + vbExclamation, Text5.SetFocus Exit Sub End If If Not IsDate(Text6.Text) Then MsgBox 请按照yyyy-mm-dd格式输入日期, vbOKOnly + vbExclamation, Text6.SetFocus Exit Sub End Ifsql = select * from 书籍信息 where 书籍编号= & Text1.Text & rs_addbook.Open sql, conn, adOpenKeyset, adLockPessimisticIf rs_addbook.EOF Then rs_addbook.AddNew rs_addbook.Fields(0) = Trim(Text1.Text) rs_addbook.Fields(1) = Trim(Text2.Text) rs_addbook.Fields(2) = Trim(Combo1.Text) rs_addbook.Fields(3) = Trim(Text3.Text) rs_addbook.Fields(4) = Trim(Text4.Text) rs_addbook.Fields(5) = Trim(Text5.Text) rs_addbook.Fields(6) = Trim(Text6.Text) rs_addbook.Fields(7) = 否 rs_addbook.Update MsgBox 添加书籍信息成功!, vbOKOnly, rs_addbook.CloseElse MsgBox 图书编号重复!, vbOKOnly + vbExclamation, Text1.SetFocus Text1.Text = rs_addbook.Close Exit SubEnd IfEnd SubPrivate Sub Command2_Click()Unload MeEnd SubPrivate Sub Form_Load()Dim rs_leibie As New ADODB.RecordsetDim sql As Stringsql = select * from 图书类别rs_leibie.Open sql, conn, adOpenKeyset, adLockPessimisticrs_leibie.MoveFirstDo While Not rs_leibie.EOF Combo1.AddItem rs_leibie.Fields(0) rs_leibie.MoveNextLooprs_leibie.CloseEnd SubPrivate Sub Frame1_DragDrop(Source As Control, X As Single, Y As Single)End Sub图书借阅子窗体运行后如图19所示,因为它们的代码和图书登记子窗体的代码雷同,在此不做重复。图19 图书借阅子窗体运行效果 (2) 增加用户子窗体代码增加用户子窗体是用来增加用户的用户名、密码和权限的。单击“确定”按钮后,还要返回一个信息框,提示成功信息,如图20所示。图20 增加用户子窗体运行效果 信息框窗体部分代码的思路是,收集输入的表中的字符串,然后与数据库中的系统的用户数据比较,如果不存在,则允许添加。Private Sub Command1_Click()Dim sql As StringDim rs_add As New ADODB.RecordsetIf Trim(Text1.Text) = Then MsgBox 用户名不能为空, vbOKOnly + vbExclamation, Exit Sub Text1.SetFocusElse sql = select * from 系统管理 rs_add.Open sql, conn, adOpenKeyset, adLockPessimistic While (rs_add.EOF = False) If Trim(rs_add.Fields(0) = Trim(Text1.Text) Then MsgBox 已有这个用户, vbOKOnly + vbExclamation, Text1.SetFocus Text1.Text = Text2.Text = Text3.Text = Combo1.Text = Exit Sub Else rs_add.MoveNext End If Wend If Trim(Text2.Text) Trim(Text3.Text) Then MsgBox 两次密码不一致, vbOKOnly + vbExclamation, Text2.SetFocus Text2.Text = Text3.Text = Exit Sub ElseIf Trim(Combo1.Text) system And Trim(Combo1.Text) guest Then MsgBox 请选择正确的用户权限, vbOKOnly + vbExclamation, Combo1.SetFocus Combo1.Text = Exit Sub Else rs_add.AddNew rs_add.Fields(0) = Text1.Text rs_add.Fields(1) = Text2.Text rs_add.Fields(2) = Combo1.Text rs_add.Update rs_add.Close MsgBox 添加用户成功, vbOKOnly + vbExclamation, Unload Me End IfEnd IfEnd SubPrivate Sub Command2_Click()Unload MeEnd SubPrivate Sub Form_Load()Combo1.AddItem systemCombo1.AddItem guestEnd Sub(3) 修改密码子窗体代码修改密码子窗体是用来修改用户密码的。图21修改密码子窗体运行效果在“确定”按钮的Click事件中添加如下代码:Private Sub Command1_Click()Dim rs_chang As New ADODB.RecordsetDim sql As StringIf Trim(Text1.Text) Trim(Text2.Text) ThenMsgBox 密码不一致!, vbOKOnly + vbExclamation, Text1.SetFocusText1.Text = Text2.Text = Elsesql = select * from 系统管理 where 用户名= & userID & rs_chang.Open sql, conn, adOpenKeyset, adLockPessimisticrs_chang.Fields(1) = Text1.Textrs_chang.Updaters_chang.CloseMsgBox 密码修改成功, vbOKOnly + vbExclamation, Unload MeEnd IfEnd Sub图22在上述代码中,首先比较两个表中的数据是否一致,然后用rs_chang.Fields(1) = Text1.Text语句把代码输入到数据库中。最后,用MsgBox 密码修改成功, vbOKOnly + vbExclamation,语句弹出一个信息框,告诉修改成功,如图22所示。(4) 查询子窗体代码查询子窗体是用来查询库房中图书资料明细的。其运行效果如图23所示。图23 查询子窗体运行效果Option ExplicitDim panduan As StringPrivate Sub Command1_Click()Dim rs_findbook As New ADODB.RecordsetDim sql As StringIf Check1.Value = vbChecked Then sql = 书名= & Trim(Text1.Text & ) & End IfIf Check2.Value = vbChecked Then If Trim(sql) = Then sql = 类别= & Trim(Combo1.Text & ) & Else sql = sql & and 书名= & Trim(Combo1.Text & ) & End IfEnd IfIf Check3.Value = vbChecked Then If Trim(sql) = Then sql = 作者= & Trim(Text2.Text & ) & Else sql = sql & and 作者= & Trim(Text2.Text & ) & End IfEnd IfIf Check4.Value = vbChecked Then If Trim(sql) = Then sql = 出版社= & Trim(Text3.Text & ) & Else sql = sql & and 出版社=
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 中国移动荆州市2025秋招行业解决方案岗位专业追问清单及参考回答
- 资阳市中石油2025秋招面试半结构化模拟题及答案油田勘探开发岗
- 郴州市中石油2025秋招笔试英语专练题库及答案
- 2025年会计文案考试题及答案
- 历史玄学考试试题及答案
- 平凉市中石化2025秋招面试半结构化模拟题及答案财务与审计岗
- 廊坊市中石化2025秋招笔试英语专练题库及答案
- 忻州市中储粮2025秋招购销统计岗高频笔试题库含答案
- 衢州市中石油2025秋招笔试模拟题含答案法律与合规岗
- 中国广电上饶市2025秋招笔试行测题库及答案财务审计类
- 电力系统反恐怖知识讲座
- 铁道车辆制动装置及制动新技术全套教学课件
- 对意外伤害儿童的紧急救治方法
- 化学氧化二氧化氯氧化课件
- 为成果而管理
- 乳腺癌骨转移护理查房课件
- 新视野大学英语1读写教程-Unit1-Fresh-Start-课件
- 中建盘扣式落地卸料平台施工方案
- 客户信息登记表
- 不合格品处置记录表(标准版)
- 中医科自查、评价、分析、整改记录
评论
0/150
提交评论