ACCESS窗体查询实例.
- 格式:doc
- 大小:415.50 KB
- 文档页数:23
实验三窗体操作一、使用“自动创建窗体”功能创建窗体以课程表为数据源,利用自动创建窗体功能分别创建纵栏式、表格式、数据表式三个窗体,依次命名为“课程表纵栏式”、“课程表表格式”、“课程表数据表式”。
要求包括所有字段。
二、使用图表向导创建窗体1.以“学生成绩查询1”为数据源,建立图表窗体“学生各门课程成绩图表窗体”,用柱形图表示学生选修各门课程的期末成绩。
要求图表标题为“学生各门课程成绩”。
2.以“学生成绩查询1”为数据源,建立图表窗体“学生平均成绩图表窗体”,用柱形图表示学生的期末成绩的平均分。
要求图表标题为“学生平均成绩”。
三、使用窗体向导创建窗体1.以学生表为数据源,使用向导创建“学生信息”窗体。
布局为“纵栏式”,样式为“工业”,窗体标题为“学生信息”。
要求包括所有字段。
2.以学生表、成绩表、课程表为数据源,使用向导创建“学生信息主窗体”和“学生成绩子窗体”,包括学号、姓名、课程号、课程名、平时成绩、期末成绩字段。
(要求指定查看数据的方式为“通过学生表”)(思考:如果指定查看数据的方式为“通过课程表”有什么不同?如果为“通过成绩表”又有什么不同?)四、使用设计视图创建窗体1.以“学生成绩查询1”为数据源,使用设计视图创建窗体“学生选课信息”,如图4.1所示。
要求:1)窗体页眉为:学生选课信息,字体为华文新魏,字号为20,红色。
2)窗体标题为:学生选课情况。
3)窗体没有最大化最小化按钮,也没有记录选择器。
4)把主体中的标签和文本框的字号都设置为12。
5)给窗体设置背景,背景图片自已准备。
图片类型为嵌入,图片缩放模式为拉伸。
图4.12.创建“学生档案及学生成绩多页窗体”,如图4.2和图4.3所示。
图4.2图4.3提示:1)使用“设计视图”创建窗体,选择“学生表”作为数据源。
2)选择工具箱中的“选项卡”控件,在要放置选项卡的位置拖出一个矩形框。
3)选择学生表中的所有字段,拖动到“页1”中,调整好位置和大小。
查询操作题12、考生文件夹下存在一个数据文件”samp2.mdb”,里面已经设计好两个表对象"tBand"和"tLine”。
试按以下要求完成设计:(1)创建一个选择查询,查找并显示”团队ID”、"导游姓名"、”线路名”,"天数”,"费用”,等五个字段的内容,所建查询命名为"qT1";(2)创建一个选择查询,查找并显示旅游"天数"在五到十天之间(包括五天和十天)的”线路名"、"天数”和"费用",所建查询名为"qT2”;(3)创建一个选择查询,能够显示”tLine"表的所有字段内容,并添加一个计算字段”优惠后价格”,计算公式为:优惠后价格=费用*(1—10%),所建查询名为”qT3”;(4)创建一个删除查询,删除表”tBand"中出发时间在2002年以前的团队记录,所建查询命名为"qT4”。
本题解题思路:(1)点击"查询",选择"新建(N)”,在弹出的”新建查询"窗体上选择”设计视图",然后在弹出的”显示表"窗体上选择”tBand"表和"tLine”表,然后从”tBand”表中选择"团队ID"和"导游姓名”,从”tLine”表中选择"线路名”、"天数”和”费用",以"qT1”保存查询。
(2)选择"新建(N)”,在弹出的”新建查询”窗体上选择”设计视图”,然后在弹出的"显示表"窗体上选择”tLine"表,选择题目中所说的三个字段,然后在"天数”字段的”条件”中输入"〉=5 And 〈=10",最后以"qT2”保存查询.(3)与第2小题类似,选择表中的"线路ID”、”线路名"、"天数"和”费用"字段,然后在第五个字段中输入"优惠后价格:([费用]*(。
ACCESS VBA用窗体实现多条件查询代码如下:Private Sub Query_Click()On Error GoTo Err_cmdQuery_ClickDim strWhere As String'定义条件字符串strWhere=""'设定初始值为空字符串If Not IsNull(bPropertyType)Then'条件框里有输入strWhere=strWhere&"([PropertyType]like'*"&bPropertyType&"*') AND"End IfIf Not IsNull(bPropertyStyle)Then'有输入strWhere=strWhere&"([PropertyStyle]like'*"&bPropertyStyle&"*') AND"End IfIf Len(strWhere)>0Then'有输入条件strWhere=Left(strWhere,Len(strWhere)-5)'去掉多余的ANDEnd IfDebug.Print strWhere'先在立即窗口显示一下strWhere的值Me.testsubform.Form.Filter=strWhere'让子窗体应用窗体查询Me.testsubform.Form.FilterOn=TrueExit_cmdQuery_Click:Exit SubErr_cmdQuery_Click:MsgBox Err.DescriptionResume Exit_cmdQuery_ClickEnd SubPrivate Sub cmdClear_Click()On Error GoTo Err_cmdClear_ClickDim ctl As ControlFor Each ctl In Me.Controls'根据ctl的控件类型来选择Select Case ctl.ControlTypeCase acComboBox'是组合框,清空ctl.Value=Null'其它类型的控件不处理End SelectNext'取消子窗体的筛选Me.testsubform.Form.Filter=""Me.testsubform.Form.FilterOn=FalseExit_cmdClear_Click:Exit SubErr_cmdClear_Click:MsgBox Err.DescriptionResume Exit_cmdClear_ClickEnd Sub。
ACCESS 查询和窗体实验报告实验报告课程名称实验项目名称数据库技术与应用班级与班级代码1121125050521实验室名称(或课室)专业SS1-2042012年05月10日任课教师学姓号:名:实验日期:广东商学院教务处制姓名实验报告成绩诚信保证:本人保证,本实验及实验报告,均为本人独立完成,实验结果均通过上机验证。
如有抄袭愿承担相应的责任。
学生签名:日期:年月日老师评价:评价项目1.认真做好实验前准备工作,实验目的明确2.实验步骤清楚、完整3.实验过程规范,实验结果与实验题目要求相符4.有简要的实验分析和小结5.排版格式清晰美观,符合要求评价指导教师(签名)日期:年月日ACCESS查询和窗体实验一、目的与要求熟练掌握查询和窗体操作二、实验原理(知识准备情况)1、数据表与查询是窗体的操作基础.2、查询有设计视图、SQL视图、数据表视图3种视图方式;3、创建查询的方法:①使用向导创建查询(该系统提供“简单查询向导”、“交叉表查询向导”、“查找重复项查询向导”、“查找不匹配项查询向导”);4、查询是在创建了表的基础上而产生的数据库对象。
使用查询可以按照不同的方式查看、更改和分析数据。
在Access中可以实现多表查询、交叉表查询和执行计算的查询;5、窗体有3种视图方式,分别为设计视图、窗体视图、数据表视图。
6、窗体分别为纵栏式、表格式、数据表式、主/子式、图表式和数据透视表式6种类型。
7、窗体的属性和窗体控件的属性均为窗体属性。
三、实验内容1、建立一个名为“男生查询”的查询,要求显示学生信息表中1990年(含1990年)以后出生的男生的全部字段。
(P30题1)①创建一个查询,以学生信息表作为数据源选择所有字段。
②在性别栏的条件框里输入“男”,在出生日期栏的条件框下输入“>=#1990-1-1”2、建立名为“班级参数查询”建立名为“班级参数查询”的参数查询,要求运行此查询时提示“请输入班级名称”,根据输入的班号显示出该班的“姓名”、“学号”、“班号”及“性别”字段。
ACCESS上机操作之查询操作案例使用查询向导创建查询(一)在"教学"数据库中的"学生"、"课程"、"成绩"三张表中,完成下列操作∶1、建立表间关系∶根据"学生"表和"成绩"表中"学号"字段建立关系;根据"成绩"表和"课程"表中的"煽号"字段建立关系;保存已建立的关系。
2、简单查询的创建∶(1)单表查询∶使用简单查询向导,对"学生"表创建一个名为"学生单表简单查询",只要显示"学生,姓名,性别,出生日期,地址"等字段。
(2)多表查询∶使用简单查询向导,对"学生"、"课程"、"成绩"表创建一个名为"学生多表简单查询"的情单查询,只要显示"学号,姓名,入学成靠,课程,成遗"等字段。
3、交叉表查询∶使用交叉表查询向导创建一个基于"学生"、"课程"、"成绩"三张表名为"学生成绩交叉查询"的查询。
(1)若以上三张表没建立关系,则建立它们之间的关系。
(2)建立一个包含"学生"表中"姓名","课程"表中"课程","成绩"表中"成绩"字段的简单查询∶(3)按照书中 P56—58 页的②—⑤步操作。
4、重复项查询∶(1)使用盒复项查询向导,在"学生"表中,背授入举成绩娟同的学生。
此答询命名为"入学成绩相同学生查询"(2)使用置复项查询向导,在"学生"表中,查找出生日期相同的学生。
目录一. 概述........................................... 错误!未定义书签。
二. 制作主/子窗体的步骤............................ 错误!未定义书签。
1. 利用向导制作主窗体.......................... 错误!未定义书签。
2. 利用向导设计子窗体.......................... 错误!未定义书签。
三. 查询方法1:在查询中加入条件 ................... 错误!未定义书签。
1. 设计查询.................................... 错误!未定义书签。
2. 设计按钮及代码.............................. 错误!未定义书签。
查询按钮.................................. 错误!未定义书签。
清除按钮.................................. 错误!未定义书签。
打印按钮.................................. 错误!未定义书签。
导出EXCEL按钮............................ 错误!未定义书签。
3. 增加统计功能................................ 错误!未定义书签。
子窗体上的设计............................ 错误!未定义书签。
主窗体上的设计............................ 错误!未定义书签。
4. 方法总结.................................... 错误!未定义书签。
本方法优点................................ 错误!未定义书签。
本方法缺点................................ 错误!未定义书签。
一.概述作为数据管理程序,统计和查询功能是非常重要的。
否则,就和电子表格没有区别了。
所以,在每个ACCESS程序中都不可能缺少查询的功能。
本文的目的是由浅入深的介绍几种最常用的利用主/子窗体来实现查询的方法,使初学者和有一定VBA基础的人可以更好的使用窗体查询这种手段。
附件中的窗体“常用窗体查询0.MDB”,仅包含3个数据表、1个查询和以这个查询为数据源的报表。
是为了大家根据后面学习的内容作练习用的。
我们先看查询中的数据:书籍编号书名类别作者出版社单价进书日期22 CHIP-01-08 报刊电子计算机与外部设备期刊社电子计算机与外部设备¥16.80 2001-9-2825 电脑新时代-6光盘光盘UNKNOWN 电脑新时代¥5.00 2002-7-8 27 学电脑-7光盘光盘UNKNOWN 人民邮电¥5.00 2002-7-1328 CHIP-02-07光盘光盘电子计算机与外部设备杂志社电子计算机与外部设备¥5.00 2002-7-1316 MCSE学习指南书籍Syngress Media公司人民邮电¥62.00 2001-9-2817 局域网原理与架设技术内幕大公开书籍蔡昌均中国青年¥69.00 2001-9-2819 AccessVBA基础书籍EvanCallahan 人民邮电¥39.00 2001-9-2820 中文版Access2001一册通书籍赵琳等人民邮电¥42.00 2001-9-2821 VISUALBASIC5.0教程书籍SteveBrown 电子工业¥28.00 2001-9-2823 中文版VisualBasic5.0程序员指南书籍microsoft 中国青年¥70.00 2001-9-2824 Access中文版开发指南书籍Alison Balter 人民邮电¥128.00 2002-2-1629 Access 2002数据库系统开发实例导航书籍桂思强中国铁道¥25.00 2003-3-1030 中国名陵——集中华古代名陵之大成书籍罗哲文等百花文艺¥14.00 2003-5-2031 边缘部落——福音谷书籍林茨(撰文摄影)河北教育¥27.00 2003-5-20 为了比较有代表性,这个查询中包含多种字段类型:数字类型:【书籍编号】、【单价】字符类型:【书名】、【类别】、【作者】、【出版社】日期类型:【进书日期】在多条件查询中,我们会使用除了【书籍编号】之外的其他字段作为查询条件。
其实,在下面介绍的窗体查询方法中,有些代码或思路也可以应用在其它窗体查询方法中,你对各种代码、方法和思路越熟练,就越能充分发挥它们的作用。
这篇文章我是从4月初开始构思,到5月中旬开始动笔,花费两周时间写成,里面包含了我对ACCESS窗体查询所积累的经验,对初学者和有一定VBA基础的人都有针对性的方法。
另外,希望其他精通ACCESS的高手提出意见。
二.制作主/子窗体的步骤1. 利用向导制作主窗体①②③④现在的主窗体还太小,要已经以下步骤才能变成我们需要的主窗体(如下图):①把窗体面积放大到足以容纳条件输入字段和子窗体,并调整所有控件的字体;②把窗体的“记录源”和各控件的“数据来源”都删除(很多初学者很容易犯的错误就是这里),把类别和出版社改为组合框(因为这些字段的可能值比较少,直接选择就好,不必让用户输入);③重新调整各字段的位置,并增加了两个空文本框和标签放在单价和进书日期后面(因为我打算使用一个范围来作查询条件,而不是一个固定的值,这样比较符合实际);④单价后面的两个文本框改名为“单价开始”和“单价截止”,进书日期后面的两个文本框改名为“进书日期开始”和“进书日期截止”;⑤画一个矩形框包住所有查询条件,把矩形框背景设置为常规,背景色为深灰色,特殊样式为凹陷,此时矩形框覆盖了其它控件,要用菜单中“格式”→“置于底层”才能让它们显示出来;⑥在窗体上用向导建立一个按钮,按钮标题是“查询”,名称是“cmd查询”先不管里面的代码,后面再修改;⑦窗体属性中“记录选定器”=否,“浏览按钮”=否。
2. 利用向导设计子窗体①②③①在主窗体中用工具箱中的“子窗体/子报表”对象建立一个子窗体;②以存书查询为记录源,选择所有字段;③把子窗体命名为“存书查询子窗体”;④在主窗体上删除子窗体的标签,并重新调整子窗体的大小;⑤关闭主窗体的设计视图,单独打开子窗体数据表视图,调整字体和行的大小。
现在,我们得到了如下的窗体:现在还没有实际的查询功能,我们在后面要根据所使用的方法,修改窗体并增加一些其他的功能。
还有一些小的细节要注意,比如:按TAB键后的获得光标的控件的顺序要在设计视图下,视图菜单的“TAB键次序”来修改;有些文本框获得焦点后是否要打开输入法,比如输入单价和日期的地方要关闭,输入书名和作者的地方要打开,这些要在控件属性中设置。
三.查询方法1:在查询中加入条件这种方法对应的实例数据库是:“常用窗体查询1.MDB”。
1. 设计查询我们打开“存书查询”设计视图如下:在字段【书名】的准则格内写入:Like IIf(IsNull([Forms]![存书查询窗体]![书名]),'*','*' & [Forms]![存书查询窗体]![书名] & '*') 加入后的设计视图如下:把这个式子解释一下:LIKE:是专门用于查询字符型字段的运算符,一般介绍ACCESS的书中都有它的用法。
ISNULL([Forms]![存书查询窗体]![书名]):是用来判断窗体“存书查询窗体”上面的“书名”这个文本框是否是空的。
如果文本框是空的,则:ISNULL([Forms]![存书查询窗体]![书名])=TRUE(真)如果文本框不是空的,则:ISNULL([Forms]![存书查询窗体]![书名])=FALSE(假)IIF(EXPR, TRUEPART, FALSEPART)函数:EXPR 必要参数。
用来判断真伪的表达式。
TRUEPART 必要参数。
如果EXPR 为TRUE,则返回这部分的值或表达式。
FALSEPART 必要参数。
如果EXPR 为FALSE,则返回这部分的值或表达式。
所以当我们在窗体“存书查询窗体”上面的“书名”里写上“ACCESS”,整个式子的结果是:LIKE *ACCESS*相当于查询所有书名中包含“ACCESS”的书籍,这样可以实现模糊查询。
Like IIf(IsNull([Forms]![存书查询窗体]![书名]),'*', [Forms]![存书查询窗体]![书名] & '*') Like IIf(IsNull([Forms]![存书查询窗体]![书名]),'*', [Forms]![存书查询窗体]![书名])如果把准则改为上面两句中的一句,同样情况下当我们在窗体“存书查询窗体”上面的“书名”里写上“ACCESS”,整个式子的结果是:LIKE ACCESS*LIKE ACCESS相当于查询以“ACCESS”开头的书籍(半模糊查询),或者书名就叫“ACCESS”的书(精确查询)。
具体使用那一种形式的查询要根据你的实际情况来修改。
当我们在窗体“存书查询窗体”上面的“书名”里什么也没有写,整个式子的结果是:LIKE *相当于查询所有的有书名的书。
在书写查询准则时,[Forms]![存书查询窗体]![书名]这样的窗体控件名很难写,这时你可以在准则格内点鼠标右键,选择生成器,出现如下图的窗口:在左边的树型列表框里找到控件所在的窗体,在中间列表框出现这个窗体包含的所有控件,双击控件名,就会出现“[Forms]![存书查询窗体]![书名]”。
我们再把其他几个字段的查询准则写出:【类别】:在窗体上是组合框,所以它肯定是个精确查询,跟【书名】一样,它是文本字段。
查询准则如下:Like IIf(IsNull([Forms]![存书查询窗体]![类别]),'*',[Forms]![存书查询窗体]![类别])【作者】:跟【书名】一样,它是文本字段。
我也打算用模糊查询。
查询准则如下:Like IIf(IsNull([Forms]![存书查询窗体]![作者]),'*','*' & [Forms]![存书查询窗体]![作者] & '*') 【出版社】:跟【类别】的情况完全一样。
查询准则如下:Like IIf(IsNull([Forms]![存书查询窗体]![出版社]),'*',[Forms]![存书查询窗体]![出版社])【单价】:是一个数字字段,我在这里准备让用户可以查询“1.5元~6.5元”这样的范围。
查询准则如下:Between IIf(IsNull([Forms]![存书查询窗体]![单价开始]),0,[Forms]![存书查询窗体]![单价开始]) And IIf(IsNull([Forms]![存书查询窗体]![单价截止]),5000,[Forms]![存书查询窗体]![单价截止]) BETWEEN AND:是查询符合某个范围之内的值所需的条件格式。
“BETWEEN 1 AND 5”相当于“【字段】≥1 AND 【字段】≤5”。
根据前面讲解的IIF的内容,我用一个表格来解释一下各种情况下这个式子的实际结果,便于大家理解:(0和5000是我事先在条件中设定的最小值和最大值)[单价开始]的值[单价截止]的值整个式子的实际结果空空BETWEEN 0 AND 50001.5 空BETWEEN 1.5 AND 5000空20 BETWEEN 0 AND 201.5 6.5 BETWEEN 1.5 AND 6.5【进书日期】:是一个日期型字段,我在这里准备让用户可以查询“#2001-5-1#~#2002-5-1#”这样的范围。
查询准则如下:Between (IIf(IsNull([Forms]![存书查询窗体]![进书日期开始]),#2000-1-1#,[Forms]![存书查询窗体]![进书日期开始])) And (IIf(IsNull([Forms]![存书查询窗体]![进书日期截止]),#2099-12-31#,[Forms]![存书查询窗体]![进书日期截止]))在这个式子中,#2000-1-1#和#2099-12-31#是我设定的两个默认的开始和截止日期。
如果用户不输入,就使用默认值了。
这和前面【单价】的情况是一样的。
2. 设计按钮及代码2.1查询按钮查询按钮的代码非常简单,关键部分只有一句:Private Sub cmd查询_Click()Me.存书查询子窗体.Requery '这句是关键End SubREQUERY:是用来重新查询控件的数据源,这样可以刷新子窗体显示的记录。