《毕业设计(论文)-VB6.0+Access图书管理系统论文.doc》由会员分享,可在线阅读,更多相关《毕业设计(论文)-VB6.0+Access图书管理系统论文.doc(28页珍藏版)》请在三一文库上搜索。
1、福州教育学院 ( )届毕业论文(设计)题 目: 系 部: 专业(方向): 学 号: 姓 名: 提 交 日 期: 指导教师及职称: 25图书管理系统计算机系 初等教育(信息技术)专业 2009届 XXX指导教师:福建教育学院 XXX摘要信息化的来临,面对激烈的市场竞争,在当今信息社会,各行各业都离不开信息处理,计算机的运用越来越广泛,信息管理水平越来越高。图书馆也不再局限于人工手动管理,电子图书馆越来越受青睐。本系统的设计,就是为了方便读者进行图书借阅,方便管理员管理图书信息。本系统采用VB6.0和Access两个软件制作图书管理系统,提高了管理员的管理效率,图书借阅与归还也更加简便、快捷。 关
2、键字:图书管理系统 信息 数据库 Access Visual Basic 6.0目录摘要. 11、引言11.1选题的目的、意义12、图书管理系统开发相关技术介绍12.1 Visual Basic 6.0介绍12.2 Access 介绍23、系统总体设计分析23.1系统需求分析23.2系统实现的目标33.3系统的功能结构图33.4系统的功能模块设计34、 系统总体结构设计44.1、数据库概念结构设计44.2、数据库逻辑结构设计45、图书管理系统详细设计65.1身份登录65.2主界面85.3读者信息管理95.4图书信息管理125.5图书借阅管理175.6系统管理216、期间遇到的问题226.1 建
3、立数据库236.2 VB如何与Access连接236.3 很多控件不知道怎么用237、不足之处238、结论24参考文献.24 正文内容: 1、引言很多图书馆之前由于读者较少,藏书较少等原因,对图书的信息需求不高。随着社会的信息化发展,图书的数量越来越多,种类越来越多样化,因此对信息的需求越来越高,这就有必要建立一个易于管理、易于操作且更加规范的图书管理系统。1.1选题的目的、意义社会的发展,科技的进步,信息技术的广泛应用,数字化管理成为是现代社会的发展趋势。对于学校图书馆,图书馆的规模越来越大,如果局限于人工手动管理,拿着一本记录本,一本书一本书的登记借阅,一个读者一个读者的登记信息,数据量大
4、,严重浪费时间、精力,而且容易出错。像这样中小型的图书馆,为了节约人力物力就有必要建立一个图书管理系统,通过计算机,对馆内图书信息及读者信息进行管理,极大得提高了工作效率,而且查找简便,存储容量大,成本又低,是个很好的选择。2、图书管理系统开发相关技术介绍2.1 Visual Basic 6.0介绍 VB6.0是在Basic语言上发展而来的,以可视化工具进行界面设计,以结构化Basic语言为基础,以事件驱动为运行机制。是目前最流行的程序设计语言之一。Visual Basic 6.0具有以下几个功能:(1)具有面向对象的可视化设计工具;(2)具有事件驱动的编程机制;(3)提供了易学易用的应用程序
5、集成开发环境;(4)提供了结构化的程序设计语言;(5)支持多种数据库系统的访问;(6)采用了OLE技术;(7)采用了ActiveX技术;(8)新增很多实用控件。2.2 Access 介绍本系统使用Access进行数据库的创建,Access是Microsoft推出的Office系列的办公室自动化软件中用于数据库管理。它可以接受和转换多种文件格式的数据,并且能够方便的对现存数据库系统进行扩展和升级。它是一个中、小型的数据库管理系统,它的数据库文件储存于*.MDB文件中,数据的输入、查询非常简便。可以高效地进行数据库开发和管理工作。它具有以下特点:(1)完整的数据库管理功能Access提供了一套用于
6、组织数据、建立查询、共享数据等功能,这些功能可以完成管理的各项工作。(2)高度智能化的向导功能从创建窗体、报表中的各种控件,到创建Access表、查询、数据页等基本对象,都可以使用向导功能,在向导的帮助下,很多复杂的工作也变得简单。(3)方便操作的图形界面Access的图形界面是标准的Windows窗口形式,独具特色的图形化查询设计,使原来需要编写大量代码的工作也只需拖动鼠标就可以完成。3、系统总体设计分析3.1系统需求分析系统需求分析工作是系统生命周期中重要的一个环节,也是决定性的一步。只有经过系统需求分析,才能了解用户对系统的功能和性能的要求,并将其转换为具体的需求规格说明,为系统的设计打
7、下基础。调查发现,现代的人们希望图书馆完成的不仅仅是借书和还书的功能,而更多的是对图书和借阅者信息的管理,因为这些信息管理起来相对麻烦,比较浪费时间精力,效率不高又容易出错,所以有必要让这些繁琐的程序通过计算机来执行。本系统的图书管理涉及图书信息、读者信息、图书借阅、系统管理等管理功能,实现基本的用户需求。3.2系统实现的目标本图书管理系统设计目的是实现图书管理的系统化、自动化,帮助图书管理人员更好更有效地完成图书管理工作。(1)强大的查询功能,查询灵活(2)操作界面简洁,易于用户操作(3)数据存储具有安全性和可靠性(4)管理员和一般会员身份区别清晰,权限清晰(5)实现图书借阅与归还的全程数据
8、信息追踪3.3系统的功能结构图图31图书管理系统功能结构图3.4系统的功能模块设计 3.4.1 图书管理部分 图书信息管理主要实现图书的录入、查询,图书信息的修改。一般会员可以方便地查询馆内图书信息,即馆内藏书以及是否被借出,界面简洁,容易操作。图书的录入和信息的修改只能由管理员来实现,管理员可以在登录后对馆内图书的信息记录进行修改,包括图书类别的添加与删除、修改,图书信息的添加、修改等,操作简单,方便管理员对图书的管理。 3.4.2 读者管理部分 读者信息管理主要实现对读者信息的查询、修改等功能,一般会员同样只能查询读者的信息,读者可以查询自己借了哪些书,何时借的,以便在规定时间内可以归还所
9、借图书。修改功能只能在管理员权限下才可操作,管理员可以添加读者信息,修改读者信息,确保管理系统录入的都是读者的最新信息,可以在需要的时候联系到借阅者。 3.4.3借阅管理部分 图书的借阅管理全部由管理员操作,一般会员是没有权限的。包括图书的借阅与归还等操作,以及帮助统计已借出书与馆内存书情况。管理员可以通过录入读者的信息和图书的信息、借阅日期等来实现对图书的借阅,同样的,录入图书和读者信息、还书日期实现还书。 3.4.4系统管理部分 系统管理功能也只能在管理员的权限下才可操作,管理员可以在登录账户后,进行添加会员和账户密码的修改。4、 系统总体结构设计4.1、数据库概念结构设计数据库是存放数据
10、的仓库,只不过这个仓库是建在计算机存储设备上的,而且数据按照一定的格式存放。也就是说数据库是长期存储在计算机内的、有组织的、可共享的数据集合。数据库概念结构设计是整个数据库设计的又一个关键,它通过对用户需求进行综合、归纳与抽象,形成于独立于具体的概念模型。4.2、数据库逻辑结构设计逻辑结构设计是将概念结构转换成DBMS能够接受的数据模型,并对其优化。4.2.1图书信息实体属性首先,一个图书馆最重要的就是对馆内图书的管理,所以要创建一个关于图书信息的数据表。图41图书信息实体属性图4.2.2读者信息实体属性再者就是对图书馆的用户进行信息的存储,需要存储读者的详细信息,这也是图书管理必不可少的一部
11、分。图42读者信息实体属性图4.2.3借阅信息实体属性然后就是图书管理系统中的图书借阅与归还,需要将读者信息与图书信息联系起来,图书借阅与归还是图书管理最重要的环节。图43借阅信息实体属性图4.2.4读者类别实体属性读者类别用来记录读者的分类及其具有的权限。图44读者类别实体属性图4.2.5图书类别实体属性图书类别主要用于管理员对图书的管理工作,方便查找与整理。图45图书类别实体属性图4.2.6用户实体属性用户实体是用于用户第一次在本图书馆借阅浏览,需先注册一个账号,方便之后的借阅与归还操作。图46用户实体属性图5、图书管理系统详细设计 5.1身份登录本系统设计登录的身份分为管理员与会员。注册
12、过的用户使用账号密码登录,选择身份进入管理员或者会员的界面,进行一系列的操作。这个界面的设计只是用了简单的几个控件:CommandButton(按钮)、Textbox(文本框)、Label(标签)具体代码:Option ExplicitDim cnt As Integer 记录确定次数Private Sub Command1_Click()Dim sql As StringDim rs_login As New ADODB.RecordsetDim conn As New ADODB.Connectionconn.Open provider=Microsoft.Jet.OLEDB.4.0; d
13、ata source= & App.Path & library.mdbIf Trim(Text1.Text) = Then MsgBox 用户名不能为空,请重新输入! Text1.SetFocus Else sql = select * from 用户表 where user_ID= & Trim(Text1.Text) & rs_login.Open sql, conn, adOpenKeyset, adLockPessimistic If rs_login.EOF = True Then MsgBox 没有这个用户,请重输入!, vbOKOnly + vbExclamation, Tex
14、t1.Text = Text1.SetFocus Else username = Text1.Text If Trim(rs_login.Fields(1) = Trim(Text2.Text) Then If Combo1.Text = 管理员 Then Unload Me 管理员.Show Else Unload Me 会员.Show End If Else MsgBox 密码不正确,请重输入!, vbOKOnly + vbExclamation, Text2.SetFocus Text2.Text = End If End If End If cnt = cnt + 1 If cnt =
15、 3 Then Unload Me End IfEnd SubPrivate Sub Form_Load()cnt = 0End Sub5.2主界面主界面有两个,管理员和会员的界面。这里运用到菜单编辑器,使用菜单编辑器可以在当前窗口添加菜单栏,方便使用者选择系统的各种功能。菜单编辑器可以通过单击工具栏中的“菜单编辑器”按钮打开其对话框,也可以通过菜单栏中的“工具”菜单“菜单编辑器”打开。需要注意的是,其中必须要填的是“标题”和“名称”。关键代码:Private Sub bzxx_Click() On Error GoTo ERRB 打开帮助文件 dlgCommonDialog.HelpComm
16、and = &HB& dlgCommonDialog.ShowHelpERRB:End Sub5.3读者信息管理读者信息管理主要包括读者信息的查询与修改。5.3.1查询读者信息 查询读者信息的界面运用了更多的控件:DataGrid Combo1 Check 等,利用DataGrid控件列出所要查询的信息,如果是刚安装的VB在工具箱中是找不到这个控件的,需要在“工程”菜单中点击“部件”打开部件对话框,在其中勾选“Microsoft DataGrid Control 6.0(sp6)(OLEDB)”,点击“确定”,这样控件就会显示在工具箱中了,直接使用就可以了。关键代码:Private Sub C
17、ommand1_Click()If Check1.Value = vbChecked Then sql = 读者编号= & Trim(Text1.Text & ) & End IfIf Check2.Value = vbChecked Then If Trim(sql) = Then sql = 读者姓名= & Trim(Text2.Text & ) & Else sql = sql & and 读者类别= & Trim(Text2.Text & ) & End IfEnd Ifsql = select * from 读者信息 where & sqlrs_findreader.CursorLo
18、cation = adUseClientrs_findreader.Open sql, conn, adOpenKeyset, adLockPessimisticDataGrid1.AllowAddNew = FalseDataGrid1.AllowDelete = FalseDataGrid1.AllowUpdate = FalseEnd Sub5.3.2修改读者信息关键代码:Private Sub Command1_Click() Dim answer As String On Error GoTo Command1 Command2.Enabled = False Command1.En
19、abled = False Command3.Enabled = True Command4.Enabled = True DataGrid1.AllowUpdate = True Exit Sub Command1: If Err.Number 0 Then MsgBox Err.Description End IfEnd SubPrivate Sub Form_Load() sql = select * from 读者信息 rs_reader.CursorLocation = adUseClient rs_reader.Open sql, conn, adOpenKeyset, adLoc
20、kPessimisticCommand3.Enabled = False Command4.Enabled = False DataGrid1.AllowAddNew = False DataGrid1.AllowDelete = False DataGrid1.AllowUpdate = False Set DataGrid1.DataSource = rs_reader Exit Subloaderror: MsgBox Err.DescriptionEnd SubPrivate Sub Form_Unload(Cancel As Integer) Set DataGrid1.DataSo
21、urce = Nothing rs_reader.CloseEnd Sub5.3.3添加读者类别关键代码:Private Sub Command1_Click() Dim rs_readerstyle As New ADODB.Recordset If Trim(Text1.Text) = Then MsgBox 读者种类不能为空 , vbOK0nly + vbExclamation, Text1.SetFocus Exit Sub End If If Trim(Text2.Text) = Then MsgBox 借书数量不能为空, vbOK0nly + vbExclamation, Text
22、2.SetFocus Exit Sub End If If Trim(Text3.Text) = Then MsgBox 借书期限不能为空, vbOK0nly + vbExclamation, Text3.SetFocus Exit Sub End If sql = select * from 读者类别 where 种类名称= & Text1.Text & rs_readerstyle.Open sql, conn, adOpenKeyset, adLockPessimistic If rs_readerstyle.EOF Then rs_readerstyle.AddNew rs_reade
23、rstyle.Fields(0) = Trim(Text1.Text) rs_readerstyle.Fields(1) = Trim(Text2.Text) rs_readerstyle.Fields(2) = Trim(Text3.Text) rs_readerstyle.Update MsgBox 添加读者类别成功!, vbOKOnly, rs_readerstyle.Close Else MsgBox 读者类别重复!, vbOKOnly + vbExclamation, Text1.SetFocus Text1.Text = rs_readerstyle.Close Exit Sub
24、End If End Sub5.4图书信息管理 5.4.1添加图书类别关键代码:Private Sub Command1_Click()Dim rs_bookstyle As New ADODB.Recordset If Trim(Text1.Text) = Then MsgBox 图书种类不能为空 , vbOK0nly + vbExclamation, Text1.SetFocus Exit Sub End Ifsql = select * from 图书类别 where 类别名称= & Text1.Text & rs_bookstyle.Open sql, conn, adOpenKeys
25、et, adLockPessimistic If rs_bookstyle.EOF Then rs_bookstyle.AddNew rs_bookstyle.Fields(0) = Trim(Text1.Text) rs_bookstyle.Fields(1) = Trim(Text2.Text) rs_bookstyle.Update MsgBox 添加图书类别成功!, vbOKOnly, rs_bookstyle.Close Else MsgBox 图书类别重复!, vbOKOnly + vbExclamation, Text1.SetFocus Text1.Text = rs_book
26、style.Close Exit SubEnd IfEnd Sub5.4.2修改图书类别关键代码:Private Sub Command2_Click() Dim answer As String answer = MsgBox(确定要删除吗?, vbYesNo, ) If answer = vbYes Then DataGrid1.AllowDelete = True rs_reader.Delete rs_reader.Update DataGrid1.Refresh Else Exit Sub End IfEnd SubPrivate Sub Form_Load() On Error G
27、oTo loaderror sql = select * from 图书类别 rs_reader.CursorLocation = adUseClient rs_reader.Open sql, conn, adOpenKeyset, adLockPessimisticCommand3.Enabled = False Command4.Enabled = False DataGrid1.AllowAddNew = False DataGrid1.AllowDelete = False DataGrid1.AllowUpdate = False Set DataGrid1.DataSource
28、= rs_reader Exit Subloaderror: MsgBox Err.DescriptionEnd Sub5.4.3添加图书信息 关键代码:Private Sub Form_Load()Dim rs_leibie As New ADODB.RecordsetDim conn As New ADODB.ConnectionDim sql As Stringconn.Open provider=Microsoft.Jet.OLEDB.4.0; data source= & App.Path & library.mdbsql = select * from 图书类别rs_leibie.
29、Open sql, conn, adOpenKeyset, adLockPessimisticrs_leibie.MoveFirstDo While Not rs_leibie.EOF Combo1.AddItem rs_leibie.Fields(0) rs_leibie.MoveNextLooprs_leibie.CloseEnd Sub 5.4.4查询图书信息 关键代码:Private Sub Command1_Click()If Option2.Value = True Then sql = select * from 图书信息 where 是否被借出=是 End If If Opti
30、on3.Value = True Then sql = select * from 图书信息 where 是否被借出=否 End If If Option1.Value = True And Text1.Text Then sql = select * from 借阅信息 where 读者姓名= & Text1.Text & ElseIf Option1.Value = True And Text1.Text = Then MsgBox 请输入读者姓名!, vbOKOnly + vbExclamation Text1.SetFocus Exit Sub End If rs_find.Curso
31、rLocation = adUseClient rs_find.Open sql, conn, adOpenKeyset, adLockPessimistic DataGrid1.AllowAddNew = False DataGrid1.AllowDelete = False DataGrid1.AllowUpdate = False Set DataGrid1.DataSource = rs_findEnd Sub 5.4.5修改图书信息 关键代码:Private Sub Form_Load() sql = select * from 图书信息 rs_book.CursorLocation
32、 = adUseClient rs_book.Open sql, conn, adOpenKeyset, adLockPessimisticCommand3.Enabled = False Command4.Enabled = False DataGrid1.AllowAddNew = False DataGrid1.AllowDelete = False DataGrid1.AllowUpdate = False Set DataGrid1.DataSource = rs_book Exit Subloaderror: MsgBox Err.DescriptionEnd Sub5.5图书借阅
33、管理 5.5.1借书管理关键代码:Option ExplicitDim panduan As StringIf Check1.Value = vbChecked Then sql = 图书名称 like % & Trim(Text1.Text & ) & %End IfIf Check2.Value = vbChecked Then If Trim(sql) = Then sql = 图书类别 like % & Trim(Combo1.Text & ) & % Else sql = sql & and 图书类别 like % & Trim(Combo1.Text & ) & % End IfE
34、nd IfIf Check3.Value = vbChecked Then If Trim(sql) = Then sql = 图书作者 like % & Trim(Text2.Text & ) & % Else sql = sql & and 图书作者 like % & Trim(Text2.Text & ) & % End IfEnd IfIf Check4.Value = vbChecked Then If Trim(sql) = Then sql = 图书编号 like% & Trim(Text3.Text & ) & % Else sql = sql & and 图书编号 like%
35、 & Trim(Text3.Text & ) & % End IfEnd IfIf Check5.Value = vbChecked Then If Trim(sql) = Then sql = 出版社 like % & Trim(Text4.Text & ) & % Else sql = sql & and 出版社 like % & Trim(Text4.Text & ) & % End IfEnd IfIf Trim(sql) = Then MsgBox 请选择查询方式!, vbOKOnly + vbExclamation Exit SubEnd Ifsql = select * from
36、 图书信息 where & sqlrs_findbook.CursorLocation = adUseClientrs_findbook.Open sql, conn, adOpenKeyset, adLockPessimisticDataGrid1.AllowAddNew = FalseDataGrid1.AllowDelete = FalseDataGrid1.AllowUpdate = FalseIf rs_findbook.RecordCount = 0 Then MsgBox 查询不到该图书信息!, vbOKOnly + vbExclamationElse Set DataGrid1
37、.DataSource = rs_findbookEnd IfEnd SubPrivate Sub DataGrid1_RowColChange(LastRow As Variant, ByVal LastCol As Integer) book_num = DataGrid1.Columns(0).CellValue(DataGrid1.Bookmark) panduan = DataGrid1.Columns(1).CellValue(DataGrid1.Bookmark)End SubPrivate Sub Form_Load() Dim rs_find As New ADODB.Rec
38、ordset Dim conn As New ADODB.Connection Dim sql As String sql = select * from 图书类别 conn.Open provider=Microsoft.Jet.OLEDB.4.0; data source= & App.Path & library.mdb rs_find.Open sql, conn, adOpenKeyset, adLockPessimistic rs_find.MoveFirst If Not rs_find.EOF Then Do While Not rs_find.EOF Combo1.AddIt
39、em rs_find.Fields(0) rs_find.MoveNext Loop Combo1.ListIndex = 0 End If rs_find.Close End Sub5.5.2还书管理关键代码:Private Sub Combo1_Click() Combo2.ListIndex = Combo1.ListIndexEnd SubPrivate Sub Combo2_Click() Combo1.ListIndex = Combo2.ListIndexEnd SubPrivate Sub Command1_Click() Dim rs_reader As New ADODB.
40、Recordset Dim conn As New ADODB.Connection Dim sql As String findform = False sql = select * from 借阅信息 where 读者姓名 = & Combo2.Text & conn.Open provider=Microsoft.Jet.OLEDB.4.0; data source= & App.Path & library.mdb rs_reader.CursorLocation = adUseClient rs_reader.Open sql, conn, adOpenKeyset, adLockP
41、essimistic Set DataGrid1.DataSource = rs_reader DataGrid1.AllowAddNew = False DataGrid1.AllowUpdate = False DataGrid1.AllowDelete = False End SubPrivate Sub Command3_Click() Dim book_number As String Dim reader_number As String Dim answer As String Dim rs_back As New ADODB.Recordset Dim conn As New
42、ADODB.Connection Dim sql As String conn.Open provider=Microsoft.Jet.OLEDB.4.0; data source= & App.Path & library.mdb book_number = DataGrid1.Columns(3).CellValue(DataGrid1.Bookmark) reader_number = DataGrid1.Columns(1).CellValue(DataGrid1.Bookmark) answer = MsgBox(确定要还这本书吗?, vbYesNo, ) If answer = vbYes Then sql = select * from 借阅信息 where 图书编号 = & book_number & 删除这本书在借阅信息中的记录 rs_back.CursorLocation = adUse