access实验报告五.docx
《access实验报告五.docx》由会员分享,可在线阅读,更多相关《access实验报告五.docx(13页珍藏版)》请在冰点文库上搜索。
access实验报告五
access实验报告(五)
access实验报告(五)
实验项目五
实验项目名称:
宏、模块的创建与操作教师评分:
一、实验目的和要求:
1、熟悉和掌握在宏设计器中设计简单宏。
2、熟悉和掌握在宏设计器中设计宏组。
3、熟悉和掌握在宏设计器中设计条件宏。
4、熟悉和掌握在宏设计器中设计自动运行宏。
5、熟悉和掌握VBA的常量、变量、运算符和表达式。
6、熟悉和掌握常用的标准函数。
7、熟悉和掌握VBA的程序结构:
顺序结构、选择结构和循环结构。
8、熟悉和掌握为窗体和控件事件编写VBA程序代码的方法。
二、实验任务:
1、为“出货信息”窗体中的“商品编号”和“客户编号”字段文本框控件分别创建“查看商品名称”宏和“查看客户名称”宏。
当单击“商品编号”或“客户编号”字段文本框控件时,弹出消息框显示对应的“商品名称”或“客户名称”。
2、为“退货信息窗体”中的“查看退货返款”命令按钮创建“查看退货返款”条件宏。
当单击“查看退货返款”命令按钮时,根据“商品类别”确定不同商品的退货返款的比率,在弹出的信息框中显示“出货货款”和“退货返款”信息。
具体规定如下:
“商品类别”为“0001”和“0002”的商品退货返款的比率为:
0.8“商品类别”为“0003”、“0004”、“0006”、“0007”、“0008”、“0009”的商品退货返款的比率为:
0.9“商品类别”为“0005”的商品退货返款的比率为:
0.953、首先在窗体设计视图中按照实践指导书p73页图7-13创建“窗体管理”窗体,然后为“窗体管理”窗体中的各命令按钮创建“窗体管理”宏组。
当单击命令按钮时,打开相应的窗体功能。
4、创建自动运行宏“autoexec”,使“窗体管理”窗体随着“进销存管理系统”数据库一起打开。
5、创建“进货信息操作窗体”,为“清空记录”、“查询记录”、“添加记录”、“修改记录”、“删除记录”和“关闭窗体”等命令按钮编写VBA程序代码。
三、实验原理:
1.宏的功能是什么。
调用方法有哪些。
(学生自行总结)2.宏操作命令如下:
分类宏操作OpenDataAccessPageOpenFormOpenModule打开OpenQueryOpenReportOpenTable焦点GoToControl功能学生自行总结学生自行总结学生自行总结学生自行总结学生自行总结学生自行总结学生自行总结学生自行总结GoToPage学生自行总结SelectObject学生自行总结SendKeys设置值学生自行总结SetValue学生自行总结RepaintObject更新学生自行总结Requery学生自行总结ApplyFilter学生自行总结FindRecord学生自行总结FindNext学生自行总结GoToRecord学生自行总结RunApp学生自行总结记录RunCode学生自行总结RunCommand学生自行总结RunMacro学生自行总结RunSQL学生自行总结StopAllMacro学生自行总结StopMacro学生自行总结Maximize学生自行总结Minimize窗口学生自行总结MoveSize学生自行总结Restore学生自行总结打印PrintOut学生自行总结Beep学生自行总结信息MsgBox学生自行总结SetWarnings学生自行总结复制CopyObject学生自行总结删除DeleteObect学生自行总结重命名rename学生自行总结保存save学生自行总结close关闭学生自行总结quit学生自行总结outputto学生自行总结TransferDatabase导入导出TransferSpreadsheet学生自行总结学生自行总结TransferText3.结构化程序设计思想是什么。
包括哪些程序控制结构。
不同的过程如何调用,参数如何传递。
(学生自行总结)4.面向对象程序设计基本思想是什么。
核心是什么。
(学生自行总结)5.ADO的对象集合是什么。
请写出VBA利用对象访问数据库的基本步骤。
(学生自行总结)四、实验操作步骤(可略)(参考课本上过程)注意:
1、宏的实验需要输入的表达式参考实验指导书的步骤部分,不要仅看图,图上的表达式未完整显示。
2、vba和模块的实验代码中的控件名称需要自行改动,请不要生搬硬套。
五、实验中遇到的问题(根据个人具体情况记载,选做)附:
部分代码,需要根据实际情况调整,直接照搬有可能运行不了宏实验:
查看商品名称:
="商品编号:
"&[商品编号]&""&"商品名称:
"&DLookUp("商品名称","商品信息表","商品编号=[forms]!
[出货信息窗体]!
[商品编号]")“条件”列第一行:
DLookUp("商品类别","商品信息表","商品编号=[forms]!
[退货信息窗体]!
[商品编号]")="0001"OrDLookUp("商品类别","商品信息表","商品编号=[forms]!
[退货信息窗体]!
[商品编号]")="0002"“消息”:
="出货货款:
"&[Forms]!
[退货信息窗体]!
[退货数量]*DLookUp("出货单价","出货信息表","商品编号=[forms]!
[退货信息窗体]!
[商品编号]")&""&"退货货款:
"&[Forms]!
[退货信息窗体]!
[退货数量]*DLookUp("出货单价","出货信息表","商品编号=[forms]!
[退货信息窗体]!
[商品编号]")*.8“条件”列第二行:
DLookUp("商品类别","商品信息表","商品编号=[forms]!
[退货信息窗体]!
[商品编号]")="0003"OrDLookUp("商品类别","商品信息表","商品编号=[forms]!
[退货信息窗体]!
[商品编号]")="0004"“消息”:
="出货货款:
"&[Forms]!
[退货信息窗体]!
[退货数量]*DLookUp("出货单价","出货信息表","商品编号=[forms]!
[退货信息窗体]!
[商品编号]")&""&"退货货款:
"&[Forms]!
[退货信息窗体]!
[退货数量]*DLookUp("出货单价","出货信息表","商品编号=[forms]!
[退货信息窗体]!
[商品编号]")*.9VBA和模块实验:
OptionCompareDatabasePrivateSub查询记录_Click()DimcnAsNewADODB.ConnectionDimrsAsNewADODB.RecordsetDimsqlstrAsStringSetcn=CurrentProject.ConnectionIfIsNull(Me.Text16)Then""Text16"为本窗体中"请输入进货编号"文本框的"名称"属性值MsgBox"请输入进货编号,进货编号不能为空!
",vbOKOnly+vbCritical,"提示"Me.Text16.SetFocusExitSubElsesqlstr="select*from进货信息表where进货编号=""&Me.Text16&"""rs.Opensqlstr,cn,adOpenDynamic,adLockOptimistic,adCmdTextIfNotrs.EOFThenMe.进货编号=Trim(rs(0))Me.商品编号=Trim(rs
(1))Me.进货单价=Trim(rs
(2))Me.进货数量=Trim(rs(3))Me.供货单位=Trim(rs(4))Me.进货日期=Trim(rs(5))Me.存放位置=Trim(rs(6))Me.经手人=Trim(rs(7))ElseMsgBox"该进货编号不存在,请重新输入!
",vbOKOnly+vbInformation,"提示"Me.Text16=""EndIfEndIfrs.Closecn.CloseSetrs=NothingSetcn=NothingEndSubPrivateSub修改记录_Click()DimcnAsNewADODB.ConnectionDimrsAsNewADODB.RecordsetDimsqlstrAsStringSetcn=CurrentProject.ConnectionIfIsNull(Me.进货编号)AndIsNull(Me.商品编号)AndIsNull(Me.进货单价)And_IsNull(Me.进货数量)AndIsNull(Me.供货单位)And_IsNull(Me.进货日期)AndIsNull(Me.存放位置)AndIsNull(Me.经手人)Then""Text16"为本窗体中"请输入进货编号"文本框的"名称"属性值MsgBox"每个字段都不能为空!
",vbOKOnly+vbCritical,"提示"Me.进货编号.SetFocusExitSubElsesqlstr="select*from进货信息表where进货编号=""&Me.Text16&"""rs.Opensqlstr,cn,adOpenDynamic,adLockOptimistic,adCmdTextrs(0)=Trim(Me.进货编号)rs
(1)=Trim(Me.商品编号)rs
(2)=Trim(Me.进货单价)rs(3)=Trim(Me.进货数量)rs(4)=Trim(Me.供货单位)rs(5)=Trim(Me.进货日期)rs(6)=Trim(Me.存放位置)rs(7)=Trim(Me.经手人)rs.UpdateEndIfrs.Closecn.CloseSetrs=NothingSetcn=NothingEndSubPrivateSub删除记录_Click()DimcnAsNewADODB.ConnectionDimrsAsNewADODB.RecordsetDimsqlstrAsStringSetcn=CurrentProject.ConnectionIfIsNull(Me.Text16)Then""Text16"为本窗体中"请输入进货编号"文本框的"名称"属性值MsgBox"请输入进货编号,进货编号不能为空!
",vbOKOnly+vbCritical,"提示"Me.Text16.SetFocusExitSubElsesqlstr="select*from进货信息表where进货编号=""&Me.Text16&"""rs.Opensqlstr,cn,adOpenDynamic,adLockOptimistic,adCmdTextIfNotrs.EOFThenrs.DeleteElseMsgBox"该进货编号不存在,请重新输入!
",vbOKOnly+vbInformation,"提示"Me.Text16=""EndIfEndIfrs.Closecn.CloseSetrs=NothingSetcn=NothingEndSubPrivateSub关闭窗体_Click()DoCmd.CloseacForm,"实验8:
进货信息操作窗体"EndSubPrivateSub清空记录_Click()Me.Text16=""Me.进货编号=""Me.商品编号=""Me.进货单价=""Me.进货数量=""Me.供货单位=""Me.进货日期=""Me.存放位置=""Me.经手人=""EndSubPrivateSub添加记录_Click()DimcnAsNewADODB.ConnectionDimrsAsNewADODB.RecordsetDimsqlstrAsStringSetcn=CurrentProject.ConnectionIfIsNull(Me.进货编号)Then""Text16"为本窗体中"请输入进货编号"文本框的"名称"属性值MsgBox"请输入进货编号,进货编号不能为空!
",vbOKOnly+vbCritical,"提示"Me.进货编号.SetFocusExitSubElsesqlstr="select*from进货信息表"rs.Opensqlstr,cn,adOpenDynamic,adLockOptimistic,adCmdTextrs.MoveLastrs.AddNewrs(0)=Trim(Me.进货编号)rs
(1)=Trim(Me.商品编号)rs
(2)=Trim(Me.进货单价)rs(3)=Trim(Me.进货数量)rs(4)=Trim(Me.供货单位)rs(5)=Trim(Me.进货日期)rs(6)=Trim(Me.存放位置)rs(7)=Trim(Me.经手人)rs.UpdateEndIfrs.Closecn.CloseSetrs=NothingSetcn=NothingEndSub
扩展阅读:
实验报告ACCESS
《数据库及其应用》实验报告
实验序号:
B0901000-02实验项目名称:
数据库设计和创建、表的创建与相关设置学号实验地点1007010153现教中心姓名指导教师专业、班时间202*年3-4月一、实验目的及要求1.熟悉Access中数据库及表的概念。
了解并掌握建立数据库、表和关系的过程。
2.熟悉数据库窗口的界面特点,掌握数据库窗口几种设置方法。
3.理解并掌握关系数据库完整性基本概念。
掌握完整性的设置方法。
4.掌握字段属性的概念和一些属性的用途。
并掌握一些字段属性的设置方法。
5.了解Access数据表视图的一些基本功能。
6.了解在数据表视图中进行操作时的不同特点。
二、实验设备(环境)及要求PC机,WindowsXP,Access202*三、实验内容要求(实验操作内容和步骤可写在表格后面)
(一)数据库与表的设计与创建1.给定如下数据分析,进行概念设计与逻辑设计。
即设计系统的E-R模型并转换为关系模型。
(数据参见附表)。
某学校设计学生教学管理系统。
学生实体包括学号、姓名、性别、生日、民族、籍贯、简历、登记照,每名学生选择一个主修专业,专业包括专业编号和名称,一个专业属于一个学院,一个学院可以有若干个专业。
学院信息要存储学院号、学院名、院长。
教学管理还要管理课程表和学生成绩。
课程表包括课程号、课程名、学分,每门课程由一个学院开设。
学生选修的每门课程获得一个成绩。
2.数据库结构设计指定数据库文件的名称,并为设计好的关系模型设计表结构。
数据库文件保存在“E:
\\教学管理\\”文件夹中。
3.定义数据库文件定义存放路径,和数据库文件。
写出操作步骤。
可包括必要的截图。
4.定义数据库中各表根据事先设计好的结构,分别定义各表、字段名、字段属性。
重复的步骤可简化。
5.定义表之间的关系当所有表都定义好后,定义各表之间的关系。
6.输入表记录当所有表建立好后,可开始输入记录。
简要说明输入的操作。
(二)Access数据库窗口基本操作1.设置教学管理数据库窗口中表对象列表窗口的显示格式为“详细信息”写出操作步骤。
2.隐藏和重新显示教学管理数据库窗口写出操作步骤。
3.定义一个“学生与成绩”组,将“学生”、“成绩”表放置到该组中写出创建组的操作和放置对象的操作。
(三)创建表时的完整性设置1.定义主键,实现实体完整性的操作每个表都可以定义主键。
在Access中为教学管理数据库的各表定义主键。
当一个表没有合适的字段作为主键时,一般会增加一个“id”字段。
试在“成绩”表中增加一个“成绩id”字段,并定义为“自动编号”型,然后定义其为主键。
2.进行设置参照完整性的操作在定义的有关系的表上,为关系设置参照完整性。
3.通过不同方式实现用户定义的完整性的操作用户定义的完整性,是指由用户规定的对于表中数据取值的约束。
在Access表定义时,除定义主键和关系外,通过多种方式设置用户定义完整性。
对教学管理数据库中必要的用户定义完整性进行设置和定义。
(四)字段属性定义与应用1.字段显示格式设置①使“学生”表中的“民族”字段以黄色显示。
②使“学生”的生日以中文方式、红色显示。
③使“成绩”表中成绩的显示为3位整数和一位小数,蓝色。
2.字段输入掩码设置在定义“学生”表时,由于“学号”是8位文本,且每位都由0~9组成,因此,要在定义“学号”字段时规定每一位的输入都必须是数字。
其他如课程表的“课程号”字段、专业表的“专业号”字段等都可以定义类似的输入掩码。
3.定义字段查阅方法“查阅”控件与字段绑定,可以提示字段的输入。
为“专业”表的“专业类别”定义查阅控件绑定。
为“专业”表的“学院号”字段设计“查阅”控件。
数据从“学院”表中来,显示“学院号”和“学院名”两列数据,采用列表框。
(五)数据表视图下数据记录的显示与操作1.输入操作利用数据表视图进行输入操作,输入的数据应该满足完整性的要求。
而如果是有关系的表中的子表,外键输入时还要与主键值对应。
根据给定的数据,为数据库中各表(重点介绍一到两个表)输入记录。
2.修改和删除操作修改“课程”表,将“运筹学”所在记录的学分增加1分,将开设学院变为“工商管理学院(05)”。
删除“课程”表中“美术设计”课程。
3.数据表视图中的设置数据表视图是浏览表中数据的界面,可以做不同的设置,以获得不同的效果。
①数据表视图中父子表的展开。
②按照指定的字段排序浏览。
在“成绩”数据表视图中,按照成绩的大小排列。
③在学生表中只显示女生数据记录。
四、回答问题1.Access存储数据时,用到几个数据库文件?
扩展名是什么?
答:
用到1个数据库文件,扩展名为“.MDB”2.设计ER模型、关系模型、数据库及表结构,分别属于数据库设计中的什么步骤?
答:
设计E-R模型属于概念设计;设计关系模型属于逻辑设计;设计数据库及表结构属于物理设计。
3.在表结构设计中,应该包含哪些内容?
答:
每个表的名称,表中每个字段的字段名、类型、宽度,同时指明主键、字段约束4.在本实验设计中,共使用了哪些数据类型?
答:
共使用了文本型、日期型、备注型、OLE对象、字节型、单精度型这些数据类型;文本型宽度规定为说要输入的最大数据的宽度,其他类型无需规定。
5.定义表之间的关系时,“实施参照完整性”的意义是什么?
在“编辑关系”对话框中选中或者撤销“级联更新相关字段”复选框,对于数据表的操作有何影响?
答:
选中“实施参照完整性”复选框后,在子表中添加或更新数据时,Access将建样子表新加入的与主键有关的外键值是否满足参照完整性,如果不满足,Access将拒绝添加或更新数据。
选中“级联更新相关字段”后,当父表修改主键值时,如果子表中的外键有对应值,外键的对应值将自动级联更新。
反之,但当父表修改主键值而子表中的外键有对应值,这Access拒绝修改主键值。
6.建立表的关系,是否要求发生关系的两个字段必须同名?
答:
不要求。
7.在定义学生表的“性别”字段时,同时定义了字段的“有效性规则”,对输入学生表的记录有什么影响?
答:
定义了“有效性规则”后,用户针对该字段的每一个输入值或修改值都会代入定义表达式中运算,只有运算结果为true的值才能够存入字段;运算结果如果为false,界面将弹出提示对话框,提示输入错误。
8.如何输入学生照片?
答:
再输入记录上的“OLE对象”字段上单击右键,在弹出的快捷菜单中选择“插入对象”菜单命令,弹出对话框,选中“由文件创建”复选框,输入学生照片文件路径,单击“确定”按钮,完成输入。
9.如何理解“收藏夹”,试说明“收藏夹”与组之间的异同。
答:
“收藏夹”是Access系统自动定义的一个项目,它与组功能相同,是一个特殊的组。
“收藏夹”与普通组最大的区别是“收藏夹”不能被删除。
10.打开数据库文件时,有哪几种可选择的方式?
一般默认方式是什么?
如果要将默认方式设置为“独占”如何实现?
答:
可选打开方式有“以只读方式打开”、“以独占方式打开”、“以独占只读方式打开”;一般默认打开模式是“共享”;选择“工具”→“选项”命令,在弹出的对话框中,选择“高级”选显卡,在“默认打开模式”选项下,选中“独占”复选框,点击“确定”按钮,完成设置。
11.在“学生”表的设计器中,选择“学号”字段,然后单击工具栏“主键”按钮,以便取消主键,这时会出现什么情况?
为什么?
答:
出现了不能更改主键的提示,因为学生表是一个或者多个表的主表,删除主键会影响到以编辑好的关系,必须先删除关系,才能删除主键。
12.在“编辑关系”对话框中,只有选中“实施参照完整性”,才可以选择“级联更新关联字段”和“级联删除关联字段”。
试解释这三种复选项的控制意义。
答:
1)参照完整性。
子表中添加或更新数据时,access将检查子表新加入的与主键有关的外键值是否满足参照完整性,如果外键值没有与之对应的主键值,access将拒绝添加或者更新数据。
2)级联更新关联字段。
当父表修改主键值时,如果子表中有对应值,外键的对应值将自动级联更新。
3)级联删除相关记录。
当父表删除主键值的时候,如果子表中的外键中有对应值,外键所在的记录将子表中的若干级联删除。
13.当在输入记录时,如果发生主键字段重复,会出现什么现象?
如果输入的外键值如专业表的“学院号”在“学院”中没有对应的值,会出现什么情况?
答:
1)显示将在主键中创建重复值,对表的请求没有成功。
2)显示14.定义表时,设置“有效性文本”字段属性有何作用?
有效性文本属性允许用户指定提示的文字。
15.在定义“文本”型字段格式时,“@”符号与“&”符号作为占位符有何区别?
在定义“数字”型字段格式时,“#”符号与“0”符号作为占位符有何区别?
1)@用于显示该位置显示人亦可用字符或空格。
&用于显示该位置显示人亦可用字符。
如果没有可用字符,access将忽略该占位符。
2)#如果在这个位置没有数字输入,则access忽略该数字占位符。
0如果在这个位置没有数字输入,则access显示0。
16.在本实验的定义“日期/时间”型字段格式时,一个m或d与两位的mm或dd在使用时有何区别?
用“\\”符号的作用是什么?
若设计格式为:
dddddd[红色],有何区别?
1)把月份(日期)显示成一位或者两位数字。
2)\\将其后跟随的第一个字符原文照应。
3)用于显示长日期格式。
17.定义“输入掩码”属性的实质意义是什么?
在定义“学号”字段的输入掩码时,不使用“0”而使用“9”或“#”有和区别?
如果在“姓名”字段上必须定义10位输入掩码,那么应该定义什么掩码字符串?
1)意义:
定义数据的输入格式,也可以定义输入的数据的某一位上允许输入的值的集合。
2)9如果位置上没有输入任何数字或者空格,access将忽略该占位符。
#数字、空格、+、-都可以输入到该位置。
如果没有输入任何数字,access认为输入的是空格。
3)CCCCCCCCCC18.可以采用查阅方法输入的字段类型有哪些?
绑定查阅列表框控件进行输入,如果不点击其中的值,而是输入不同的值,是否可以输入?
如果一定要使输入的值限定在列表框的值的范围内,应该如何实现?
1)文本、是否、数字2)可以19.若在“课程”表删除“数据库及应用”记录,会发生什么现象?
什么含义?
答:
20.在数据表浏览展开子表时,可以最多展开多少层子表?
若要同时展开每条记录的的子表,应该如何操作?
1)8层子表2)全选任意点击一个五、分析讨论+(根据实验写出一些心得或分析等)事实上,很多课堂上的理论很抽象,但是,一用到实验报告上来就会觉得好容易理解。
所以,我觉得,学习数据库,必须与实验报告的练习相互结合才可以更深层次地理解!
六、教师评语1.按时完成实验;2.实验内容和过程记录完整;3.回答问题完整、正确;4.有实验的心得或讨论;5.实验报告的撰写认真、格式符合要求,没有抄袭行为。
成绩签名:
日期:
202*.3本实验的操作步骤如下。
1.给定如下数据分析,进行概念设计与逻辑设计。
即设计系统的E-R模型并转换为关系模型。
(数据参见附表)。
某学校设计学生教学管理系统。
学生实体包括学号、姓名、性别、生日、民族、籍贯、简历、登记照,每名学生选择一个主修专业,专业包括专业编号和,一个专业属于一个学院,一个学院可以有若干个专业。
学院信息要存储学院号、学院名、院长。
教学管理还要管理课程表和学生成绩。
课程表包括课程号、课程名、学分,每门课程由一个学院开设。
学生选修的每门课程获得一个成绩。
学号专业编号名称姓名专业性别选修开设m11生日
学专业1民族生学院号籍贯学1院长院简历登记照、m专业选修制定m1成绩课程学分课程名课程号
关系模型:
学生实体属性:
学号、姓名、性别、生日、民族、籍贯、简历、登记照、专业学院实体属性:
学院号、学院名、院长课程实体属性:
课程号、课程名、学分成绩实