1.选择查询的设计与实现
在实际图书馆图书借阅过程中,经常需要对图书借阅情况进行查询,比如查看某本书是否已归还、某人是否未按期归还图书、某本书是否已到归还期或是某本书是否忘记归还等等。为了解决上述这些问题,需要设置一些相应的查询(以“选择查询”居多)。下面以“图书借阅超期查询”为例说明。
第一步:选择“在设计视图中创建查询”(如图10-11所示)。
图10-11 创建查询
第二步:分别添加“会员表”、“图书表”、“图书借阅表”和“图书类别表”(如图10-12所示)。
图10-12 为查询添加表
第三步:选择“图书表”中的“图书编号”、“书名”、“作者”、“图书类别”;“会员表”中的“会员证编号”、“会员姓名”、“会员级别”;“图书借阅表”中的“借阅日期”、“还书日期”字段,然后再设立两个新字段:“超期天数”和“应还日期”。这两个新字段是原表中没有的,它们是以原表的部分字段为数据基础,通过数学表达式计算得出的新数据所组成的(表达式的写入可以通过单击工具栏上的“生成器”按钮,打开“表达式生成器”对话框来完成,如图10-13所示)。最后在“还书日期”字段的“条件”约束栏中写入约束条件“Is Null”并在“超期天数”字段的“条件”约束栏中写入约束条件“>0”(此处正值为有效值,负值是无效值,因为负值说明还未超期,在该查询中无实用意义,故舍去)。这两个新字段的数学表达式:(1)超期天数:Date()-[借阅日期]-[限借天数];(2)应还日期:[借阅日期]+[限借天数]。(如图10-14所示)
图10-13 表达式生成器
图10-14 选择查询
第四步:保存查询(如图10-15所示)。
图10-15 保存查询
第五步:运行查询(如图10-16所示)。
图10-16 运行查询
其他选择查询的设计可参照“图书借阅超期查询”的设计来进行,如“借阅历史记录查询”、“今日借出查询”、“今日到期查询”、“今日还书查询”、“今日入库查询”、“借书查询”、“还书查询”、“续借查询”、“罚款查询”等。下面给出上述这几个选择查询的主要设计视图供参考。
(1)“借阅历史记录查询”主设计视图(如图10-17所示)。
图10-17 “借阅历史记录查询”主设计视图
(2)“今日借出查询”主设计视图:字段“借阅日期”须以“Date()”(当前日期)作为约束条件(如图10-18所示)。
图10-18 “今日借出查询”主设计视图
(3)“今日到期查询”主设计视图:须通过“表达式生成器”建立新字段“应还日期”且以“Date()”为约束条件,表达式为:应还日期: [借阅日期]+[限借天数](如图10-19所示)。
图10-19 “今日到期查询”主设计视图
(4)“今日还书查询”主设计视图:字段“还书日期”须以“Date()”作为约束条件(如图10-20所示)。
图10-20 “今日还书查询”主设计视图
(5)“今日入库查询”主设计视图:字段“入库时间”须以“Date()”作为约束条件(如图10-21所示)。
图10-21 “今日入库查询”主设计视图
(6)“借书查询”主设计视图:“借书查询”、“还书查询”、“续借查询”、“罚款查询”这4个选择查询要设计与相应窗体中控件的功能链接,如在图10-22和图10-23(此处将借书查询分为1和2两部分也是应借书窗体的功能要求而针对设计的)中看到的“图书编号”字段和“会员证编号”字段中的条件约束即为功能链接的一部分。例如“借书查询1”中的“图书编号”字段的条件“[Forms]![借书窗体]![Text13]”意为与“借书窗体”中的文本框“Text13”相链接,该条件其实起到了一个“指针”的作用(后面几个查询中的相似条件约束的功能与此相同,不再多作解释)。“借书查询1”中的字段“在库数量”的约束条件为“>0”,表示某本书只有在有库存的情况下才允许借出(如图10-22和图10-23所示)。
图10-22 “借书查询1”主设计视图
图10-23 “借书查询2”主设计视图
(7)“还书查询”主设计视图:“还书日期”字段的约束条件要设置为“Is Null”,表示未还的书才会被列出(如图10-24所示)。
图10-24 “还书查询”主设计视图
(8)“续借查询”主设计视图(如图10-25所示)。(www.xing528.com)
图10-25 “续借查询”主设计视图
(9)“罚款查询”主设计视图:须设立两个新字段——“超期天数”和“罚款数额”且“超期天数”字段的约束条件为“>0”,另外“罚款缴纳”字段的约束条件为“否”,表示已欠费且未缴纳过罚款的会员才会被列出,未欠费或已缴纳过的会员不会再被列出。下面给出这两个新字段的数学表达式:①超期天数: [还书日期]-[借阅日期]-[限借天数];②罚款数额:([还书日期]-[借阅日期]-[限借天数])*[超期罚款/天](如图10-26所示)。
图10-26 “罚款查询”主设计视图
2.操作查询的设计与实现
在“图书借阅管理系统”中,图书的借阅功能是该系统的核心功能,如何实现该功能便是设计该系统的核心问题。我们知道,图书在借出、归还、续借等过程发生后,数据表中的数据就应发生相应的改变(即更新),那么在系统中如何实现数据的自动更新或添加呢?答案是利用“操作查询”。下面以“借书更新”和“借书追加”为例说明。
第一步:在设计视图中创建查询,并添加“会员表”、“图书表”和“图书借阅表”。
第二步:将“图书表”中的“图书编号”、“借出次数”、“借出数量”、“在库数量”字段;“会员表”中的“会员证编号”字段;“图书借阅表”中的“还书日期”字段添加进来。同时将查询类型设置为“更新查询”(设置方法:在选中查询窗口的情况下在“查询设计菜单栏”中单击“查询类型” 进行更改,或者在查询窗口中的表添加栏中的空白处单击鼠标右键,在弹出的菜单中选择查询类型)(如图10-27、图10-28所示)。
图10-27 设置“更新查询”
图10-28 快捷菜单设置 “更新查询”
第三步:对各个字段的更新条件进行设置(如图10-29所示)。
图10-29 设置字段的更新条件
“借出次数”、“借出数量”、“在库数量”三个字段的“更新到”一栏中的条件表示当借书操作使得某本图书被借出时,相应数据表中的原数据应该根据这一条件更新为新数据。约束条件“<[图书表]![库存总数]”表示若借出数量大于等于库存总数则数据无法更新,因为图书已无库存,无法借出;约束条件“>0”表示只有当该书有库存的情况下才能借出;而字段“图书编号”和“会员证编号”的约束条件“[Forms]![借书窗体]![Text13]”和“[Forms]![借书窗体]![Text14]”与前面在选择查询中提到的条件一样,是查询与相应窗体中控件的功能链接条件。
第四步:保存该“更新查询”(如图10-30所示)。
图10-30 保存 “更新查询”
第五步:再在设计视图中创建查询,并添加“会员表”、“图书表”和“图书借阅表”。
第六步:将查询类型更改为“追加查询”并将所需的字段添加进来。
第七步:对所需追加记录的字段进行追加条件限制(如图10-31所示)。追加查询与更新查询不太一样,它的工作原理是将“字段”中的表达式数值“追加”到相应的数据表字段中。如:对表达式3的操作即是将“Date()”(当前日期)这一新数据追加到图书借阅表的借阅日期这一字段的数据中。至于表达式1和表达式2则是功能链接条件。
图10-31 追加记录的字段的追加条件限制
第八步:保存该“追加查询”(如图10-32所示)。其他需用到操作查询的查询设计可参照“借书更新”和“借书追加”的设计来进行,如“还书更新”、“罚款更新”、“续借更新”、“续借追加”等。下面给出上述这几个操作查询的主要设计视图供参考:
图10-32 保存“追加查询”
(1)“还书更新”主设计视图(如图10-33所示)。
图10-33 “还书更新”主设计视图
(2)“罚款更新”主设计视图(如图10-34所示)。
图10-34 “罚款更新”主设计视图
(3)“续借更新”主设计视图(如图10-35和图10-36所示)。
图10-35 “续借更新1”主设计视图
图10-36 “续借更新2”主设计视图
此处将续借功能的实现变通为以先还再借的方式来实现,故将“续借更新”分为两块:①先还:“续接更新1”;②再借:“续借更新2”。
(4)“续借追加”主设计视图(如图10-37所示)。
图10-37 “续借追加”主设计视图
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。