版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
2025年全国计算机二级Access数据库设计综合项目试题考试时间:______分钟总分:______分姓名:______一、根据以下需求分析,完成概念结构设计。某高校图书馆需要管理图书信息、读者信息以及图书借阅信息。图书信息包括图书编号(唯一)、书名、作者、出版社、出版年份、ISBN号、价格和库存数量。读者信息包括读者编号(唯一)、姓名、性别、联系方式、邮箱和读者类型(如学生、教师)。图书借阅信息包括借阅流水号(唯一)、图书编号、读者编号、借阅日期和应还日期。一个读者可以借阅多本图书,一本图书可以被多个读者借阅。图书有类型,一个类型可以包含多本图书。二、根据上题的E-R图(概念结构设计),将其转换为关系模式(逻辑结构设计),至少转换为3个关系模式,并指出每个关系模式的主键和外键。三、假设已经使用Access创建了名为“图书馆”的数据库,其中包含根据上题关系模式设计的“图书”、“读者”、“借阅”和“图书类型”四个表。请使用SQL语句完成以下查询:1.查询所有库存数量少于5本的图书的书名和作者。2.查询2023年1月1日之后办理借书证的读者姓名和联系方式。3.查询每本书的总借阅次数。四、在Access数据库“图书馆”中,假设存在一个名为“查询1”的查询,该查询基于“图书”和“借阅”表,用于查找当前借出状态(即借阅日期在当前日期与应还日期之间)的图书信息,包括图书编号、书名和应还日期。请使用VBA代码实现以下功能:在窗体“主窗体”的命令按钮“btnShowBorrowed”的点击事件中,运行“查询1”,并将查询结果以只读形式显示在窗体“借阅信息展示”上。要求:使用DoCmd对象完成,代码中需包含必要的错误处理。五、在Access数据库“图书馆”中,创建一个名为“图书信息录入”的窗体,用于录入新图书信息。该窗体包含以下控件:文本框txtBookID(输入图书编号,不可编辑)、文本框txtTitle(输入书名)、文本框txtAuthor(输入作者)、组合框cboPublisher(选择出版社,数据源为“出版社”表)、文本框txtYear(输入出版年份)、文本框txtISBN(输入ISBN号)、文本框txtPrice(输入价格)、文本框txtStock(输入库存数量)。要求:1.使用VBA代码为组合框cboPublisher设置数据源为“出版社”表中的出版社名称字段。2.在窗体加载时,检查txtYear文本框中的值是否为4位数字,如果不是,则提示错误并清空该文本框。3.在窗体“关闭”事件中,检查txtTitle、txtAuthor、txtISBN是否为空,如果任一为空,则提示错误,阻止窗体关闭,并让光标定位到第一个为空的控件。六、设计一个简单的报表“图书借阅明细报表”,用于展示“借阅”表中的所有记录,包括借阅流水号、图书编号、读者编号、借阅日期和应还日期。要求:报表中包含一个计算字段“已借阅天数”,其值为当前日期减去借阅日期的结果。请简述创建此报表的主要步骤和关键设置。试卷答案一、绘制E-R图,包含以下元素:*实体:图书(属性:图书编号[主键],书名,作者,出版社,出版年份,ISBN号,价格,库存数量)、读者(属性:读者编号[主键],姓名,性别,联系方式,邮箱,读者类型)、图书类型(属性:图书类型编号[主键],类型名称)、借阅(属性:借阅流水号[主键],图书编号[外键],读者编号[外键],借阅日期,应还日期)。*关系:图书与图书类型:一对多(一个类型包含多本图书,图书关联类型编号[外键])。*关系:读者与借阅:一对多(一个读者可以借阅多本图书,借阅关联读者编号[外键])。*关系:图书与借阅:一对多(一本图书可以被多个读者借阅,借阅关联图书编号[外键])。二、关系模式:1.图书(图书编号,书名,作者,出版社,出版年份,ISBN号,价格,库存数量,图书类型编号)主键:图书编号外键:图书类型编号(参照图书类型(图书类型编号))2.读者(读者编号,姓名,性别,联系方式,邮箱,读者类型)主键:读者编号3.图书类型(图书类型编号,类型名称)主键:图书类型编号4.借阅(借阅流水号,图书编号,读者编号,借阅日期,应还日期)主键:借阅流水号外键:图书编号(参照图书(图书编号))外键:读者编号(参照读者(读者编号))三、1.`SELECT书名,作者FROM图书WHERE库存数量<5;`2.`SELECT姓名,联系方式FROM读者WHERE借书证日期>#2023-01-01#;`3.`SELECT图书编号,书名,(SELECTCOUNT(*)FROM借阅ASbWHEREb.图书编号=a.图书编号)AS借阅次数FROM图书ASa;`四、```vbaPrivateSubbtnShowBorrowed_Click()OnErrorGoToErrHandlerDoCmd.OpenQuery"查询1"'或者使用DoCmd.RunSQL"SELECT*FROM查询1"DoCmd.OpenForm"借阅信息展示",acNormalExitSubErrHandler:MsgBox"执行过程中发生错误:"&Err.Description,vbCriticalEndSub```解析思路:1.明确事件触发者和需要执行的操作:按钮点击事件触发,运行名为“查询1”的查询,并将结果显示在“借阅信息展示”窗体上。2.选择合适的DoCmd方法:`DoCmd.OpenQuery`用于运行查询并直接显示结果(如果查询设计为弹出数据表),或`DoCmd.RunSQL`用于执行SQL语句。这里假设“查询1”设计为在数据表中显示结果,使用`DoCmd.OpenQuery`。若设计为返回集合,则可能需要其他方式。3.查询结果显示方式:`DoCmd.OpenForm`用于在窗体“借阅信息展示”中显示数据。4.错误处理:使用`OnErrorGoToErrHandler`语句捕获运行过程中可能发生的错误,并使用`MsgBox`显示错误信息。五、```vbaPrivateSubForm_Load()Me.txtYear=CStr(Me.txtYear)IfNotIsNumeric(Me.txtYear)OrLen(Me.txtYear)<>4ThenMsgBox"出版年份必须是4位数字",vbExclamationMe.txtYear=""Me.txtYear.SetFocusEndIfEndSubPrivateSubForm_BeforeUpdate()DimbEmptyAsBooleanbEmpty=FalseIfIsNull(Me.txtTitle)OrLen(Trim(Me.txtTitle))=0ThenbEmpty=TrueIfIsNull(Me.txtAuthor)OrLen(Trim(Me.txtAuthor))=0ThenbEmpty=TrueIfIsNull(Me.txtISBN)OrLen(Trim(Me.txtISBN))=0ThenbEmpty=TrueIfbEmptyThenMsgBox"书名、作者、ISBN号不能为空",vbExclamationCancel=True'阻止更新IfNotIsNull(Me.txtTitle)AndLen(Trim(Me.txtTitle))=0ThenMe.txtTitle.SetFocusIfNotIsNull(Me.txtAuthor)AndLen(Trim(Me.txtAuthor))=0ThenMe.txtAuthor.SetFocusIfNotIsNull(Me.txtISBN)AndLen(Trim(Me.txtISBN))=0ThenMe.txtISBN.SetFocusEndIfEndSubPrivateSubForm_Close()IfIsNull(Me.txtTitle)OrLen(Trim(Me.txtTitle))=0ThenMsgBox"书名不能为空",vbExclamationMe.txtTitle.SetFocusCancel=True'阻止关闭ElseIfIsNull(Me.txtAuthor)OrLen(Trim(Me.txtAuthor))=0ThenMsgBox"作者不能为空",vbExclamationMe.txtAuthor.SetFocusCancel=TrueElseIfIsNull(Me.txtISBN)OrLen(Trim(Me.txtISBN))=0ThenMsgBox"ISBN号不能为空",vbExclamationMe.txtISBN.SetFocusCancel=TrueEndIfEndSubPrivateSubcboPublisherAfterUpdate()'确保加载了数据源IfNotIsNull(Me.Recordset)ThenMe.Recordset.FindFirst"出版社名称='"&Me.Value&"'"IfMe.Recordset.NoMatchThenMsgBox"选择的出版社不存在,请重新选择",vbExclamationMe.Requery'重新加载下拉列表'如果需要,可以设置Cancel=True阻止保存或关闭,并聚焦到cboPublisher'Cancel=True'Me.cboPublisher.SetFocusEndIfEndIfEndSub```解析思路:1.Form_Load:检查出版年份(txtYear)是否为4位数字。使用`IsNumeric`判断是否为数字,`Len`判断长度是否为4。如果不是,提示错误,清空并聚焦。2.Form_BeforeUpdate:在窗体即将更新(保存)时检查书名、作者、ISBN是否为空。使用`IsNull`和`Trim`判断。任一为空,提示错误,阻止更新,并聚焦到第一个空的控件。3.Form_Close:在窗体关闭时检查书名、作者、ISBN是否为空。逻辑与`Form_BeforeUpdate`类似,但聚焦到第一个为空的控件即可,无需阻止整个更新,只需阻止关闭。4.cboPublisherAfterUpdate:当用户从组合框中选择一个值后触发。检查该值是否确实存在于数据源(出版社表)中。使用`Recordset.FindFirst`查找。如果未找到,提示错误,重新加载(Requery)组合框数据,并可选择阻止保存/关闭或聚焦回组合框。六、1.打开报表设计视图。2.将“借阅”表添加到报表数据源中。3.将“借
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 上海村官诊断测试及答案
- 社区法律七进工作制度
- 粮食部门工会工作制度
- 甘孜藏族自治州道孚县2025-2026学年第二学期六年级语文第五单元测试卷部编版含答案
- 乌兰察布盟集宁市2025-2026学年第二学期四年级语文第五单元测试卷(部编版含答案)
- 双鸭山市宝清县2025-2026学年第二学期六年级语文第五单元测试卷部编版含答案
- 潍坊市潍城区2025-2026学年第二学期六年级语文第五单元测试卷部编版含答案
- 南平市建阳市2025-2026学年第二学期六年级语文第五单元测试卷部编版含答案
- 大理白族自治州大理市2025-2026学年第二学期六年级语文第五单元测试卷部编版含答案
- 吉安市吉安市2025-2026学年第二学期三年级语文第四单元测试卷部编版含答案
- 黑龙江哈尔滨德强学校2025-2026学年度六年级(五四制)下学期阶段学情调研语文试题(含答案)
- 2026年温州市瓯海区专职社区工作者公开招聘6人笔试参考试题及答案解析
- 医养结合模式下的老年护理策略
- 2026年社会工作者初级真题及答案
- 酒店建设工作方案
- 2026浙江省公安厅警务辅助人员招聘137人备考题库及答案详解(真题汇编)
- (一模)2026年河南省五市高三第一次联考语文试卷(含答案详解)
- 2026年山西经贸职业学院单招职业适应性测试题库及答案详解(历年真题)
- 2026年商丘学院单招综合素质考试题库及答案详解(历年真题)
- GB/T 15242.1-1994液压缸活塞和活塞杆动密封装置用同轴密封件尺寸系列和公差
- 友谊是什么(中文)
评论
0/150
提交评论