用VB编写一个简单的图书管理系统分解_vb编写简单整人小程序

2020-02-27 其他范文 下载本文

用VB编写一个简单的图书管理系统分解由刀豆文库小编整理,希望给你工作、学习、生活带来方便,猜你可能喜欢“vb编写简单整人小程序”。

用VB编写一个简单的图书管理系统

Srl2011009(学号)石二辽(姓名)

指导教师 徐哲鑫

【摘 要】笔者采用Visual Basic 6.0 为开发工具,设计一款具备友好的图形用户界面、简便操作的图书管理系统。充分利用计算机功能实现读者管理、书籍管理、借还书籍管理等信息的自动化控制,将使图书管理员从繁杂、重复的劳作中解放出来。

【关键词】图书;面向对象;软件工程

1概述

1.1开发背景

用计算机管理图书馆里一切信息是一种计算机应用技术的创新,在计算机还未普及之前图书管理都是由图书管理人员手工记帐的方式来操作的.现在一般的图书馆都是采用计算机作为工具,使用实用的图书管理程序来帮助图书馆管理员进行更有效的图书管理。

1.2图书管理系统产生的背景

图书管理系统是典型的信息管理系统,其开发主要包括后台数据库的建立和维护以及前端应用程序的开发两个方面。对于台数据库的建立和维护要求建立起数据一致性和完整性强、数据安全性好的库。

[1]而对于前端应用程序则要求应用程序具备功能完备、友好的图形用户界面、便捷使用等特点。

1.3 系统功能要求的分析

开发本系统的总体任务是实现图书管理系统的系统化和自动化,帮助图书管理员更好更高效地完成图书管理工作,本系统要完成的功能主要有: 书籍管理部分:图书类别管理和图书信息管理。其中,书籍类别管理包括添加书籍类别、修改书籍类别、删除书籍类别等;书籍信息管理包括书籍信息的添加、修改、查询、删除等。

读者管理部分:读者类别管理和读者信息管理,读者类别管理包括读者类别添加、修改、删除等;读者信息包括读者添加读者信息、修改读者信息、查询读者信息、删除读者信息等。

借阅管理部分:借书信息管理和还书信息管理,借书信息管理、还书信息管理均包括其信息的添加、修改、查询等。

系统管理部分:添加管理员,修改密码,退出系统。

2开发环境及实现技术介绍

2.1开发软件介绍

由于我的工作单位是一所中心小学,有大量的书籍,读者有学生、老师,于是本人想设计一款实用的图书管理系统,方便学校图书管理员工作,增强图书借阅力度,良好地管理书籍及其借阅信息。

2.2模块设计[2]

书籍管理部分实现对书籍类别、书籍信息的添加、修改、删除等操作。读者管理部分实现对读者类别、读者信息的添加、修改、删除等操作。借阅管理部分实现对借书信息、还书信息的添加、修改、查询等操作。

系统管理部分实现超级用户对普通用户的用户名和密码对注册、修改等操作。

2.3程序预览

运行本系统程序,首先出现登录界面(图2),输入正确用户名及密码后进入主窗体(图3),主窗体上的主菜单栏有:书籍管理、读者管理、借阅管理、系统设置及帮助。

图2

图3

2.3.1书籍管理功能

“书籍管理”菜单下有两个一级菜单:“书籍信息管理”和“书籍类别管理”。具体操作如下: 1.“书籍类别管理”下有三个子菜单:“新增”、“修改”、“删除”。单击“新增”菜单,打开“新增书籍类别”窗体(图4)。单击“修改”或“删除”,都会打开“书籍类别信息管理”窗体(图5)。

图4 图5 2.“书籍信息管理”下有四个子菜单:“新增图书”、“修改书籍信息”、“删除书籍信息”、“查询书籍信息”。单击“新增图书”菜单,打开“新增书籍”窗体(图6)。单击“修改”或“删除”,都会打开“书籍信息管理”窗体(图7)。单击“查询书籍信息”菜单,打开“查询图书”窗体(图8)

图6

图7

图8 2.3.2读者管理功能

“读者管理”菜单下有两个一级菜单:“读者类别管理”和“读者信息管理”。1.“读者类别管理”下有3个子菜单:“添加读者类别”、“修改读者类别”、“删除读者类别”。单击“添加读者类别”菜单,打开“添加读者类别”窗体(图9);单击“修改读者类别”和“删除读者类别”菜单,都会打开“读者类别管理”窗体(图10)。

图9 图10

2.“读者信息管理”菜单下有4个子菜单:“添加读者信息”、“修改读者信息”、“删除读者信息”和“查询读者信息”。单击“添加读者信息”菜单,打开“添加读者信息”窗体(图11),单击“修改读者信息”和“删除读者信息”菜单,都会打开“读者信息管理”窗体(图12),单击“查询读者信息”菜单,打开“查询读者信息”窗体(图13)。

图11

图12 图13

2.3.3图书借阅管理功能

“借阅管理”菜单下有2个一级菜单:“借书管理”和“还书管理”。

1.“借书管理”菜单下有2个子菜单:“添加借书信息”和“查询借书信息”。单击“添加借书信息”先打开的是“查询图书”窗体(图8),找到需要借阅的图书后,单击“借这本书按钮”,打开“借书”窗体(图14);单击“查询借书信息”菜单,打开“查询借书信息”窗体(图15)。

图14 图15

2.单击“还书管理”,打开“还书”窗体(图16)。

图16 2.3.4系统管理功能

“系统管理”菜单下有3个子菜单,分别是“添加管理员”、“修改密钥”和“退出系统”。单击“添加管理员”子菜单,打开“添加管理员”窗体(图17),单击“修改密钥”子菜单,打开“修改密码”窗体(图18),单击“退出系统”,备份数据并退出本系统。

图17 图18

2.3.5帮助菜单

单击“帮助”菜单,打开系统信息窗体(图1),点击系统信息窗体任何一处,关闭该信息窗体,返回主窗体。

图1 2.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数据库连接方式选择

Visual basic6.0连接数据库的主要方式有以下几种方式:一是用data控件进行数据库链接,二是利用adodc(ADO Data Control)进行数据库链接。三是:利用DataEnvironment进行数据库链接,四是利用ADO(ActiveX Data Objects)进行编程。

[3]利用DAO对数据库进行操纵: 在visual basic 中提供了两种与jet数据引擎接口的方法:data控件与数据访问对象(DAO)DAO是database object的英文缩写,要访问数据库一方面数据库要提供访问接口,另一方面要在编程环境中有对数据库的支持.DAO模型是设计关系数据库系统结构的对象类的集合.他们提供了管理关系型数据库系统所需要的全部操作属性和方法,这其中包括建立数据库,定义表,字段和建立表间关系,定位和查询数据库等.[4] 关系数据库介绍:关系数据库是目前各类数据库中最重要、最流行的数据库,他应用数学方法来处理数据库数据,是目前使用最广泛的数据库系统。20世纪70年代以后开发的数据库管理系统产品几乎都是基于关系的。在数据库发展的历史上,最重要的成就就是关系模型。

关系数据库系统与非关系数据库系统的区别是:关系系统只有“表“这一种数据结构;而非关系数据库系统还有其他数据结构,对这些数据结构有其他的操作。

结构化查询语言SQL(Structured Query Language)是一种介于关系代数与关系演算之间的语言,其功能包括查询、操纵、定义和控制四个方面,是一个通用的、功能极强的关系数据库语言。目前已成为关系数据库的标准语言。

Microsoft Acce介绍: 使用 Microsoft Acce,可以在单一的数据库文件中管理所有的信息。在这个文件中,用户可以将自己的数据分别保存在各自独立的存储空间中,这些空间称作表;可以使用联机窗体来查看、添加及更新表中的数据;使用查询来查找并检索所要的数据;也可以使用报表以特定的版面布置来分析及打印数据。

如果要保存数据,请为每一种类型的信息创建一个表。如果要从查询、窗体或报表中的多个表中将数据合并在一起,就要定义各个表之间的关系。

如果要搜索并检索符合指定条件的数据,包括来自多个表中的数据,就要创建查询。查询的同时也可以更新或删除多条记录,并对数据执行内嵌或自定义的计算。

如果要简单地直接在某个表中查看、输入及更改数据,请创建一个窗体。在打开一个窗体时,Microsoft Acce 将从一个或多个表中检索数据,并使用用户在“窗体向导”选择的版面布局或所创建的版面布局,将窗体显示在屏幕上。

如果要分析数据或将数据以特定的方式打印出来,请创建一个报表。例如,可以打印一份将数据分组并计算数据总和的报表,也可以打印另一份带有各种数据格式的打印邮件标签的报表。

2.5系统代码[5]

2.5.1主界面代码: 2.5.1.1添加管理员菜单

Private Sub addadmin_Click()addadminf.Show End Sub 2.5.1.2添加读者类别菜单 Private Sub adddzlb_Click()Adddzlbf.Show End Sub 2.5.1.3添加读者信息菜单

Private Sub adddzxxf_Click()Adddzxxf.Show End Sub 2.5.1.4添加还书信息菜单 Private Sub addhs_Click()hsf.Show End Sub 2.5.1.5添加借书信息菜单 Private Sub addjs_Click()Jsf.Show End Sub 2.5.1.6添加图书类别菜单 Private Sub addlb_Click()addtslb.Show End Sub 2.5.1.7查询读者信息菜单Private Sub cxdzxx_Click()cxdzxxf.Show End Sub 2.5.1.8查询借书信息菜单 Private Sub cxjs_Click()cxjsxxf.Show End Sub 2.5.1.9查询书籍信息菜单 Private Sub cxsj_Click()cxsjf.Show End Sub 2.5.1.10删除读者类别菜单 Private Sub Deldzlb_Click()dzlbxxf.Show End Sub 2.5.1.11删除读者信息菜单 Private Sub Deldzxx_Click()dzxxglf.Show End Sub 2.5.1.12删除书籍类别菜单 Private Sub dellb_Click()sjlbxxf.Show End Sub 2.5.1.13帮助菜单

Private Sub hlep_Click()frmSplash.Show End Sub 2.5.1.14退出系统菜单

Private Sub Unload_Click()end End Sub 2.5.1.15修改读者类别菜单 Private Sub Xgdzlb_Click()dzlbxxf.Show End Sub 2.5.1.16修改读者信息菜单 Private Sub xgdzxx_Click()dzxxglf.Show End Sub 2.5.1.17修改书籍类别菜单 Private Sub xglb_Click()sjlbxxf.Show End Sub 2.5.1.18修改用户密码菜单 Private Sub xgmm_Click()xgmmf.Show End Sub 2.5.1.19修改书籍信息菜单Private Sub xgts_Click()sjxxf.Show End Sub 2.5.1.20新增图书信息菜单 Private Sub xzts_Click()addtsf.Show End Sub 2.5.2添加图书类别

添加图书类别代码: Private Sub Command1_Click()Dim Sq1 As String Dim rs_add As New ADODB.Recordset Sql = “select * from sjlb where 类别名称='” & Text1.Text & “'” rs_add.Open Sql, Sjk, adOpenKeyset, adLockPeimistic If Trim(Text1.Text)= “” Then MsgBox “图书类别不能为空”, vbOKOnly + vbExclamation, “注意” Text1.SetFocus Exit Sub End If If Trim(Text2.Text)= “” Then MsgBox “图书编号不能为空”, vbOKOnly + vbExclamation, “注意” Text2.SetFocus Exit Sub End If

If rs_add.EOF = True Then rs_add.AddNew rs_add.Fields(0)= Trim(Text2.Text)rs_add.Fields(1)= Trim(Text1.Text)rs_add.Update MsgBox “成功地添加 ” & Text1.Text & “ 这一图书类别”, vbOKOnly, “恭喜” rs_add.Close Else MsgBox “ ” & Text1.Text & “ 这一图书类别已存在”, vbOKOnly + vbExclamation, “图书类别不能重复” rs_add.Close End If Text1.SetFocus Text1.Text = “” Text2.Text = “” End Sub Private Sub Command2_Click()Unload Me End Sub 2.5.3修改图书类别: 修改图书类别代码: Option Explicit Dim Myjl As New ADODB.Recordset Private Sub Form_Load()Dim Sq1 As String On Error GoTo loaderror Sq1 = “select * from sjlb ” Myjl.CursorLocation = adUseClient Myjl.Open Sq1, Sjk, adOpenKeyset, adLockPeimistic Cmdcancel.Enabled = False Cmdupdate.Enabled = False Dg.AllowAddNew = False Dg.AllowDelete = False Dg.AllowUpdate = False Set Dg.DataSource = Myjl Exit Sub loaderror: MsgBox Err.Description End Sub Private Sub Cmdadd_Click()Dg.AllowAddNew = True Dg.AllowUpdate = True Cmdadd.Enabled = False Cmdupdate.Enabled = True End Sub Private Sub Cmdadd_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)Cmdadd.Caption = “点击此处也可以添加” Cmdadd.Width = 3000 End Sub Private Sub Cmdcancel_Click()Myjl.CancelUpdate Dg.Refresh Dg.AllowAddNew = False Dg.AllowUpdate = False Cmdxg.Enabled = True Cmddel.Enabled = True Cmdcancel.Enabled = False Cmdupdate.Enabled = False End Sub

Private Sub Cmddel_Click()Dim Srl As String On Error GoTo delerror Srl = MsgBox(“确定要删除吗?”, vbYesNo)If Srl = vbYes Then Dg.AllowDelete = True Myjl.Delete Myjl.Update Dg.Refresh Else Exit Sub End If delerror: MsgBox Err.Description End SubPrivate Sub Cmdupdate_Click()If Not IsNull(Dg.Bookmark)Then Myjl.Update Cmddel.Enabled = True Cmdxg.Enabled = True Cmdcancel.Enabled = False Cmdupdate.Enabled = False Dg.AllowUpdate = False MsgBox “修改成功”, vbOKOnly + vbExclamation, “恭喜成功” End If Cmdadd.Width = 1550 Cmdadd.Caption = “高级” Cmdadd.Enabled = True End Sub Private Sub Cmdxg_Click()Dim Srl As String On Error GoTo xg Cmddel.Enabled = False Cmdxg.Enabled = False Cmdupdate.Enabled = True Cmdcancel.Enabled = True Dg.AllowUpdate = True xg: If Err.Number 0 Then MsgBox Err.Description End If End Sub Private Sub Form_Unload(Cancel As Integer)Set Dg.DataSource = Nothing Myjl.Close End Sub 2.5.4添加读者类别界面: Private Sub Command1_Click()Dim Srl As String Dim Mybook As New ADODB.Recordset If Trim(Text1.Text)= “” Then MsgBox “读者类别名称不能为空”, vbOKOnly + vbExclamation, “注意” Text1.SetFocus Exit Sub End If If Trim(Text2.Text)= “” Then MsgBox “借书数量不能为空”, vbOKOnly + vbExclamation, “注意” Text2.SetFocus Exit Sub End If If Trim(Text3.Text)= “” Then MsgBox “借书期限不能为空”, vbOKOnly + vbExclamation, “注意” Text3.SetFocus Exit Sub End If If Trim(Text4.Text)= “” Then MsgBox “有效期限不能为空”, vbOKOnly + vbExclamation, “注意”Text4.SetFocus Exit Sub End If On Error GoTo Cw Srl = “select * from dzlb where 读者类别名称='” & Text1.Text & “'” Mybook.Open Srl, Sjk, adOpenKeyset, adLockPeimistic If Mybook.EOF Then Mybook.AddNew Mybook.Fields(0)= Trim(Text1.Text)Mybook.Fields(1)= Trim(Text2.Text)Mybook.Fields(2)= Trim(Text3.Text)Mybook.Fields(3)= Trim(Text4.Text)Mybook.Update MsgBox “ 您已经成功添加” & Text1.Text & “这一读者类别 ”, vbOKOnly + vbExclamation, “添加成功!” Mybook.Close Else MsgBox “读者类别名称为” & Text1.Text & “ 重复”, vbOKOnly + vbExclamation, “注意重复” Text1.SetFocus Text1.Text = “” Mybook.Close Exit Sub End If Cw: MsgBox Err.Description End Sub Private Sub Command2_Click()Unload Me

End Sub

Private Sub Form_Load()Dim Sq1 As String '定义一个字符串变量

Dim Myjl As New ADODB.Recordset '定义一个Recordset对象变量 End Sub

2.5.5查询读者信息代码: Private Sub Form_Load()Dim Sq1 As String '定义一个字符串变量

Dim Myjl As New ADODB.Recordset '定义一个Recordset对象变量 Sq1 = “select * from dzlb” Myjl.Open Sq1, Sjk, adOpenKeyset, adLockPeimistic Do While Not Myjl.EOF Combo1.AddItem Myjl.Fields(0)Myjl.MoveNext Loop Combo1.ListIndex = 0 Myjl.Close End Sub

Private Sub Command1_Click()Dim Srl As String '定义一个字符串变量Dim Mybook As New ADODB.Recordset '定义一个Recordset对象变量 If Check1.Value = vbChecked Then Srl = “读者编号='” & Trim(Text1.Text & “”)& “'” End If

If Check2.Value = vbChecked Then If Trim(Srl)= “” Then Srl = “读者姓名='” & Trim(Text2.Text & “”)& “'” Else Srl = Srl & “and 读者编号='” & Trim(Text2.Text & “”)& “'” End If End If

If Check3.Value = vbChecked Then If Trim(Srl)= “” Then Srl = “读者类别='” & Trim(Combo1.Text & “”)& “'” Else Srl = Srl & “and 读者类别='” & Trim(Combo1.Text & “”)& “'” End If End If

If Srl = “” Then MsgBox “请选择一种查询依据”, vbOKOnly + vbExclamation, “查询方式” Exit Sub End If

Srl = “select * from dzxx where ” & Srl Mybook.CursorLocation = adUseClient Mybook.Open Srl, Sjk, adOpenKeyset, adLockPeimistic Dg.AllowAddNew = False Dg.AllowDelete = False Dg.AllowUpdate = False Set Dg.DataSource = Mybook End Sub

Private Sub Command2_Click()Unload Me End Sub

2.5.6图书借阅管理模块代码: 2.5.6.1查询书籍窗体代码

Private Sub Form_Load()’窗体加载时就书籍类别加载到列表框中。Dim Sq1 As String '定义一个字符串变量

Dim Myjl As New ADODB.Recordset '定义一个Recordset对象变量 Sq1 = “select * from sjlb” Myjl.Open Sq1, Sjk, adOpenKeyset, adLockPeimistic Do While Not Myjl.EOF Combo1.AddItem Myjl.Fields(1)Myjl.MoveNext Loop Combo1.ListIndex = 0 Myjl.CloseEnd Sub

Private Sub Command1_Click()’查询命令按钮代码 Dim Srl As String '定义一个字符串变量

Dim Mybook As New ADODB.Recordset '定义一个Recordset对象变量

If Check1.Value = vbChecked Then Srl = “书籍名称='” & Trim(Text1.Text & “”)& “'” End If

If Check2.Value = vbChecked Then If Trim(Srl)= “” Then Srl = “图书编号='” & Trim(Text2.Text & “”)& “'” Else Srl = Srl & “and 图书编号='” & Trim(Text2.Text & “”)& “'” End If End If If Check3.Value = vbChecked Then If Trim(Srl)= “” Then Srl = “作者='” & Trim(Text3.Text & “”)& “'” Else Srl = Srl & “and 作者='” & Trim(Text3.Text & “”)& “'” End If End If

If Check4.Value = vbChecked Then If Trim(Srl)= “” Then Srl = “出版社='” & Trim(Text4.Text & “”)& “'” Else Srl = Srl & “and 出版社='” & Trim(Text4.Text & “”)& “'” End If End If

If Check5.Value = vbChecked Then If Trim(Srl)= “” Then Srl = “类别='” & Trim(Combo1.Text & “”)& “'” Else Srl = Srl & “and 类别='” & Trim(Combo1.Text & “”)& “'” End If End If

If Srl = “” Then MsgBox “请选择一种查询依据”, vbOKOnly + vbExclamation, “查询方式” Exit Sub End If

Srl = “select * from sjxx where ” & Srl Mybook.CursorLocation = adUseClient Mybook.Open Srl, Sjk, adOpenKeyset, adLockPeimistic Dg.AllowAddNew = False Dg.AllowDelete = False Dg.AllowUpdate = False Set Dg.DataSource = MybookEnd Sub

为了获取表格某一单元格值,为DataGrid控件DG添加如下代码:

Private Sub Dg_RowColChange(LastRow As Variant, ByVal LastCol As Integer)On Error GoTo Cw Pand = Dg.Columns(7).CellValue(Dg.Bookmark)Bookunm = Dg.Columns(0).CellValue(Dg.Bookmark)’ Pand 和Bookunm是公共模块中定义的一个公共变量,Bookunm用来记录表格中某一书籍的图书编号,便于在借书窗体中再次调用。Exit Sub Cw: MsgBox Err.Description End Sub

Private Sub Command2_Click()Unload Me End Sub

Private Sub Command3_Click()’这是“借这本书”命令按钮,如果条件满足,就进入借书窗体了。If Trim(Bookunm)= “” Then MsgBox “请选择要借阅的书籍”, vbOKOnly + vbExclamation, “选择书籍” Exit Sub End If If Trim(Pand)= “是” Then MsgBox “此书已经被借出,请选择其它书籍”, vbOKOnly + vbExclamation, “选择书籍” Exit Sub End If Unload Me Jsf.Show End Sub

2.5.6.2借书窗体代码 Option Explicit Dim Lb As String '该读者类别

Dim Qx As String '该读者可借书的期限 Dim Yjsl As String '该读者已借书的数量 Dim Maxm As String '该读者借书量的限制

‘由在查询书籍的窗体满足了可以借书的条件进入此借书窗体,根据此书的图书编号,在本窗体加载时就加载了书籍的信息和读者列表。Private Sub Form_Load()Dim Mybook As New ADODB.Recordset Dim Mydz As New ADODB.Recordset Dim Srl As String Dim Sql As String Srl = “select * from sjxx where 图书编号='” & Bookunm & “'” Mybook.Open Srl, Sjk, adOpenKeyset, adLockPeimistic Label8.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 * from dzxx ” Mydz.Open Sql, Sjk, adOpenKeyset, adLockPeimistic If Not Mydz.EOF Then Do While Not Mydz.EOF Combo1.AddItem Mydz.Fields(0)Combo2.AddItem Mydz.Fields(1)Mydz.MoveNext Loop Combo1.ListIndex = 0 Else MsgBox “请先登记读者”, vbOKOnly + vbExclamation, “注意” Exit Sub End If

Mybook.Close Mydz.Close

End Sub ‘由于读者编号与读者姓名是一一对应的,必须对用来加载这两个信息的两个列表框编写如下代码: Private Sub Combo1_Click()Combo2.ListIndex = Combo1.ListIndex End Sub Private Sub Combo2_Click()Combo1.ListIndex = Combo2.ListIndex End Sub

Private Sub Command1_Click()’这是借书的“确定”按钮 Dim Myjl As New ADODB.Recordset Dim Sql As String

Sql = “select * from dzxx where 读者编号='” & Combo1.Text & “'” Myjl.Open Sql, Sjk, adOpenKeyset, adLockPeimistic Lb = Myjl.Fields(3)Yjsl = Myjl.Fields(8)Myjl.Close

Sql = “select * from dzlb where 读者类别名称='” & Lb & “'” Myjl.Open Sql, Sjk, adOpenKeyset, adLockPeimistic Qx = Myjl.Fields(2)Maxm = Myjl.Fields(1)Myjl.Close

If Yjsl >= Maxm Then MsgBox “该读者借书数额已满!”, vbOKOnly + vbExclamation Exit Sub End If

‘以上条件满足了,就将新借书信息添加到借阅信息数据库中,代码如下: Sql = “select * from jyxx” Myjl.Open Sql, Sjk, adOpenKeyset, adLockPeimistic Myjl.AddNew Myjl.Fields(1)= Combo1.TextMyjl.Fields(2)= Combo2.Text Myjl.Fields(3)= Label8.Caption Myjl.Fields(4)= Label9.Caption Myjl.Fields(5)= Date Myjl.Fields(6)= DateAdd(“Ww”, Qx, Date)Myjl.Update Myjl.Close ‘同时,将此书在书籍信息(sjxx)表中的“是否被借出”设置为“是”。Sql = “select * from sjxx where 图书编号='” & Bookunm & “'” Myjl.Open Sql, Sjk, adOpenKeyset, adLockPeimistic Myjl.Fields(7)= “是” Myjl.Update Myjl.Close

‘同时将该读者已借书数量上加1。

Sql = “select * from dzxx where 读者编号='” & Combo1.Text & “'” Myjl.Open Sql, Sjk, adOpenKeyset, adLockPeimistic Myjl.Fields(8)= Myjl.Fields(8)+ 1 Myjl.Update Myjl.Close

MsgBox “《” & Label9.Caption & “》 这本书成功地借给了读者姓名为 ” & Combo2.Text & “ 的读者!”, vbOKOnly + vbExclamation, “借阅成功” Unload Me End Sub

Private Sub Command2_Click()Unload Me End Sub

2.5.6.3查询借书窗体代码

Private Sub Command1_Click()Dim Sql As String '定义一个字符串变量

Dim Myjl As New ADODB.Recordset '定义一个Recordset对象变量

If Option1.Value = True Then Sql = “select * from sjxx where 是否被借出='是'” End If

If Option2.Value = True Then Sql = “select * from sjxx where 是否被借出='否'” End If

If Option3.Value = True Then Sql = “select * from jyxx where 读者姓名='” & dzxm.Text & “'” End If

Myjl.CursorLocation = adUseClient Myjl.Open Sql, Sjk, adOpenKeyset, adLockPeimistic Dg.AllowAddNew = False Dg.AllowDelete = False Dg.AllowUpdate = FalseSet Dg.DataSource = Myjl End Sub

Private Sub Command2_Click()Unload Me

End Sub

Private Sub Option3_Click()dzxm.Visible = True End Sub

2.5.6.4还书窗体代码 Private Sub Form_Load()Dim mybook As New ADODB.Recordset Dim Mydz As New ADODB.Recordset Dim Srl As String Dim Sql As String Sql = “select * from dzxx ” Mydz.Open Sql, Sjk, adOpenKeyset, adLockPeimistic If Not Mydz.EOF Then Do While Not Mydz.EOF Combo1.AddItem Mydz.Fields(0)Combo2.AddItem Mydz.Fields(1)Mydz.MoveNext Loop End If Mydz.Close Sql = “select * from jyxx ” mybook.Open Sql, Sjk, adOpenKeyset, adLockPeimistic If Not mybook.EOF Then Do While Not mybook.EOF Combo3.AddItem mybook.Fields(3)Combo4.AddItem mybook.Fields(4)mybook.MoveNext Loop End If mybook.Close End Sub

Private Sub Combo1_Click()Combo2.ListIndex = Combo1.ListIndex End Sub Private Sub Combo2_Click()Combo1.ListIndex = Combo2.ListIndex End Sub

Private Sub Combo3_Click()Combo4.ListIndex = Combo3.ListIndex End Sub Private Sub Combo4_Click()Combo3.ListIndex = Combo4.ListIndex End Sub

Private Sub Command1_Click()Dim Mydz As New ADODB.Recordset Dim Sql As String findform = True Sql = “select * from jyxx where 读者姓名='” & Combo2.Text & “' ” Mydz.CursorLocation = adUseClient Mydz.Open Sql, Sjk, adOpenKeyset, adLockPeimistic

Set Dg.DataSource = Mydz Dg.AllowAddNew = False Dg.AllowDelete = False Dg.AllowUpdate = False End Sub

Private Sub Command2_Click()Dim mybook As New ADODB.Recordset Dim Sql As String findform = False Sql = “select * from jyxx where 书籍编号='” & Combo3.Text & “' ” mybook.CursorLocation = adUseClient mybook.Open Sql, Sjk, adOpenKeyset, adLockPeimistic Set Dg.DataSource = mybook Dg.AllowAddNew = False Dg.AllowDelete = False Dg.AllowUpdate = False End Sub

Private Sub Command3_Click()Dim Book As String Dim Dz As String Dim Sql As String Dim W As String Dim mybook As New ADODB.Recordset On Error GoTo Cw Book = Dg.Columns(3).CellValue(Dg.Bookmark)Dz = Dg.Columns(1).CellValue(Dg.Bookmark)W = MsgBox(“确定要还这本书吗?”, vbYesNo, “”)If W = vbYes Then Sql = “select * from jyxx where 书籍编号='” & Book & “' ” mybook.CursorLocation = adUseClient mybook.Open Sql, Sjk, adOpenKeyset, adLockPeimistic mybook.Delete mybook.Update mybook.Close

Sql = “select * from sjxx where 图书编号='” & Book & “'” mybook.CursorLocation = adUseClient mybook.Open Sql, Sjk, adOpenKeyset, adLockPeimistic mybook.Fields(7)= “否” mybook.Update mybook.Close Sql = “select * from dzxx where 读者编号='” & Dz & “' ” mybook.CursorLocation = adUseClient mybook.Open Sql, Sjk, adOpenKeyset, adLockPeimistic mybook.Fields(8)= mybook.Fields(8)-1 mybook.Update mybook.Close

If findform = True Then Command1_Click Else Command2_Click End If MsgBox “还书成功!”, vbOKOnly + vbExclamation, “” Dg.AllowDelete = False Else Exit Sub End If Cw: MsgBox Err.Description End Sub

Private Sub Command4_Click()Unload Me End Sub

2.5.7系统管理

2.5.7.1登录界面代码 Option Explicit Dim cnt As Integer’用来记录点击“确定”的次数

Private Sub Form_Load()’

Dim ConnectionString As String ConnectionString = “provider=Microsoft.Jet.oledb.4.0;data source=sj.mdb” Sjk.Open ConnectionString’ Sjk是公用模块中定义的一个公共变量。cnt = 0 End Sub

Private Sub Cmdcancel_Click()End End Sub

Private Sub cmdOK_Click()Dim Sql As String Dim rs_add As New ADODB.Recordset If Trim(Text1.Text)= “” Then MsgBox “用户名不能为空”, vbOKOnly + vbExclamation, “注意” Exit Sub Text1.SetFocus Else Sql = “select * from sys where Uname='” & Text1.Text & “'” rs_add.Open Sql, Sjk, adOpenKeyset, adLockPeimistic If rs_add.EOF = True Then MsgBox “没 ” & Text1.Text & “ 有这个用户”, vbOKOnly + vbExclamation, “” Text1.SetFocus Else If Trim(rs_add.Fields(1))= Trim(Text2.Text)Then 'Unema = Text1.Text 'Uid = rs_add.Fields(2)rs_add.Close Mf.Show Unload Me Else

MsgBox “密码不正确”, vbOKOnly + vbExclamation, “注意” Text2.SetFocus Text2.Text = “” End If End If End If cnt = cnt + 1 If cnt = 3 Then Unload Me

End If End Sub

Private Sub cmdOK_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)cmdOK.Caption = “确定登录” ‘只为增强动画效果,移动鼠标到cmdok按钮上时,显示的文字由原来的“确定”变为“确定登录” End Sub

2.5.7.2添加用户界面代码 Private Sub Form_Load()Dim Sjk As ADODB.Connection Dim Sj As ADODB.Recordset Combo1.AddItem “管理员” Combo1.AddItem “来宾用户” Set Sjk = New ADODB.Connection Set Sj = New ADODB.Recordset Sjk.ConnectionString = “DSN=cn;UID=;PWD=;” Sjk.ConnectionTimeout = 30 Sjk.Open If Sjk.State = adStateOpen Then _ MsgBox “数据库加载成功,欢迎进入“添加管理员”界面!” Sjk.Close End Sub

Private Sub Command1_Click()Dim Sq1 As String '定义一个字符串变量

Dim Myjl As New ADODB.Recordset '定义一个Recordset对象变量 If Trim(Text1.Text)= “” Then '首先检查用户名是否为空 MsgBox “用户名不能空”, vbOKOnly + vbExclamation, “注意!” Text1.SetFocusExit Sub Else Sq1 = “select * from sys” Myjl.Open Sq1, Sjk, adOpenKeyset, adLockPeimistic While(Myjl.EOF = False)If Trim(Myjl.Fields(0))= Trim(Text1.Text)Then MsgBox “ ” & Text1.Text & “ 这个用户名已存在”, vbOKOnly + vbExclamation, “注意!” Text1.SetFocus Text1.Text = “” Text2.Text = “” Text3.Text = “” Combo1.Text = “” Exit Sub Else Myjl.MoveNext End If Wend If Trim(Text2.Text)Trim(Text3.Text)Then MsgBox “两次输入的密码不一致,请重新设置 ”, vbOKOnly + vbExclamation, “注意!” Text2.SetFocus Text2.Text = “” Text3.Text = “” Exit Sub Else Myjl.AddNew Myjl.Fields(0)= Text1.Text Myjl.Fields(1)= Text2.Text Myjl.Update Myjl.Close MsgBox “ 您已经成功添加” & Text1.Text & “ 这个用户”, vbOKOnly + vbExclamation, “注册成功!” End If End If End Sub

Private Sub Command2_Click()Unload Me End Sub

2.5.7.3修改用户界面密码代码 Private Sub Command1_Click()Dim Sq1 As String '定义一个字符串变量

Dim Myjl As New ADODB.Recordset '定义一个Recordset对象变量

If Trim(Text1.Text)Trim(Text2.Text)Then MsgBox “两次输入的密码不一致,请重新设置 ”, vbOKOnly + vbExclamation, “注意!” Text1.SetFocus Text1.Text = “” Text2.Text = “” Exit Sub Else Sq1 = “select * from sys where Uname='” & Text3.Text & “'” Myjl.Open Sq1, Sjk, adOpenKeyset, adLockPeimistic If Myjl.EOF = True Then MsgBox “没有” & Text3.Text & “ 这个用户”, vbOKOnly + vbExclamation, “” Text3.SetFocus Else Myjl.Fields(1)= Text1.Text Myjl.Update Myjl.Close MsgBox “ 密码修改成功”, vbOKOnly + vbExclamation, “成功!” Unload Me End If End If End Sub

Private Sub Command2_Click()Unload Me End Sub

后记:经过指导教师徐哲鑫老师的指点,本人已经竭尽全力对本系统进行具体设计,现已趋向完善,在此感谢老师的教导。

参考文献

[1] 谭浩强,薛淑斌,袁玫.Visual Basic程序设计.北京清华大学学研大厦:北京清华大学出版社.2004 [2] 林陈雷,郭安源,葛晓东.Visual Basic教育信息系统开发实例导航.人民邮电出版社.2006 [3] 张小勤.一种改进的数据库连接的设计与实现[J].电脑知识与技术(学术交流).2006年05期 [4] 田君.数字图书馆管理平台系统的研究[D].天津工业大学.2004年

[5] 陈志泊.数据库系统原理与应用教程.北京市崇文区夕照寺街14号.人民邮电出版社.2011,72-1128

用C++编写的图书管理系统

C++实现图书管理系统 一:功能:1.需要有个系统管理员和普通读者;2.对图书库存图书的创建,添加,删除,修改,查询;3.对读者借阅信息的创建,添加,删除,修改,查询; 4:普通读者只有查询上述两个文......

用c语言编写一个成绩管理系统

程序说明:有N个学生,每个学生的数据包含学号(不重复)、姓名、三门课的成绩及平均成绩,试设计一学生成绩管理系统,使之能提供以下功能: (1)主菜单 学生成绩管理系统1、成绩录入2、成绩......

VB 图书管理系统 毕业设计 外文翻译

学院毕业设计(论文)译文专用纸 第 1 页现在送(毕业设计论文、文献综述、外文翻译、开题报告、答辩PPT)都可以直接下载源程序因为无法上传百度,需要者去空间留言 学院毕业设计(论......

图书管理系统用例图

图书管理系统 UML建模与设计模式实验报告计算机与信息工程学院一、实验目的在熟悉用例概念与应用的基础上,掌握用例模型的建立,包括: 1.掌握用例图的建立。2.掌握用例描述文档的......

计算机图书管理系统毕业论文(VB开发,适用于院系)

致谢在本次毕业设计中,我从指导老师身上学到了很多东西。她认真负责的工作态度,严谨的治学精神和深厚的理论水平都使我收益匪浅。她无论在理论上还是在实践中,都给与我很大的帮......

《用VB编写一个简单的图书管理系统分解.docx》
将本文的Word文档下载,方便收藏和打印
推荐度:
用VB编写一个简单的图书管理系统分解
点击下载文档
相关专题 vb编写简单整人小程序 分解 图书管理系统 简单 vb编写简单整人小程序 分解 图书管理系统 简单
[其他范文]相关推荐
[其他范文]热门文章
下载全文