图书管理系统的设计与应用建环094134张齐_第1页
图书管理系统的设计与应用建环094134张齐_第2页
图书管理系统的设计与应用建环094134张齐_第3页
图书管理系统的设计与应用建环094134张齐_第4页
图书管理系统的设计与应用建环094134张齐_第5页
已阅读5页,还剩42页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、图书管理系统的设计与应用 vb课程设计课程设计报告课程名称:vb程序设计 设计题目: 图书管理系统的设计与应用 专业班级: 建环 0941 指导老师: 姓 名: 张齐 学 号: 34 设计日期: 2010-7-2成 绩: 目 录第一章 绪 论31.1 数据库应用系统开发简介41.1.1 数据库41.1.2 数据库管理系统41.1.3 创建数据库41.2 图书管理系统4第二章 图书管理系统的总体设计52.1 功能分析52.1.1 系统结构52.1.2 模块设计6第三章 数据库及开发平台83.1 数据库设计8第四章 图书管理系统的具体实现94.1 建立主窗体94.1.1 添加菜单94.1.2 添加

2、代码94.2 建立添加图书类别窗体94.2.1 建立窗体94.2.2 添加控件104.2.3添加代码104.3 建立图书类别管理窗体(修改、删除类别)124.3.1 建立窗体124.3.2 添加控件124.3.3 添加代码124.4 建立添加图书信息窗体164.4.1 建立窗体164.4.2 添加控件164.4.3 添加代码164.5 建立图书信息管理窗体194.5.1 建立窗体194.5.2 添加控件194.5.3 添加代码194.6 建立查询图书信息窗体234.6.1 建立窗体234.6.2 添加代码234.7 建立添加借书信息窗体254.7.1 建立窗体254.7.2 添加控件264.7

3、.3 添加代码264.8 建立查询借书信息窗体314.8.1 建立窗体314.8.2 添加控件314.8.3 添加代码314.9 建立添加还书信息窗体324.9.1 建立窗体324.9.2 添加控件334.9.3 添加代码34第五章 系统的发布37第六章 结论和总结38第七章 教师评语 成绩评定38vb课程设计目的通过vb课程设计,巩固加深vb理论知识,使理论和实践相结合。培养学生对vb应用系统开发设计能力;提高学生对vb知识的综合运用能力;增强学生程序设计能力,提高学生实际上机调试程序的动手能力。使学生对vb软件开发有一个总体认识,使学生得到很好的锻炼,为以后的学习、工作打下坚实的基础。所需

4、环境: 硬件环境:校内机房微机软件环境:windows xp, vb6.0,access 2003第一章 绪 论1.1 数据库应用系统开发简介在数据库应用系统开发之前,对开发数据库的基本概念应当了解,对数据库的结构、开发数据库应用程序的步骤、开发体系及方法都应当有相当清晰的了解和认识。数据库应用系统开发的目标是建立一个满足用户长期需求的产品。开发的主要过程为:理解用户的需求,然后,把它们转变为有效的数据库设计。把设计转变为实际的数据库,并且这些数据库带有功能完备、高效能的应用。数据库技术在计算机软件邻域研究中一直是非常重要的主题,产生于60年代,30多年来数据库技术得到了迅速发展,并已形成较为

5、完整的理论体系和一大批实用系统。并且,近年来,随着world wide web(www)的猛增及internet技术的迅速发展,使得数据库技术成为最热门技术之一。1.1.1 数据库数据库由dbms(数据库管理系统)处理,dbms则由开发人员和用户通过应用程序直接或间接地使用。它主要包括四个要素:用户数据、元数据、索引和应用元数据。1.1.2 数据库管理系统数据库管理系统(dbms)是指数据库系统中管理数据的软件系统。dbms是数据库系统的核心组成部分。对数据库的一切操作,包括定义、更新及各种控制,都是通过dbms进行的。dbms总是基于某种数据模型,可以把dbms看成是某种数据模型在计算机系统

6、上的具体实现。根据数据模型的不同,dbms可以分成层次型、网状型、关系型、面向对象型等。1.1.3 创建数据库数据库模式定义了数据库的结构、表、关系、域和业务规则。数据库模式是一种设计,数据库和应用正是建立在此基础上的。域是一列可能拥有的值的集合。必须为每一个表的每一列确定域。除了数据的物理格式外,还需要确定是否有些域对表来说是唯一的。数据库模式的最后一个要素是业务规则,它是对需要反映在数据库和数据库应用程序中的业务活动的约束。业务规则是模式的一个重要部分,因为他们指定了无论什么数据变化到达dbms引擎,允许的数据值必须满足的约束。不管无效的数据变化请求是来自窗体的用户、查询/修改请求还是应用

7、程序,dbms都应该拒绝。1.2 图书管理系统当今时代是飞速发展的信息时代。在各行各业中离不开信息处理,这正是计算机被广泛应用于信息管理系统的环境。计算机的最大好处在于利用它能够进行信息管理。使用计算机进行信息控制,不仅提高了工作效率,而且大大的提高了其安全性。尤其对于复杂的信息管理,计算机能够充分发挥它的优越性。计算机进行信息管理与信息管理系统的开发密切相关,系统的开发是系统管理的前提。本系统就是为了管理好图书信息而设计的。图书馆作为一种信息资源的集散地,图书和用户借阅资料繁多,包含很多的信息数据的管理,现今,有很多的图书馆都是初步开始使用,甚至尚未使用计算机进行信息管理。总的来说,缺乏系统

8、,规范的信息管理手段。尽管有的图书馆有计算机,但是尚未用于信息管理,没有发挥它的效力,资源闲置比较突出,这就是管理信息系统的开发的基本环境。数据处理手工操作,工作量大,出错率高,出错后不易更改。图书馆采取手工方式对图书借阅情况进行人工管理,由于信息比较多,图书借阅信息的管理工作混乱而又复杂;一般借阅情况是记录在借书证上,图书的数目和内容记录在文件中,图书馆的工作人员和管理员也只是当时对它比较清楚,时间一长,如再要进行查询,就得在众多的资料中翻阅、查找了,造成查询费时、费力。如要对很长时间以前的图书进行更改就更加困难了。基于这此问题,我认为有必要建立一个图书管理系统,使图书管理工作规范化,系统化

9、,程序化,避免图书管理的随意性,提高信息处理的速度和准确性,能够及时、准确、有效的查询和修改图书情况。第二章 图书管理系统的总体设计2.1 功能分析2.1.1 系统结构开发本系统的总体任务是实现图书管理的系统化和自动化,帮助图书管理人员更好更高 效地完成图书管理工作。本系统要完成的功能有: 书籍管理部分:这一部分包括书籍类别管理和书籍信息管理两部分。其中,书籍类别管理包括添加书籍类别、修改书籍类别等:书籍信息管理包括书籍信息的添加,书籍信息的修 改、书籍信息的查询、书籍信息的删除等。读者管理部分:这一部分包括读者类别管理和读者信息管理两部分。其中,读者类别管理包括添加读者类别、修改读者类别等:

10、读者信息管理包括添加读者信息、修改读者信息、删除读者信息、查询读者信息等。借阅管理部分:这一部分包括借书信息管理和还书信息管理两部分。其中,借书信息管 理包括借书信息的添加、借书信息的修改、借书信息的查询等:还书信息管理部分包括还书 信息的添加、还书信息的修改、还书信息的查询等: 系统管理部分:包括修改系统用户密码、增加新用户以及退出系统等。2.1.2 模块设计根据上面所介绍的主要功能,对这个系统进行分析,得到如图1所示的系统功能模块图。2.1.3 书籍管理部分书籍管理部分包括书籍信息管理和书籍类别管理,其功能是实现对各部分数据内容的添 加、修改、删除等操作。各管理部分的明细如下:图书管理系统

11、读者管理部分系统管理部分书籍管理部分借阅管理部分还书管理读者类别管理书籍信息管理书籍类别管理读者信息管理增加用户修改密码借书管理 删除读者信息添加读者信息修改读者信息添加读者信息添加读者类别书籍类别修改书籍类别添加书籍信息删除书籍信息查询书籍信息修改书籍信息添加还书信息修改还书信息添加还书信息查询借书信息查询查询读者信息查询读者信息借书信息修改借书信息添加图1 系统功能模块图 (1)书籍信息管理:包括书籍信息的添加、书籍信息的修改、书籍信息的查询和书籍信息的删除4部分功能。其中,书籍信息包括图书编号、书名、图书类别、作者、出版社、出 版日期、登记日期以及是否已被借出。(2)书籍类别管理:包括书

12、籍类别的添加、书籍类别的修改、书籍类别的删除3部分功能。其中,书籍类别包括类别名称和类别编号两部分。2.1.4 读者管理部分读者管理部分包括读者信息管理和读者类别管理,其功能是实现对各部分数据内容的添 加、修改、删除等操作。各管理部分的明细如下: (1读者信息管理:包括读者信息的添加、读者信息的修改、读者信息的查询和读者信 息的删除4部分功能。其中,读者信息包括读者姓名、读者编号、性别、读者类别、工作单位、家庭住址、电话号码、登记日期和己借书数量。读者类别管理:包括读者类别的添加、读者类别的修改、读者类别的删除3部分功 能。其中,读者类别包括种类名称、借书数量、借书期限和有效期限4部分。 2.

13、1.5 借阅管理部分借阅管理部分包括借书管理和还书管理,其功能是实现对各部分数据内容的添加和查询 操作。各管理部分的明细如下: (1)借书管理:包括添加借书信息和查询借书信息2部分功能。其中,借阅信息包括借阅编号、读者编号、读者姓名、书籍编号、书籍名称、出借日期和还书日期。 (2)还书管理:实现添加还书信息功能。其中,还书信息与借阅信息各部分明细相同。 2.1.6 系统管理部分设置操作人员。系统初始设置一个超级用户名和密码,操作人员可以利用这个超级用户名和密码登录,之后,可以设置其他的超级用户名称,也可以设置权限用户,同时也设置了这个用户可以使用的权限。此外,在系统登录界面中输入密码与用户名不

14、符3次将自动退出登录。 主要用户界面的设计:登陆界面:学生借阅图书界面个人信息修改密码系统界面:管理员界面与系统详细设计界面:我负责的部分 第三章 数据库及开发平台3.1 数据库设计根据上面分析的系统的各种功能要求,可以很容易想到系统所需的数据库应该按照如下 思路设计:书籍类别、书籍信息、读者类别、读者信息和图书借阅部分等应该各自作为一个表存在,此外,系统管理员的信息单独使用一个表来记录。本系统服务器端采用windows xp作为操作系统,同时配置access数据库服务器,用于数据的存储和处理,客户端采用windowsxp操作系统。 前台开发工具采用visual basic6.0,后台数据库连

15、接是采用access2003数据库服务器。(1)microsoft access建立一个数据库我们有多种选择,在本系统中,作为图书馆管理系统的一个比较小的应用系统,它所产生和处理的数据量也比较小。因此,没有必要使用像sql server和oracle这样的大型数据库。microsoft office中的access数据库在计算机上的应用比较普及,是开发小型数据库系统的比较理想的选择,所以,在本系统中我选择了access数据库。与其他数据库系统相比,access更加简单易学,普通的计算机用户可以很快的掌握它。access2003的功能十分强大,利用它可以方便地实现对信息保存、维护、查询、统计、打

16、印、交流、发布,而且它可以方便地与office其他组件交流数据,这些功能对一般用户而言已经足够(2)visual basicmicrosoft visual basic 是可视化的,面向对象的,由事件驱动的结构化高级程序设计语言.它提供了最迅速,最简洁的开发应用程序的方法.visual 的中文意思是可视的,直观的,看得见的,形象化的.这里的visual指直观的开发应用程序界面的方法,只需将系统提供的标准控件放到屏幕窗体上, visual basic就会自动地生成相应控件的程序代码和其属性数据,而不需要用户去编写大量的界面程序代码. basic指的是basic语言,为beginner all-p

17、urpose symbolic instruction code 一词的缩写,意思是初学者通用符号指令代码.该语言在发展史上是使用最为广泛的程序设计语言,它易学,易懂,深受广大初学者的欢迎. visual basic 在原有basic语言的基础上发展成为易学,易掌握的,功能强大的最新程序设计语言. 数据库名:library.mdb1)数据库内含下列表admininfo (管理员资料)board (公告记录)bookinfo (图书资料)class (学生班级资料)classify (图书分类资料)landinfo (图书借阅登记资料)libraryinfo (图书馆基本配置记录)student

18、info (学生资料)2)数据库表详细设计admininfo,管理员资料记录表字段名称数据类型说明长度id自动编号管理员标识号长整型adminname文本登陆名10lpassword文本登陆密码10logins数字登陆次数长整型lastlogin日期/时间上次登陆时间tiptop数字是否最高管理员,是:1,否:0字节board,公告资料记录表字段名称数据类型说明长度id自动编号公告标识号长整型content文本公告内容60admin数字发表公告管理员id长整型addtime日期/时间公告发表时间,默认:now()bookinfo,图书资料记录字段名称数据类型说明长度id自动编号图书标识号长整型

19、name文本图书名20classify数字图书分类整型author文本图书作者20bookconcern文本图书出版社25addtime日期/时间进馆时间,默认:now()amount数字图书数量整型remain数字剩余数量整型loandegree数字借出次数长整型display数字是否显示,是:0,否:1字节class,学生班级资料记录字段名称数据类型说明长度id自动编号班级标识号长整型name文本班级名20classify,图书分类资料字段名称数据类型说明长度id自动编号分类标识号长整型name文本分类名10landinfo,图书借阅登记资料记录字段名称数据类型说明长度id自动编号借出图书

20、标识号长整型bookid数字借出的图书标识号长整型studentid数字借书的学生标识号长整型landtime日期/时间借出时间,默认:now()returntime日期/时间实际还书的时间shouldreturntime日期/时间应该还书的时间hadreturn数字标识是否已经归还,是:1,否:0字节canreland数字续借次数长整型libraryinfo,图书馆基本配置记录字段名称数据类型说明长度canland数字是否可借出图书,是:1,否:0字节canlandnum数字可以借出图书的数量 默认:0整型canlanddays数字图书可以借阅时间 默认:60天整型canreland数字可以

21、续借的次数 默认:5次整型boardreflash数字公告刷新时间 默认时间为6000毫秒长整型studentinfo,学生资料记录字段名称数据类型说明长度id自动编号学生标识号长整型name文本学生名5lpassword文本学生登陆密码10learnid文本学生学号12class数字班级标识号整型phone文本联系电话11lands数字借阅次数长整型logins数字登陆次数长整型lastlogin日期/时间最后登陆时间islock数字是否超时锁定是:1否:0字节3)安全性和完整性要求本程序实现学生与图书馆管理员的界面分离模式,同时实现管理员对学生有全面的资料管理功能。有多个图书、学生、系统的

22、动态管理功能,如:图书的查询、添加、删除、修改与及学生的详细资料的查询、添加、删除、修改等等多样、动态的管理。同时可以放权给非最高级管理员查询、添加、删除、修改的能力,实现密码修改。 第四章 图书馆管理系统的具体实现4.1 建立主窗体4.1.1 添加菜单使用菜单编辑器编辑系统主菜单。4.1.2 添加代码 主窗体中的代码不多,基本上都是实现单击某个菜单选项即弹出相应窗体的语句,这些 语句将分别在各个窗体中介绍。单击系统管理一)退出系统菜单,关闭系统代码如下。private sub exit_sys_click( )endend sub4.2 建立添加图书类别窗体4.2.1 建立窗体添加一个窗体,

23、并按照表所示设置窗体的属性。4.2.2 添加控件添加图书类别窗体由2个text控件、2个label控件、2个commandbutton控件组成。 其中,2个label控件作为标识,2个text控件接收用户输入,2个commandbutton控件作 为确定和取消按钮。添加这些控件,并按照表所示设置这些控件的属性。4.2.3添加代码当单击图书管理/图书类别管理/添加图书类别菜单时,弹出如图所示窗体。代码如下。 private sub add_book_style_click()frmaddbookstyle.showend sub当单击确定按钮时,首先检查输入的图书类型和种类编号是否为空,代码如下

24、。private subcommand1_click()dim sql as stringif trim(text1.text)=” then msgbox”图书种类不能为空”,vbokonly+vbexclamation,”text1.setfocusexit subend if if trim(text2.text)=” then msgbox”种类不能为空”,vbokonly+vbexclamation,”text1.setfocusexit subend if如果不为空,则检查类别名称是否有重复,需要打开图书类别表,先定义一个字符串类 型的变量和一个recordset对象变量。priv

25、ate sub comm.and1_click()dim rs_booksytle as new adodb.recordsetdim sql as stringif trim(text1.text)=” then使用recordset对象的open方法打开数据表。private sub comm.and1_click()end if sql=”select * from 图书类别 where 类别名称“&text1.text&”rs_bookstyle.open sql,conn,adopenkeyset,adlockpessimistic如果没有重复,此时recordset对象的eof属性

26、应改为fasle,此时将新的数据添加到数据库,并给出提示代码如下。private sub command1_click()if rs_bookstyle.eof then rs_bookstyle.addnewrs_bookstyle.fields(0)=trim(text1.text)rs_bookstyle.fields(1)=trim(text2.text)rs_bookstyle.updatemsgbox”添加图书类别成功!”,vbokonly, ”rs_bookstyel.closeelse如果有重复,则给出提示,然后将焦点设置给text1,并将所有的文本框清空,代码如下。priva

27、te sub command1_click()elsemsgbox”读者类别重复!”,vbokonly+vbexclamation.”text1.setfocustext1.text=”rs_bookstyle.close;exit subend ifend sub当单击取消时,则退出此窗体,代码如下。private sub command2_click()unload meend sub以上就是添加图书类别窗体的实现过程。4.3 建立图书类别管理窗体(修改、删除类别)4.3.1 建立窗体添加一个窗体,并按照表1所示设置窗体的属性。表 1 图书类别管理窗体的属性设置 窗体属性取值name fr

28、mmodifybookstylecaption图书类别管理startupposition2-cneterscreenmaxbuttonfalse4.3.2 添加控件图书类别管理窗体由1个datagrid控件、2个frame控件、4个commandbutton控件组成。其中,2个frame控件作为容器,分别用来放置datagrid控件和commandbutton控件, 4个commandbutton控件作为修改类别、删除类别、更新和取消按钮。 这一部分需要用到datagdd控件。用户自行将其添加到控件栏内。方法是 单击工程一部件菜单,在窗体中找到microsoft datagrid contro

29、l 6.0。选项并在其前面的方框内打勾。添加完后,在控件栏内应该显示datagrid 的图标。添加这些控件,并按照表2所示设置这些控件的属性。表2控件的属性设置控件属性属性取值frame1caption空frame2caption空command1(名称)cmdmodifycaption修改类别command2(名称)cmddelcaption删除类别command3(名称)cmdupdatecaption更新command2(名称)cmdcancelcaption取消datagdd控件的属性不需要做任何修改,取默认值即可。 4.3.3 添加代码当单击图书管理/图书类别管理/修改图书类别菜单时

30、,弹出如图所示的窗体。 代码如下:private sub modify_book_style_click()frmmodifybookstyle.showend sub当单击图书管理/图书类别管理/删除图书类别菜单时,弹出窗体。 代码如下。private sub del_book_style_click()frmmdifybookstyle.showend sub在窗体力加载时,首先打开数据表。在通用变量声明部分定义一个recordset数据对象, 代码如下。option explicitdim rs_reader as new adodb.recordset在form _load事件中首先打

31、开图书类别数据表,使用recordset对象的open方法,代码 如下。private sub form_lock()dim sql as stringon error goto loaderrorsql=”select * from 图书类别”rs_reader.cursolocation=aduseclientrs_reader.open sql,conn,adopenkeyset,adlockpessimistic 打开数据库窗体刚刚加载时,“更新”按钮应设置为不可用,即将其enabled书行为falseprivate sub form_load()cmdupdate.enabled=f

32、alse设置datagrid控件不可更改,即将其allowaddnew、allowdelete、allowupdate属性 设置为fdse。private sub form_load()设定datagrid控件属性datagrid1.allowaddnew=false 不可增加datagrid1.allowdelete=false 不可删除datagrid1.allowupdate=false使用datagrid控件显示图书类别数据表中的数据信息,只需将该控件的datasource属性设置为recordset对象即可private sub form_load()set datagrid1.da

33、tasource= rs_readerend sub添加错误处理部分的语句如下。private sub form_load()set datagrid1.datasource= rs_readerexit subloaderror: msgbox err.descriptionend sub双击修改类别按钮,添加代码以实现这部分的功能。当窗体处于修改类别状态时,该按钮和删除按钮是不可用的,将其enabled属性设置为 false,更新和取消按钮是可用的,将其enabled属性设置位true。private sub cmdmodify_click()dim answer as stringon

34、error goto cmdmodifycmddel.enabled = falsecmdmodify.enabled = falsecmdupdate.enabled = truecmdcancel.enabled = true当窗体处于修改类别状态时,datagrid控件的allowupdate属性应该是可用的,将其设 置位true。private sub cmdmodify_click()cmdcancel.enabled=truedatagrid1.allowupdate=truecmdmodify:添加错误处理语句。private sub cmdmodify_click()dim a

35、nswer as stringon error goto cmdmodifycmdmodify:if err.number 0 then msgbox err.descriptionend ifend sub修改数据后,单击更新按钮,则系统将会更新当前的数据。使用update方法,代码 如下。private sub cmdupdate_click()if not isnull(datagrid1.bookmark) then rs_reader.updateend if然后将各个按钮的状态恢复到修改前。private sub cmdupdate_click()cmdmodify.enabled

36、 = true cmddel.enabled = true cmdcancel.enabled = false cmdupdate.enabled = false datagrid1.allowupdate = false msgbox 修改成功!, vbokonly + vbexclamation, end sub修改数据后,如果想放弃修改,则单击取消按钮即可。双击取消按钮,添加代码以实现这部分功能。将按钮复原,使用cancelupdate方法取消更新,重新显示数据,并将表格控件的 a11owaddnew和allowupdate属性设置为false。private sub cmdcancel

37、_click() rs_reader.cancelupdate datagrid1.refresh datagrid1.allowaddnew = false datagrid1.allowupdate = false cmdmodify.enabled = true cmddel.enabled = true cmdcancel.enabled = false cmdupdate.enabled = falseend sub双击删除类别按钮,添加代码以实现这部分的功能。 首先提示用户是否确定删除,定义一个字符串变量接受用户的回答。private sub cmddel_click()dim a

38、nswer as stringon error goto delerroranswer = msgbox(确定要删除吗?, vbyesno, )如果回答“是”,将当前表格的allowdelete属性设置为true.使用recordset对象的方法将当前的记录删除,使用update方法将数据表更新private sub cmddel_click()dim answer as stringon error goto delerroranswer = msgbox(确定要删除吗?, vbyesno, )if answer = vbyes then datagrid1.allowdelete = tr

39、ue rs_reader.delete rs_reader.update这时数据表发生了变化,应该将datagrid刷新以显示这一变化,同时提示用户删除成功, 并将allowdelete属性设置为false。private sub cmddel_click()rs_reader.updatedatagrid1.refresh如果用户回答否,则退出此过程。private sub cmddel_click()else exit subend if当窗体卸载的时候,将datagid控件的datasource属性设置为nothing,同时关闭数据 对象。private sub form_unload(

40、cancel as integer)set datagrid1.datasource = nothingrs_reader.closeend sub以上就是图书类别管理窗体的实现过程。4.4 建立添加图书信息窗体4.4.1 建立窗体添加一个窗体。4.4.2 添加控件添加图书信息窗体由1个frame控件、1个combobox控件、2个commandbutton控件、 6个text控件和7个label控件组成。其中,7个label控件作为标识,6个text控件和1个 combobox控件用于接收用户输入,2个commandbutton控件作为确定和取消按钮。 添加这些控件,并设置这些控件的属性。添

41、加好控件的窗体效果如图所示。4.4.3 添加代码当单击图书管理/图书信息管理/添加图书信息菜单时,弹出如上图所示窗体。设计代码如下。private sub add_book_info_click()frmaddbookinfo.showend sub窗体加载时,首先将所有可选的图书类别添加到列表框中。定义一个recordset对象用 来打开数据表。private sub form_load()dim rs_leibie as new adodb.recordsetdim sql as stringsql = select * from 图书类别rs_leibie.open sql, conn,

42、 adopenkeyset, adlockpessimistic使用recordset对象的movefirst方法将数据记录移动到第一条,并使用循环语句将所有 的图书类别添加到列表框中。private sub form_load()rs_leibie.movefirstdo while not rs_leibie.eof combo1.additem rs_leibie.fields(0) rs_leibie.movenextlooprs_leibie.closeend sub当单击确定按钮时,首先检查输入的图书类型、图书编号和书名是否为空,代码如下。private sub command1_

43、click()dim 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.set

44、focus exit subend if然后检查输入的日期的格式是否正确,如果不正确则给出提示,代码如下。private sub command1_click()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 exi

45、t sub end if检查图书编号是否有重复,需要打开书籍信息表,先定义一个字符串类型的变量和一个 recordset对象变量。private sub command1_click()dim rs_addbook as new adodb.recordsetdim sql as string使用recordset对象的open方法打开数据表。private sub command1_click()end ifsql = select * from 书籍信息 where 书籍编号= & text1.text & rs_addbook.open sql, conn, adopenkeyset,

46、adlockpessimisticif rs_addbook.eof then如果没有重复,此时recordset对象的eof属性应改为true,此时将新的数据添加到数 据库,并给出提示代码如下。if 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)

47、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如果有重复,则给出提示,然后将焦点设置给text1,并将所有的文本框清空,代码如下。private sub command1_click()else msgbox 图书编号重复!

48、, vbokonly + vbexclamation, text1.setfocus text1.text = rs_addbook.close exit subend ifend sub当单击取消时,则退出此窗体,代码如下。private sub command2_click()unload meend sub以上就是添加图书信息窗体的实现过程。4.5 建立图书信息管理窗体4.5.1 建立窗体4.5.2 添加控件图书信息管理窗体由1个datagdd控件、2个frame控件、4个commandbutton控件组成。其中,2个frame控件作为容器,分别用来放置datagrid控件和comman

49、dbutton控件, 4个commandbutton控件作为修改信息、删除信息、更新和取消按钮。 添加这些控件,并设置这些控件的属性。datagrid控件的属性不需要做任何修改,取默认值即可。 添加好控件的窗体效果如图所示。4.5.3 添加代码当单击”图书管理/图书信息管理/修改图书信息菜单时,弹出上图窗体。代码如下。private sub modify_book_info_click()frmmodifybookinfo.showend sub当单击图书管理/图书信息管理/删除图书信息菜单时,弹出上面所示窗体.代码如下。private sub del_book_info_click()frm

50、modifybookinfo.showend sub在窗体加载时,首先打开数据表。在通用变量声明部分定义一个recordset数据对象, 代码如下。option explicitdim rs_book as new adodb.recordset在form_load事件中首先打开书藉信息数据表,使用recordset对象的方法,代码如下。private sub form_load()dim sql as stringon error goto loaderrorsql = select * from 书籍信息rs_book.cursorlocation = aduseclientrs_book.open sql, conn, adopenkeyset, adlockpessimistic 打开数据库窗体刚刚加载时,“更新”按钮应设置为不可用,即将其行为false.private sub form_load()cmdupdate.enabled = false设置datagrid控件不可更改,即将其allowaddnew、allowdelete、allowupdate属性设置为false。private sub form_load()设定datagrid控件属性datagrid1.allowaddnew = false 不可增加datagrid1.allowdelete = fal

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论