Access管理系统应用实例.docx
《Access管理系统应用实例.docx》由会员分享,可在线阅读,更多相关《Access管理系统应用实例.docx(74页珍藏版)》请在冰豆网上搜索。
Access管理系统应用实例
Access数据库应用实例——图书借阅管理系统
祝大家学习开心
本“图书借阅管理系统”是以实现图书馆借阅工作系统化为目的和背景而设计开发的一个简单系统。
图书借阅管理系统主要实现对图书馆工作的信息化管理。
本系统实现了对图书的基本信息和会员(图书借阅者)的基本信息的登记、保存、统计和查询等功能,另外还对会员的借阅信息进行了登记、保存、统计并能查询,同时实现了对图书的数据化管理。
很大程度上实现了图书馆图书借阅工作的信息化管理。
一、系统总体分析与设计
根据图书馆借阅场景中为方便图书管理人员工作的需求,“图书借阅管理系统”可以分为对图书的管理、对会员的管理、对借阅过程的管理和对系统的维护等几方面。
(1)图书管理:
主要包括对图书基本信息、图书存放位置、图书进出库情况等数据的记录、统计和查询,以方便图书管理人员的工作。
(2)会员管理:
主要包括新增会员、会员资料查询和会员的借书、续借、还书和超期情况的查询等。
(3)借阅过程管理:
主要包括对图书每日借阅情况的记录、统计和查询,根据不同等级会员借书册数的限制和不同图书限借天数的限制等对图书借阅进行管理。
(4)系统维护:
主要包括系统数据维护(如:
会员信息数据和图书信息数据)和系统数据备份及还原。
以实现上述需求为目标,经过全面分析,我们可以初步将整个系统划分为“数据管理”、“借阅管理”、“数据查询”、“每日统计”和“系统维护”五个子模块,通过分别实现各个子模块的功能来实现整个系统的整体功能。
各模块功能如下:
(1)数据管理:
包括对图书和会员基本信息数据的管理,这两块又可细分基本信息管理和等级限制设置。
本模块主要实现记录浏览、记录增加、记录修改、记录删除和记录打印等功能。
(2)借阅管理:
本模块是整个系统的最核心部分,图书借阅管理系统的核心功能基本全部在该模块体现——“借书”、“续借”、“还书”、“罚款缴纳”。
该模块对会员借阅图书的全过程进行管理。
(3)数据查询:
包括图书查询、会员查询、借阅超期查询、借阅记录查询。
通过该模块能够实现对图书信息、会员信息、超过借阅期限而未归还的图书、每本图书及每个读者的历史借阅情况等的查询。
(4)每日统计:
包括统计当天借出的图书、续借的图书、归还的图书、到期该归还的图书和新入库的图书等。
(5)系统维护:
包括对系统数据库中全部数据信息的维护和系统数据的备份及还原。
将上述模块设计图示化后我们便可以得到如图1所示的系统功能模块图:
图1系统功能模块图
二、数据库分析与设计
1.数据库数据结构分析
通过对图书借阅管理的内容和数据分析,创建该管理系统数据库,名为“图书借阅管理系统.mdb”,主要包含的数据表有“会员表”、“会员级别表”、“图书表”、“图书类别表”、“图书借阅表”共五个表。
这五个表之间存在着一定的关联关系,各表间的关系如图2所示:
图2系统中各表间关系图
2.数据库逻辑结构设计
“图书借阅管理系统”的各个数据库表结构设计如表1~表5所示:
表1“会员表”表结构
字段名
数据类型
字段大小
格式
主键
必填字段
会员证编号
文本
12
是
是
会员级别
文本
8
是
会员姓名
文本
8
是
会员性别
文本
2
是
身份证号
文本
18
是
单位名称
文本
50
否
单位地址
文本
50
否
联系电话
文本
15
否
办证日期
日期/时间
短日期
是
有效日期
日期/时间
短日期
否
照片
OLE对象
否
备注
备注
否
表2“会员级别表”表结构
字段名
数据类型
字段大小
格式
主键
必填字段
会员级别
文本
8
是
是
限借册数
数字
整型
是
表3“图书表”表结构
字段名
数据类型
字段大小
格式
主键
必填字段
图书编号
文本
7
是
是
图书分类号
文本
30
是
图书类别
文本
30
是
书名
文本
50
是
作者
文本
50
是
出版社
文本
30
是
出版日期
日期/时间
短日期
是
价格
数字
双精度型
货币
是
存放位置
文本
50
是
入库时间
日期/时间
短日期
是
库存总数
数字
整型
是
在库数量
数字
整型
是
借出数量
数字
整型
是
新书入库
数字
整型
否
旧书出库
数字
整型
否
借出次数
数字
整型
是
备注
备注
否
表4“图书类别表”表结构
字段名
数据类型
字段大小
格式
主键
必填字段
图书类别
文本
30
是
是
限借天数
数字
整型
是
超期罚款/天
数字
双精度型
货币
是
表5“图书借阅表”表结构
字段名
数据类型
字段大小
格式
主键
必填字段
默认值
借阅编号
自动编号
长整型
是
图书编号
文本
7
是
会员证编号
文本
12
是
借阅日期
日期/时间
短日期
是
还书日期
日期/时间
短日期
否
罚款已缴
文本
2
是
“否”
备注
备注
否
3.创建数据库和表
在数据库数据结构分析和数据库逻辑结构设计完成之后,接下来便可以用Access来创建数据库。
一般步骤是首先创建数据库,再创建数据表,最后建立表间关系。
(1)创建数据库的操作步骤:
首先启动MicrosoftAccess2003,通过“文件”菜单中的“新建”命令,创建一个名为“图书借阅管理系统.mdb”的数据库,如图3所示:
图3“新建数据库”文件对话框
(2)创建表:
在数据库“图书借阅管理系统.mdb”中通过“使用设计器创建表”如图4所示,分别创建“会员表”、“会员级别表”、“图书表”、“图书类别表”和“图书借阅表”,各表结构如表1~表5所示。
其中“图书表”表的设计视图如图5所示:
图4新建“表”对象
用同样的方法在表设计视图中可以分别创建“会员表”、“会员级别表”、“图书类别表”和“图书借阅表”。
(3)建立表间关系:
单击“工具”菜单的“关系”按钮
,从打开的关系窗口中建立表间的关系,得到如图2所示的关系图。
至此,已完成了数据库结构的分析设计和表结构的创建。
在各个表中输入相关记录,如图6~图10所示:
图5“图书表”结构
图6会员表信息
图7会员级别表信息图8图书类别表信息
图9图书表信息
图10图书借阅表信息
三、查询的设计与实现
在本图书借阅管理系统中,要用到大量的查询功能。
Access2003提供了5种查询:
选择查询、参数查询、交叉表查询、操作查询和SOL查询。
其中操作查询又包括生成表查询、更新查询、追加查询和删除查询4种查询。
(1)生成表查询
:
这种查询可以根据一个或多个表中的全部或部分数据新建表。
生成表查询有助于创建表以导出到其他MicrosoftAccess数据库或包含所有旧记录的历史表。
(2)更新查询
:
这种查询可以对一个或多个表中的一个或一组记录作全局更改。
使用更新查询可以更改已有表中的数据。
(3)追加查询
:
追加查询将一个或多个表中的一组记录添加到一个或多个表的末尾。
(4)删除查询
:
这种查询可以从一个或多个表中删除一组记录。
(使用删除查询,通常会删除整个记录,而不只是记录中的部分字段。
)
该图书借阅管理系统中主要用到了选择查询、操作查询的更新查询和追加查询,下边我们以实例主要说明一下这几种查询在本系统中的实现方法与过程。
1.选择查询的设计与实现
分析:
在实际图书馆图书借阅过程中,会员(借阅者)或者图书馆管理员经常需要对图书借阅情况进行查询,比如查看某本书是否已归还、某人是否未按期归还图书、某本书是否已到归还期或是某本书是否忘记归还了等等。
为了解决上述这些问题,我们就需要设置一些相应的查询(一般都是以“选择查询”为居多)。
这些查询能有效地帮我们解决这些问题。
步骤:
(以“图书借阅超期查询”为例)
第一步:
选择“在设计视图中创建查询”。
(见图11)
图11
第二步:
分别添加“会员表”、“图书表”、“图书借阅表”和“图书类别表”。
(见图12)
见图12
第三步:
选择“图书表”中的“图书编号”、“书名”、“作者”、“图书类别”;“会员表”中的“会员证编号”、“会员姓名”、“会员级别”;“图书借阅表”中的“借阅日期”、“还书日期”字段,然后再设立2个新字段——“超期天数”和“应还日期”。
这两个新字段是原表中没有的,它们是以原表的部分字段为数据基础,通过数学表达式计算得出的新数据所组成的。
(表达式的写入可以通过单击工具栏上的“生成器”按钮
,打开“表达式生成器”对话框来完成——如图13)最后在“还书日期”字段的“条件”约束栏中写入约束条件“ISNULL”并在“超期天数”字段的“条件”约束栏中写入约束条件“>0”(此处正值为有效值,负值是无效值,因为负值说明还未超期,在该查询中无实用意义,故舍去)。
(见图14)
下边给出这两个新字段的数学表达式:
(1)超期天数:
Date()-[借阅日期]-[限借天数];
(2)应还日期:
[借阅日期]+[限借天数]。
图13
图14
第四步:
保存查询。
(见图15)
图15
第五步:
运行该查询。
(见图16)
图16
其他选择查询的设计可参照“图书借阅超期查询”的设计来进行,如“借阅历史记录查询”、“今日借出查询”、“今日到期查询”、“今日还书查询”、“今日入库查询”、“借书查询”、“还书查询”、“续借查询”、“罚款查询”等。
下边给出上述这几个选择查询的主要设计视图供大家参考:
⑴.“借阅历史记录查询”主设计视图:
(见图17)
图17
⑵.“今日借出查询”主设计视图:
字段“借阅日期”须以“Date()”(当前日期)作为约束条件。
(见图18)
图18
⑶.“今日到期查询”主设计视图:
须通过“表达式生成器”建立新字段“应还日期”且以“Date()”为约束条件,表达式为:
应还日期:
[借阅日期]+[限借天数]。
(见图19)
图19
⑷.“今日还书查询”主设计视图:
字段“还书日期”须以“Date()”作为约束条件。
(见图20)
图20
⑸.“今日入库查询”主设计视图:
字段“入库时间”须以“Date()”作为约束条件。
(见图21)
图21
⑹.“借书查询”主设计视图:
由于“借书查询”、“还书查询”、“续借查询”、“罚款查询”这4个选择查询是专门为“借书窗体”、“还书窗体”、“续借窗体”、“罚款窗体”的功能实现而量身打造的专用查询,故其设计上有别与上述几个一般选择查询。
区别主要体现在在这些查询中要设计与相应窗体中控件的功能链接,如大家现在在图22——“借书查询1”和图23——“借书查询2”(此处将借书查询分为1和2两部分也是应借书窗体的功能要求而针对设计的)中看到的“图书编号”字段和“会员证编号”字段中的条件约束即为功能链接的一部分。
例如“借书查询1”中的“图书编号”字段的条件“[Forms]!
[借书窗体]!
[Text13]”意为与“借书窗体”中的文本框“Text13”相链接,该条件其实起到了一个“指针”的作用(后边几个查询中的相似条件约束的功能与此相同,不再多作解释)。
“借书查询1”中的字段“在库数量”的约束条件为“>0”,表示某本书只有在有库存的情况下才允许借出。
(见图22~图23)
图22
图23
⑺.“还书查询”主设计视图:
“还书日期”字段的约束条件要设置为“IsNull”,表示未还的书才会被列出。
(见图24)
图24
⑻.“续借查询”主设计视图:
(见图25)
图25
⑼.“罚款查询”主设计视图:
须设立2个新字段——“超期天数”和“罚款数额”且“超期天数”字段的约束条件为“>0”,另外“罚款缴纳”字段的约束条件为“否”,表示已欠费且未缴纳过罚款的会员才会被列出,未欠费或已缴纳过的会员不会再被列出。
下边给出这两个新字段的数学表达式:
(1)超期天数:
[还书日期]-[借阅日期]-[限借天数];
(2)罚款数额:
([还书日期]-[借阅日期]-[限借天数])*[超期罚款/天]。
(见图26)
图26
2.操作查询的设计与实现
分析:
在“图书借阅管理系统”中,图书的借阅功能是该系统的核心功能,如何实现该功能便是设计该系统的核心问题。
我们知道,图书在借出、归还、续借等过程发生后,数据表中的数据就应发生相应的改变(即更新),那么在系统中如何实现数据的自动更新或添加呢?
答案是利用“操作查询”。
步骤:
(以“借书更新”和“借书追加”为例)
第一步:
在设计视图中创建查询,并添加“会员表”、“图书表”和“图书借阅表”。
第二步:
将“图书表”中的“图书编号”、“借出次数”、“借出数量”、“在库数量”字段;“会员表”中的“会员证编号”字段;“图书借阅表”中的“还书日期”字段添加进来。
并将查询类型设置为“更新查询”(设置方法:
在选中查询窗口的情况下在“查询设计菜单栏”中单击“查询类型”
进行更改,或者在查询窗口中的表添加栏中的空白处单击鼠标右键,在弹出的菜单中选择查询类型)。
(见图27~图28)
图27
图28
第三步:
对各个字段的更新条件进行设置。
(如图29)
图中“借出次数”、“借出数量”、“在库数量”三个字段的“更新到”一栏中的条件表示当借书操作使得某本图书被借出时,相应数据表中的原数据应该根据这一条件更新为新数据。
约束条件“<[图书表]!
[库存总数]”表示若借出数量大于等于库存总数则数据无法更新,因为图书已无库存,无法借出;约束条件“>0”表示只有当该书有库存的情况下才能借出;而字段“图书编号”和“会员证编号”的约束条件“[Forms]!
[借书窗体]!
[Text13]”和“[Forms]!
[借书窗体]!
[Text14]”与前边在选择查询中提到的条件一样,是查询与相应窗体中控件的功能链接条件。
图29
第四步:
保存该“更新查询”。
(如图30)
图30
第五步:
再在设计视图中创建查询,并添加“会员表”、“图书表”和“图书借阅表”。
第六步:
将查询类型更改为“追加查询”并将所需的字段添加进来。
第七步:
对所需追加记录的字段进行追加条件限制。
(如图31)
追加查询与更新查询不太一样,它的工作原理是将“字段”中的表达式数值“追加”到相应的数据表字段中。
如:
对表达式3的操作即是将“Date()”(当前日期)这一新数据追加到图书借阅表的借阅日期这一字段的数据中。
至于表达式1和表达式2则是功能链接条件。
图31
第八步:
保存该“追加查询”。
(如图32)
图32
其他需用到操作查询的查询设计可参照“借书更新”和“借书追加”的设计来进行,如“还书更新”、“罚款更新”、“续借更新”、“续借追加”等。
下边给出上述这几个操作查询的主要设计视图供大家参考:
⑴.“还书更新”主设计视图:
(见图33)
图33
⑵.“罚款更新”主设计视图:
(见图34)
图34
⑶.“续借更新”主设计视图:
(见图35~图36)
此处将续借功能的实现变通为以先还再借的方式来实现,故将“续借更新”分为两块:
①先还——“续接更新1”;②再借——“续借更新2”。
图35
图36
⑷.“续借追加”主设计视图:
(见图37)
图37
四、窗体的设计与实现
窗体是Access2003数据库系统的一个重要对象。
前面介绍的浏览记录、显示查询结果等都是在“数据表”视图中所进行的操作,只能用于对表的一般维护。
如果要改变表记录的显示界面,则需要通过界面窗口来添加、修改、删除记录或改变应用程序控制流程,这就需要数据库的一个重要组件——窗体。
窗体是用户与数据之间的主要窗口,使用窗体可以对数据库进行查询、修改、添加和打印等操作,而且可以灵活的设计窗体的布局。
窗体按其功能可以分为数据窗体、流程控制面板窗体和交互窗体。
(1)数据窗体:
主要用来显示、浏览、添加、修改、删除表或查询中的记录。
(如图38)
图38
(2)流程控制面板窗体:
主要用来控制应用程序的运行流程。
(如图39)
图39
(3)交互窗体:
是在不同的状态下,给出系统提示信息或要求用户输入的窗口。
(如图40)
图40
在Access2003数据库中,窗体有设计视图、窗体视图、数据表视图、数据透视表视图和数据透视图视图5种视图,它们之间可以通过工具栏“视图”按钮进行切换。
(见下图)
我们将主要介绍使用设计视图创建窗体的方法。
使用窗体的设计视图来创建、修改和美化窗体,窗体的设计视图一般由窗体页眉/页脚、页面页眉/页脚和主体5部分组成。
一般情况下,窗体的页眉/页脚很少用到,而主体是窗体的核心,通过在主体中添加控件可以实现对数据的管理功能。
1.使用窗体向导创建窗体
使用“窗体向导”可以创建使用“自动创建窗体”(“自动创建窗体”所创建的窗体较粗糙,一般在用户对窗体效果要求不高时使用)所创建的5种类型的窗体,不同之处在于窗体中的数据可以来源于一个或多个表与查询。
在使用“窗体向导”创建窗体时,可以重新设置字段的排列顺序。
下面我们以创建“会员基本信息管理窗体”为例说明一下利用“窗体向导”来创建窗体的过程。
第一步:
双击“使用向导创建窗体”,打开窗体向导设计界面。
(见图41)
图41
第二步:
在“表/查询”栏中选择“表:
会员表”项,并将其中要用到的字段全部添加到“选定的字段”中。
(见图42)
图42
第三步:
选择窗体布局。
Access中有“纵栏表”、“表格”、“数据表”、“两端对齐”、“数据透视表”和“数据透视图”6种可供选择的布局类型,在这里我们以“两端对齐”为例。
(见图43)
图43
第四步:
选择窗体样式。
Access中有“国际”、“宣纸”、“工业”、“标准”、“水墨画”和“砂岩”、“混合”、“石头”、“蓝图”和“远征”10种默认的可供选择的布局类型,在这里我们以“标准”为例。
(图44)
图44
第五步:
确定窗体的标题。
这一步除了指定窗体标题外,我们还可以选择在向导设置完成后我们是要“打开窗体查看或输入信息”还是“修改窗体设计”。
由于一般情况下通过向导创建的窗体不可能尽善尽美,有很多地方需要做适当的添加和修改,所以我们通常都选择“修改窗体设计”项并完成创建。
(见图45)
图45
第六步:
在“会员基本信息管理窗体”的设计视图中对窗体的大小、各个字段的位置和顺序进行调整,并添加“标签”——“会员基本信息”和8个命令按钮——“转至上一条记录”、“转至最后一条记录”、“添加记录”、“保存记录”等。
(见图46)
图46
说到控件,Access的窗体设计很大程度表现在窗体控件的使用上。
控件是窗体中用于显示数据、执行操作命令或修饰窗体的一种对象。
在窗体设计视图窗口中,单击工具栏上的“工具箱”按钮
,屏幕出现控件“工具箱”工具栏。
工具箱中包括各种控件按钮,如标签、文本框、选项组、复选框、列表框、组合框、绑定对象框、未绑定对象框、选项按钮、命令按钮、切换按钮、分页符、选项卡控件、子窗体/子报表、矩形、直线、图像等。
下面以“转至下一条记录”命令按钮的添加为例来简单说明一下窗体控件的使用。
(1)单击“工具箱”中的“命令按钮”,然后将鼠标移至窗体设计视图界面中要添加该命令按钮的地方单击鼠标左键进行命令按钮的添加。
(如图47)
图47
(2)在弹出的“命令按钮向导”窗口中选择该按钮所要执行的命令或其该具备的功能。
(如图48)
图48
(3)选择按钮的显示类型。
Access支持两种显示方式:
“文本”型和“图片”型。
我们以“图片”型为例进行说明。
(如图49)
图49
(4)为命令按钮命名。
(如图50)
图50
第七步:
窗体最终效果预览与功能验证。
(如图51)
图51
可用同样方法创建“会员级别设置窗体”、“图书基本信息管理窗体”、“图书类别设置窗体”等窗体。
下边列出上述几个窗体的主要设计视图:
⑴.“会员级别设置窗体”设计视图:
(如图52)
图52
⑵.“图书基本信息管理窗体”设计视图:
(如图53)
图53
⑶.“图书类别设置窗体”设计视图:
(如图54)
图54
2.使用窗体设计视图创建窗体
利用设计视图创建窗体随意性很大,你可以完全按照自己的想法或用户具体的需求有针对性的进行窗体设计。
下面我们以“还书窗体”为例来对运用设计视图创建窗体的过程步骤进行说明。
第一步:
双击“在设计视图中创建窗体”,打开窗体视图设计界面。
(见图55)
图55
第二步:
调整窗体“主体”大小到所需的值。
(见图56)
图56
第三步:
添加所需的窗体控件。
(见图57~图58)
①标签——“还书”标签(Label0);
②文本框——“会员证编号”文本框(Text11)和“图书编号”文本框(Text12);
③命令按钮——“确定”按钮(Command11)和“还书”按钮(Command12);
④子窗体——“还书子窗体”窗体(Child15)。
图57
图58
其中“还书子窗体”窗体只是对“还书查询”查询(已在前边查询的设计与实现部分介绍过)的窗体化,即“还书子窗体”的记录源是“还书查询”。
“还书子窗体”的主要设计视图如图59。
图59
第四步:
设置各控件的数据连接或事件过程。
(见图60~图65)
①“子窗体”控件的数据源对象为“还书子窗体”。
(见图60)
图60
②“还书子窗体”的数据记录源为“还书查询”。
(见图61)
图61
③“确定”命令按钮的“单击”事件过程为一组代码(见图62~图63),其功能为调用“还书”查询中与窗体控件“会员证编号”文本框和“图书编号”文本框中所输入号码相符的号码所具有的相关数据信息。
“确定”命令按钮(Command11)代码:
PrivateSubCommand11_Click()
Me.还书子窗体.Requery
EndSub
图62
图63
④“还书”命令按钮的“单击”事件过程是调用宏“还书更新宏”。
“还书更新宏”通过执行“还书更新”查询来实现图书还书功能。
(见图64~图65)
图64
图65
第五步:
保存“还书窗体”。
(见图66)
图66
第六步:
窗体最终效果预览与功能验证。
(见图67)
图67
其他类似窗体有“借书窗体”、“续借窗体”、“罚款窗体”、“图书查询窗体”、“会员查询窗体”、“借阅超期查询窗体”、“借阅记录查询窗体”等,其窗体设计可以参照上述“还书窗体”的例子进行创建。
下边给出了这几个窗体的主要设计视图供大家参考:
⑴.“借书窗体”主要设计视图:
(如图68~图71)
图68“借书窗体”设计视图
图69“借书子窗体1”设计视图
图70“借书子窗体2”设计视图
其中两个“确定”命令按钮的代码为:
PrivateSubCommand13_Click()
Me.借书子窗体1.Requery
End