版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
PAGEPAGE4用VB编写一个简单的图书管理系统Srl2011009(学号)石二辽(姓名)指导教师徐哲鑫【摘要】笔者采用VisualBasic6.0为开发工具,设计一款具备友好的图形用户界面、简便操作的图书管理系统。充分利用计算机功能实现读者管理、书籍管理、借还书籍管理等信息的自动化控制,将使图书管理员从繁杂、重复的劳作中解放出来。【关键词】图书;面向对象;软件工程1概述1.1开发背景用计算机管理图书馆里一切信息是一种计算机应用技术的创新,在计算机还未普及之前图书管理都是由图书管理人员手工记帐的方式来操作的.现在一般的图书馆都是采用计算机作为工具,使用实用的图书管理程序来帮助图书馆管理员进行更有效的图书管理。1.2图书管理系统产生的背景图书管理系统是典型的信息管理系统,其开发主要包括后台数据库的建立和维护以及前端应用程序的开发两个方面。对于台数据库的建立和维护要求建立起数据一致性和完整性强、数据安全性好的库。而对于前端应用程序则要求应用程序具备功能完备、友好的图形用户界面、便捷使用等特点[1]。1.3系统功能要求的分析开发本系统的总体任务是实现图书管理系统的系统化和自动化,帮助图书管理员更好更高效地完成图书管理工作,本系统要完成的功能主要有:书籍管理部分:图书类别管理和图书信息管理。其中,书籍类别管理包括添加书籍类别、修改书籍类别、删除书籍类别等;书籍信息管理包括书籍信息的添加、修改、查询、删除等。读者管理部分:读者类别管理和读者信息管理,读者类别管理包括读者类别添加、修改、删除等;读者信息包括读者添加读者信息、修改读者信息、查询读者信息、删除读者信息等。借阅管理部分:借书信息管理和还书信息管理,借书信息管理、还书信息管理均包括其信息的添加、修改、查询等。系统管理部分:添加管理员,修改密码,退出系统。2开发环境及实现技术介绍2.1开发软件介绍由于我的工作单位是一所中心小学,有大量的书籍,读者有学生、老师,于是本人想设计一款实用的图书管理系统,方便学校图书管理员工作,增强图书借阅力度,良好地管理书籍及其借阅信息。2.2模块设计[2]书籍管理部分实现对书籍类别、书籍信息的添加、修改、删除等操作。读者管理部分实现对读者类别、读者信息的添加、修改、删除等操作。借阅管理部分实现对借书信息、还书信息的添加、修改、查询等操作。系统管理部分实现超级用户对普通用户的用户名和密码对注册、修改等操作。2.3程序预览运行本系统程序,首先出现登录界面(图2),输入正确用户名及密码后进入主窗体(图3),主窗体上的主菜单栏有:书籍管理、读者管理、借阅管理、系统设置及帮助。图2图32.3.1书籍管理功能“书籍管理”菜单下有两个一级菜单:“书籍信息管理”和“书籍类别管理”。具体操作如下:1.“书籍类别管理”下有三个子菜单:“新增”、“修改”、“删除”。单击“新增”菜单,打开“新增书籍类别”窗体(图4)。单击“修改”或“删除”,都会打开“书籍类别信息管理”窗体(图5)。图4图52.“书籍信息管理”下有四个子菜单:“新增图书”、“修改书籍信息”、“删除书籍信息”、“查询书籍信息”。单击“新增图书”菜单,打开“新增书籍”窗体(图6)。单击“修改”或“删除”,都会打开“书籍信息管理”窗体(图7)。单击“查询书籍信息”菜单,打开“查询图书”窗体(图8)图14图152.单击“还书管理”,打开“还书”窗体(图16)。图162.3.4系统“系统管理”菜单下有3个子菜单,分别是“添加管理员”、“修改密钥”和“退出系统”。单击“添加管理员”子菜单,打开“添加管理员”窗体(图17),单击“修改密钥”子菜单,打开“修改密码”窗体(图18),单击“退出系统”,备份数据并退出本系统。图17图182.3.5单击“帮助”菜单,打开系统信息窗体(图1),点击系统信息窗体任何一处,关闭该信息窗体,返回主窗体。图12.4数据库设计数据库名为sj.mdb,在库中设计六张表,它们分别为dzlb(读者类别表)、dzxx(读者信息表)、jyxx(借阅信息表)、sjxx(书籍信息表)、sjlb(书籍类别表)、sys(系统管理表)。2.4.1读者类别表,表名为dzlb,字段名称有读者类别名称、读者借书数量、借书期限及有限期限,设置“读者类别名称”为主键,是必填字段,不允许空值。2.4.2读者信息表:设置“读者编号”为主键,“读者编号”、“读者姓名”为必填字段,不允许空值。2.4.3借阅信息表:2.4.4书籍信息表:设置“图书编号”为主键,“图书编号”、“书籍名称”为必填字段,不允许空值。2.4.5图书类别表:2.4.6系统管理表:2.4.7数据库连接方式选择Visualbasic6.0连接数据库的主要方式有以下几种方式:一是用data控件进行数据库链接,二是利用adodc(ADODataControl)进行数据库链接。三是:利用DataEnvironment进行数据库链接,四是利用ADO(ActiveXDataObjects)进行编程。利用DAO对数据库进行操纵[3]:在visualbasic中提供了两种与jet数据引擎接口的方法:data控件与数据访问对象(DAO)DAO是databaseobject的英文缩写,要访问数据库一方面数据库要提供访问接口,另一方面要在编程环境中有对数据库的支持.DAO模型是设计关系数据库系统结构的对象类的集合.他们提供了管理关系型数据库系统所需要的全部操作属性和方法,这其中包括建立数据库,定义表,字段和建立表间关系,定位和查询数据库等.关系数据库介绍[4]:关系数据库是目前各类数据库中最重要、最流行的数据库,他应用数学方法来处理数据库数据,是目前使用最广泛的数据库系统。20世纪70年代以后开发的数据库管理系统产品几乎都是基于关系的。在数据库发展的历史上,最重要的成就就是关系模型。
关系数据库系统与非关系数据库系统的区别是:关系系统只有“表“这一种数据结构;而非关系数据库系统还有其他数据结构,对这些数据结构有其他的操作。结构化查询语言SQL(StructuredQueryLanguage)是一种介于关系代数与关系演算之间的语言,其功能包括查询、操纵、定义和控制四个方面,是一个通用的、功能极强的关系数据库语言。目前已成为关系数据库的标准语言。Microsoft
Access介绍:使用
Microsoft
Access,可以在单一的数据库文件中管理所有的信息。在这个文件中,用户可以将自己的数据分别保存在各自独立的存储空间中,这些空间称作表;可以使用联机窗体来查看、添加及更新表中的数据;使用查询来查找并检索所要的数据;也可以使用报表以特定的版面布置来分析及打印数据。如果要保存数据,请为每一种类型的信息创建一个表。如果要从查询、窗体或报表中的多个表中将数据合并在一起,就要定义各个表之间的关系。如果要搜索并检索符合指定条件的数据,包括来自多个表中的数据,就要创建查询。查询的同时也可以更新或删除多条记录,并对数据执行内嵌或自定义的计算。如果要简单地直接在某个表中查看、输入及更改数据,请创建一个窗体。在打开一个窗体时,Microsoft
Access
将从一个或多个表中检索数据,并使用用户在“窗体向导”选择的版面布局或所创建的版面布局,将窗体显示在屏幕上。如果要分析数据或将数据以特定的方式打印出来,请创建一个报表。例如,可以打印一份将数据分组并计算数据总和的报表,也可以打印另一份带有各种数据格式的打印邮件标签的报表。2.5系统代码[5]2.5.12.5.1.1添加管理员菜单PrivateSubaddadmin_Click()addadminf.ShowEndSub2.5.1.2添加读者类别菜单PrivateSubadddzlb_Click()Adddzlbf.ShowEndSub2.5.1.3添加读者信息菜单PrivateSubadddzxxf_Click()Adddzxxf.ShowEndSub2.5.1.4添加还书信息菜单PrivateSubaddhs_Click()hsf.ShowEndSub2.5.1.5添加借书信息菜单PrivateSubaddjs_Click()Jsf.ShowEndSub2.5.1.6添加图书类别菜单PrivateSubaddlb_Click()addtslb.ShowEndSub2.5.1.7查询读者信息菜单PrivateSubcxdzxx_Click()cxdzxxf.ShowEndSub2.5.1.8查询借书信息菜单PrivateSubcxjs_Click()cxjsxxf.ShowEndSub2.5.1.9查询书籍信息菜单PrivateSubcxsj_Click()cxsjf.ShowEndSub2.5.1.10删除读者类别菜单PrivateSubDeldzlb_Click()dzlbxxf.ShowEndSub2.5.1.11删除读者信息菜单PrivateSubDeldzxx_Click()dzxxglf.ShowEndSub2.5.1.12删除书籍类别菜单PrivateSubdellb_Click()sjlbxxf.ShowEndSub2.5.1.13帮助菜单PrivateSubhlep_Click()frmSplash.ShowEndSub2.5.1.14退出系统菜单PrivateSubUnload_Click()endEndSub2.5.1.15修改读者类别菜单PrivateSubXgdzlb_Click()dzlbxxf.ShowEndSub2.5.1.16修改读者信息菜单PrivateSubxgdzxx_Click()dzxxglf.ShowEndSub2.5.1.17修改书籍类别菜单PrivateSubxglb_Click()sjlbxxf.ShowEndSub2.5.1.18修改用户密码菜单PrivateSubxgmm_Click()xgmmf.ShowEndSub2.5.1.19修改书籍信息菜单PrivateSubxgts_Click()sjxxf.ShowEndSub2.5.1.20新增图书信息菜单PrivateSubxzts_Click()addtsf.ShowEndSub2.5.2添加图书类别代码:PrivateSubCommand1_Click()DimSq1AsStringDimrs_addAsNewADODB.RecordsetSql="select*fromsjlbwhere类别名称='"&Text1.Text&"'"rs_add.OpenSql,Sjk,adOpenKeyset,adLockPessimisticIfTrim(Text1.Text)=""ThenMsgBox"图书类别不能为空",vbOKOnly+vbExclamation,"注意"Text1.SetFocusExitSubEndIfIfTrim(Text2.Text)=""ThenMsgBox"图书编号不能为空",vbOKOnly+vbExclamation,"注意"Text2.SetFocusExitSubEndIfIfrs_add.EOF=TrueThenrs_add.AddNewrs_add.Fields(0)=Trim(Text2.Text)rs_add.Fields(1)=Trim(Text1.Text)rs_add.UpdateMsgBox"成功地添加"&Text1.Text&"这一图书类别",vbOKOnly,"恭喜"rs_add.CloseElseMsgBox""&Text1.Text&"这一图书类别已存在",vbOKOnly+vbExclamation,"图书类别不能重复"rs_add.CloseEndIfText1.SetFocusText1.Text=""Text2.Text=""EndSubPrivateSubCommand2_Click()UnloadMeEndSub2.5.3修改图书类别:修改图书类别代码:OptionExplicitDimMyjlAsNewADODB.RecordsetPrivateSubForm_Load()DimSq1AsStringOnErrorGoToloaderrorSq1="select*fromsjlb"Myjl.CursorLocation=adUseClientMyjl.OpenSq1,Sjk,adOpenKeyset,adLockPessimisticCmdcancel.Enabled=FalseCmdupdate.Enabled=FalseDg.AllowAddNew=FalseDg.AllowDelete=FalseDg.AllowUpdate=FalseSetDg.DataSource=MyjlExitSubloaderror:MsgBoxErr.DescriptionEndSubPrivateSubCmdadd_Click()Dg.AllowAddNew=TrueDg.AllowUpdate=TrueCmdadd.Enabled=FalseCmdupdate.Enabled=TrueEndSubPrivateSubCmdadd_MouseMove(ButtonAsInteger,ShiftAsInteger,XAsSingle,YAsSingle)Cmdadd.Caption="点击此处也可以添加"Cmdadd.Width=3000EndSubPrivateSubCmdcancel_Click()Myjl.CancelUpdateDg.RefreshDg.AllowAddNew=FalseDg.AllowUpdate=FalseCmdxg.Enabled=TrueCmddel.Enabled=TrueCmdcancel.Enabled=FalseCmdupdate.Enabled=FalseEndSubPrivateSubCmddel_Click()DimSrlAsStringOnErrorGoTodelerrorSrl=MsgBox("确定要删除吗?",vbYesNo)IfSrl=vbYesThenDg.AllowDelete=TrueMyjl.DeleteMyjl.UpdateDg.RefreshElseExitSubEndIfdelerror:MsgBoxErr.DescriptionEndSubPrivateSubCmdupdate_Click()IfNotIsNull(Dg.Bookmark)ThenMyjl.UpdateCmddel.Enabled=TrueCmdxg.Enabled=TrueCmdcancel.Enabled=FalseCmdupdate.Enabled=FalseDg.AllowUpdate=FalseMsgBox"修改成功",vbOKOnly+vbExclamation,"恭喜成功"EndIfCmdadd.Width=1550Cmdadd.Caption="高级"Cmdadd.Enabled=TrueEndSubPrivateSubCmdxg_Click()DimSrlAsStringOnErrorGoToxgCmddel.Enabled=FalseCmdxg.Enabled=FalseCmdupdate.Enabled=TrueCmdcancel.Enabled=TrueDg.AllowUpdate=Truexg:IfErr.Number<>0ThenMsgBoxErr.DescriptionEndIfEndSubPrivateSubForm_Unload(CancelAsInteger)SetDg.DataSource=NothingMyjl.CloseEndSub2.5.4添加读者类别界面:PrivateSubCommand1_Click()DimSrlAsStringDimMybookAsNewADODB.RecordsetIfTrim(Text1.Text)=""ThenMsgBox"读者类别名称不能为空",vbOKOnly+vbExclamation,"注意"Text1.SetFocusExitSubEndIfIfTrim(Text2.Text)=""ThenMsgBox"借书数量不能为空",vbOKOnly+vbExclamation,"注意"Text2.SetFocusExitSubEndIfIfTrim(Text3.Text)=""ThenMsgBox"借书期限不能为空",vbOKOnly+vbExclamation,"注意"Text3.SetFocusExitSubEndIfIfTrim(Text4.Text)=""ThenMsgBox"有效期限不能为空",vbOKOnly+vbExclamation,"注意"Text4.SetFocusExitSubEndIfOnErrorGoToCwSrl="select*fromdzlbwhere读者类别名称='"&Text1.Text&"'"Mybook.OpenSrl,Sjk,adOpenKeyset,adLockPessimisticIfMybook.EOFThenMybook.AddNewMybook.Fields(0)=Trim(Text1.Text)Mybook.Fields(1)=Trim(Text2.Text)Mybook.Fields(2)=Trim(Text3.Text)Mybook.Fields(3)=Trim(Text4.Text)Mybook.UpdateMsgBox"您已经成功添加"&Text1.Text&"这一读者类别",vbOKOnly+vbExclamation,"添加成功!"Mybook.CloseElseMsgBox"读者类别名称为"&Text1.Text&"重复",vbOKOnly+vbExclamation,"注意重复"Text1.SetFocusText1.Text=""Mybook.CloseExitSubEndIfCw:MsgBoxErr.DescriptionEndSubPrivateSubCommand2_Click()UnloadMeEndSubPrivateSubForm_Load()DimSq1AsString'定义一个字符串变量DimMyjlAsNewADODB.Recordset'定义一个Recordset对象变量EndSub2.5.5查询读者信息代码:PrivateSubForm_Load()DimSq1AsString'定义一个字符串变量DimMyjlAsNewADODB.Recordset'定义一个Recordset对象变量Sq1="select*fromdzlb"Myjl.OpenSq1,Sjk,adOpenKeyset,adLockPessimisticDoWhileNotMyjl.EOFCombo1.AddItemMyjl.Fields(0)Myjl.MoveNextLoopCombo1.ListIndex=0Myjl.CloseEndSubPrivateSubCommand1_Click()DimSrlAsString'定义一个字符串变量DimMybookAsNewADODB.Recordset'定义一个Recordset对象变量IfCheck1.Value=vbCheckedThenSrl="读者编号='"&Trim(Text1.Text&"")&"'"EndIfIfCheck2.Value=vbCheckedThenIfTrim(Srl)=""ThenSrl="读者姓名='"&Trim(Text2.Text&"")&"'"ElseSrl=Srl&"and读者编号='"&Trim(Text2.Text&"")&"'"EndIfEndIfIfCheck3.Value=vbCheckedThenIfTrim(Srl)=""ThenSrl="读者类别='"&Trim(Combo1.Text&"")&"'"ElseSrl=Srl&"and读者类别='"&Trim(Combo1.Text&"")&"'"EndIfEndIfIfSrl=""ThenMsgBox"请选择一种查询依据",vbOKOnly+vbExclamation,"查询方式"ExitSubEndIfSrl="select*fromdzxxwhere"&SrlMybook.CursorLocation=adUseClientMybook.OpenSrl,Sjk,adOpenKeyset,adLockPessimisticDg.AllowAddNew=FalseDg.AllowDelete=FalseDg.AllowUpdate=FalseSetDg.DataSource=MybookEndSubPrivateSubCommand2_Click()UnloadMeEndSub2.5.6图书借阅管理模块代码:2.5.PrivateSubForm_Load()’窗体加载时就书籍类别加载到列表框中。DimSq1AsString'定义一个字符串变量DimMyjlAsNewADODB.Recordset'定义一个Recordset对象变量Sq1="select*fromsjlb"Myjl.OpenSq1,Sjk,adOpenKeyset,adLockPessimisticDoWhileNotMyjl.EOFCombo1.AddItemMyjl.Fields(1)Myjl.MoveNextLoopCombo1.ListIndex=0Myjl.CloseEndSubPrivateSubCommand1_Click()’查询命令按钮代码DimSrlAsString'定义一个字符串变量DimMybookAsNewADODB.Recordset'定义一个Recordset对象变量IfCheck1.Value=vbCheckedThenSrl="书籍名称='"&Trim(Text1.Text&"")&"'"EndIfIfCheck2.Value=vbCheckedThenIfTrim(Srl)=""ThenSrl="图书编号='"&Trim(Text2.Text&"")&"'"ElseSrl=Srl&"and图书编号='"&Trim(Text2.Text&"")&"'"EndIfEndIfIfCheck3.Value=vbCheckedThenIfTrim(Srl)=""ThenSrl="作者='"&Trim(Text3.Text&"")&"'"ElseSrl=Srl&"and作者='"&Trim(Text3.Text&"")&"'"EndIfEndIfIfCheck4.Value=vbCheckedThenIfTrim(Srl)=""ThenSrl="出版社='"&Trim(Text4.Text&"")&"'"ElseSrl=Srl&"and出版社='"&Trim(Text4.Text&"")&"'"EndIfEndIfIfCheck5.Value=vbCheckedThenIfTrim(Srl)=""ThenSrl="类别='"&Trim(Combo1.Text&"")&"'"ElseSrl=Srl&"and类别='"&Trim(Combo1.Text&"")&"'"EndIfEndIfIfSrl=""ThenMsgBox"请选择一种查询依据",vbOKOnly+vbExclamation,"查询方式"ExitSubEndIfSrl="select*fromsjxxwhere"&SrlMybook.CursorLocation=adUseClientMybook.OpenSrl,Sjk,adOpenKeyset,adLockPessimisticDg.AllowAddNew=FalseDg.AllowDelete=FalseDg.AllowUpdate=FalseSetDg.DataSource=MybookEndSub为了获取表格某一单元格值,为DataGrid控件DG添加如下代码:PrivateSubDg_RowColChange(LastRowAsVariant,ByValLastColAsInteger)OnErrorGoToCwPand=Dg.Columns(7).CellValue(Dg.Bookmark)Bookunm=Dg.Columns(0).CellValue(Dg.Bookmark)’Pand和Bookunm是公共模块中定义的一个公共变量,Bookunm用来记录表格中某一书籍的图书编号,便于在借书窗体中再次调用。ExitSubCw:MsgBoxErr.DescriptionEndSubPrivateSubCommand2_Click()UnloadMeEndSubPrivateSubCommand3_Click()’这是“借这本书”命令按钮,如果条件满足,就进入借书窗体了。IfTrim(Bookunm)=""ThenMsgBox"请选择要借阅的书籍",vbOKOnly+vbExclamation,"选择书籍"ExitSubEndIfIfTrim(Pand)="是"ThenMsgBox"此书已经被借出,请选择其它书籍",vbOKOnly+vbExclamation,"选择书籍"ExitSubEndIfUnloadMeJsf.ShowEndSub2.5.6.2借书OptionExplicitDimLbAsString'该读者类别DimQxAsString'该读者可借书的期限DimYjslAsString'该读者已借书的数量DimMaxmAsString'该读者借书量的限制‘由在查询书籍的窗体满足了可以借书的条件进入此借书窗体,根据此书的图书编号,在本窗体加载时就加载了书籍的信息和读者列表。PrivateSubForm_Load()DimMybookAsNewADODB.RecordsetDimMydzAsNewADODB.RecordsetDimSrlAsStringDimSqlAsStringSrl="select*fromsjxxwhere图书编号='"&Bookunm&"'"Mybook.OpenSrl,Sjk,adOpenKeyset,adLockPessimisticLabel8.Caption=Mybook.Fields(0)Label9.Caption=Mybook.Fields(1)Label10.Caption=Mybook.Fields(2)Label11.Caption=Mybook.Fields(3)Label12.Caption=Mybook.Fields(4)Label13.Caption=Mybook.Fields(5)Label14.Caption=Mybook.Fields(6)Sql="select*fromdzxx"Mydz.OpenSql,Sjk,adOpenKeyset,adLockPessimisticIfNotMydz.EOFThenDoWhileNotMydz.EOFCombo1.AddItemMydz.Fields(0)Combo2.AddItemMydz.Fields(1)Mydz.MoveNextLoopCombo1.ListIndex=0ElseMsgBox"请先登记读者",vbOKOnly+vbExclamation,"注意"ExitSubEndIfMybook.CloseMydz.CloseEndSub‘由于读者编号与读者姓名是一一对应的,必须对用来加载这两个信息的两个列表框编写如下代码:PrivateSubCombo1_Click()Combo2.ListIndex=Combo1.ListIndexEndSubPrivateSubCombo2_Click()Combo1.ListIndex=Combo2.ListIndexEndSubPrivateSubCommand1_Click()’这是借书的“确定”按钮DimMyjlAsNewADODB.RecordsetDimSqlAsStringSql="select*fromdzxxwhere读者编号='"&Combo1.Text&"'"Myjl.OpenSql,Sjk,adOpenKeyset,adLockPessimisticLb=Myjl.Fields(3)Yjsl=Myjl.Fields(8)Myjl.CloseSql="select*fromdzlbwhere读者类别名称='"&Lb&"'"Myjl.OpenSql,Sjk,adOpenKeyset,adLockPessimisticQx=Myjl.Fields(2)Maxm=Myjl.Fields(1)Myjl.CloseIfYjsl>=MaxmThenMsgBox"该读者借书数额已满!",vbOKOnly+vbExclamationExitSubEndIf‘以上条件满足了,就将新借书信息添加到借阅信息数据库中,代码如下:Sql="select*fromjyxx"Myjl.OpenSql,Sjk,adOpenKeyset,adLockPessimisticMyjl.AddNewMyjl.Fields(1)=Combo1.TextMyjl.Fields(2)=Combo2.TextMyjl.Fields(3)=Label8.CaptionMyjl.Fields(4)=Label9.CaptionMyjl.Fields(5)=DateMyjl.Fields(6)=DateAdd("Ww",Qx,Date)Myjl.UpdateMyjl.Close‘同时,将此书在书籍信息(sjxx)表中的“是否被借出”设置为“是”。Sql="select*fromsjxxwhere图书编号='"&Bookunm&"'"Myjl.OpenSql,Sjk,adOpenKeyset,adLockPessimisticMyjl.Fields(7)="是"Myjl.UpdateMyjl.Close‘同时将该读者已借书数量上加1。Sql="select*fromdzxxwhere读者编号='"&Combo1.Text&"'"Myjl.OpenSql,Sjk,adOpenKeyset,adLockPessimisticMyjl.Fields(8)=Myjl.Fields(8)+1Myjl.UpdateMyjl.CloseMsgBox"《"&Label9.Caption&"》这本书成功地借给了读者姓名为"&Combo2.Text&"的读者!",vbOKOnly+vbExclamation,"借阅成功"UnloadMeEndSubPrivateSubCommand2_Click()UnloadMeEndSub2.5.6.3查询借书窗体代码PrivateSubCommand1_Click()DimSqlAsString'定义一个字符串变量DimMyjlAsNewADODB.Recordset'定义一个Recordset对象变量IfOption1.Value=TrueThenSql="select*fromsjxxwhere是否被借出='是'"EndIfIfOption2.Value=TrueThenSql="select*fromsjxxwhere是否被借出='否'"EndIfIfOption3.Value=TrueThenSql="select*fromjyxxwhere读者姓名='"&dzxm.Text&"'"EndIfMyjl.CursorLocation=adUseClientMyjl.OpenSql,Sjk,adOpenKeyset,adLockPessimisticDg.AllowAddNew=FalseDg.AllowDelete=FalseDg.AllowUpdate=FalseSetDg.DataSource=MyjlEndSubPrivateSubCommand2_Click()UnloadMeEndSubPrivateSubOption3_Click()dzxm.Visible=TrueEndSub2.5.6.4还书窗体PrivateSubForm_Load()DimmybookAsNewADODB.RecordsetDimMydzAsNewADODB.RecordsetDimSrlAsStringDimSqlAsStringSql="select*fromdzxx"Mydz.OpenSql,Sjk,adOpenKeyset,adLockPessimisticIfNotMydz.EOFThenDoWhileNotMydz.EOFCombo1.AddItemMydz.Fields(0)Combo2.AddItemMydz.Fields(1)Mydz.MoveNextLoopEndIfMydz.CloseSql="select*fromjyxx"mybook.OpenSql,Sjk,adOpenKeyset,adLockPessimisticIfNotmybook.EOFThenDoWhileNotmybook.EOFCombo3.AddItemmybook.Fields(3)Combo4.AddItemmybook.Fields(4)mybook.MoveNextLoopEndIfmybook.CloseEndSubPrivateSubCombo1_Click()Combo2.ListIndex=Combo1.ListIndexEndSubPrivateSubCombo2_Click()Combo1.ListIndex=Combo2.ListIndexEndSubPrivateSubCombo3_Click()Combo4.ListIndex=Combo3.ListIndexEndSubPrivateSubCombo4_Click()Combo3.ListIndex=Combo4.ListIndexEndSubPrivateSubCommand1_Click()DimMydzAsNewADODB.RecordsetDimSqlAsStringfindform=TrueSql="select*fromjyxxwhere读者姓名='"&Combo2.Text&"'"Mydz.CursorLocation=adUseClientMydz.OpenSql,Sjk,adOpenKeyset,adLockPessimisticSetDg.DataSource=MydzDg.AllowAddNew=FalseDg.AllowDelete=FalseDg.AllowUpdate=FalseEndSubPrivateSubCommand2_Click()DimmybookAsNewADODB.RecordsetDimSqlAsStringfindform=FalseSql="select*fromjyxxwhere书籍编号='"&Combo3.Text&"'"mybook.CursorLocation=adUseClientmybook.OpenSql,Sjk,adOpenKeyset,adLockPessimisticSetDg.DataSource=mybookDg.AllowAddNew=FalseDg.AllowDelete=FalseDg.AllowUpdate=FalseEndSubPrivateSubCommand3_Click()DimBookAsStringDimDzAsStringDimSqlAsStringDimWAsStringDimmybookAsNewADODB.RecordsetOnErrorGoToCwBook=Dg.Columns(3).CellValue(Dg.Bookmark)Dz=Dg.Columns(1).CellValue(Dg.Bookmark)W=MsgBox("确定要还这本书吗?",vbYesNo,"")IfW=vbYesThenSql="select*fromjyxxwhere书籍编号='"&Book&"'"mybook.CursorLocation=adUseClientmybook.OpenSql,Sjk,adOpenKeyset,adLockPessimisticmybook.Deletemybook.Updatemybook.CloseSql="select*fromsjxxwhere图书编号='"&Book&"'"mybook.CursorLocation=adUseClientmybook.OpenSql,Sjk,adOpenKeyset,adLockPessimisticmybook.Fields(7)="否"mybook.Updatemybook.CloseSql="select*fromdzxxwhere读者编号='"&Dz&"'"mybook.CursorLocation=adUseClientmybook.OpenSql,Sjk,adOpenKeyset,adLockPessimisticmybook.Fields(8)=mybook.Fields(8)-1mybook.Updatemybook.CloseIffindform=TrueThenCommand1_ClickElseCommand2_ClickEndIfMsgBox"还书成功!",vbOKOnly+vbExclamation,""Dg.AllowDelete=FalseElseExitSubEndIfCw:MsgBoxErr.DescriptionEndSubPrivateSubCommand4_Click()UnloadMeEndSub2.5.7系统管理2.5.7.1OptionExplicitDimcntAsInteger’用来记录点击“确定”的次数PrivateSubForm_Load()’DimConnectionStringAsStringConnectionString="provider=Microsoft.Jet.oledb.4.0;datasource=sj.mdb"Sjk.OpenConnectionString’Sjk是公用模块中定义的一个公共变量。cnt=0EndSubPrivateSubCmdcancel_Click()EndEndSubPrivateSubcmdOK_Click()DimSqlAsStringDimrs_addAsNewADODB.RecordsetIfTrim(Text1.Text)=""ThenMsgBox"用户名不能为空",vbOKOnly+vbExclamation,"注意"ExitSubText1.SetFocusElseSql="select*fromsyswhereUname='"&Text1.Text&"'"rs_add.OpenSql,Sjk,adOpenKeyset,adLockPessimisticIfrs_add.EOF=TrueThenMsgBox"没"&Text1.Text&"有这个用户",vbOKOnly+vbExclamation,""Text1.SetFocusElseIfTrim(rs_add.Fields(1))=Trim(Text2.Text)Then'Unema=Text1.Text'Uid=rs_add.Fields(2)rs_add.CloseMf.ShowUnloadMeElseMsgBox"密码不正确",vbOKOnly+vbExclamation,"注意"Text2.SetFocusText2.Text=""EndIfEndIfEndIfcnt=cnt+1Ifcnt=3ThenUnloadMeEndIfEndSubPrivateSubcmdOK_MouseMove(ButtonAsInteger,ShiftAsInteger,XAsSingle,YAsSingle)cmdOK.Caption="确定登录"‘只为增强动画效果,移动鼠标到cmdok按钮上时,显示的文字由原来的“确定”变为“确定登录”EndSub2.5.7PrivateSubForm_Load()DimSjkAsADODB.ConnectionDimSjAsADODB.RecordsetCombo1.AddItem"管理员"Combo1.AddItem"来宾用户"SetSjk=New
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年农业和农村档案工作总结
- 《会员管理系统》课件
- 《电影夜上海招商书》课件
- 九年级《呼兰河传》课件
- 语法化现象与认知机制-洞察分析
- 舞蹈史中的跨文化传播-洞察分析
- 项目协同效率提升-洞察分析
- 行业跨国竞争格局下我国防水材料产业的竞争力提升策略-洞察分析
- 《汽车选购技巧》课件
- 无纺布行业市场趋势分析-洞察分析
- 2024-2030年中国汽车水泵市场未来发展趋势及前景调研分析报告
- 绿城营销策划管理标准化手册
- 2025小学创意特色寒假素养作业设计真绝了【高清可打印】
- 2025年上半年河南安阳市睢阳区“减县补乡”乡镇事业单位选拔130人重点基础提升(共500题)附带答案详解
- 2025学年学期学校卫生工作计划
- 10.1.2事件的关系和运算(教学课件)高一数学(人教A版2019必修第二册)
- 2024年可行性研究报告投资估算及财务分析全套计算表格(含附表-带只更改标红部分-操作简单)
- 企业EHS风险管理基础智慧树知到期末考试答案2024年
- 2024全国职业院校技能大赛ZZ060母婴照护赛项规程+赛题
- 统编版小学四年级语文上册五六单元测试卷(附答案)
- 商票保贴协议
评论
0/150
提交评论