2022年ACCESS窗体查询实例.pdf
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《2022年ACCESS窗体查询实例.pdf》由会员分享,可在线阅读,更多相关《2022年ACCESS窗体查询实例.pdf(23页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。
1、ACCESS 窗体查询实例一. 概述作为数据管理程序 ,统计与查询功能就是非常重要的。否则,就与电子表格没有区别了。所以 ,在每个 ACCESS 程序中都不可能缺少查询的功能。本文的目的就是由浅入深的介绍几种最常用的利用主/子窗体来实现查询的方法,使初学者与有一定VBA 基础的人可以更好的使用窗体查询这种手段。附件中的窗体“常用窗体查询0、MDB ”,仅包含 3 个数据表、 1 个查询与以这个查询为数据源的报表。就是为了大家根据后面学习的内容作练习用的。我们先瞧查询中的数据 : 书籍编号书名类别作者出版社单价进书日期22 CHIP-01-08 报刊电子计算机与外部设备期刊社电子计算机与外部设备
2、¥16、 80 2001-9-28 25 电脑新时代 -6 光盘光盘UNKNOWN 电脑新时代¥5、 00 2002-7-8 27 学电脑 -7 光盘光盘UNKNOWN 人民邮电¥5、 00 2002-7-13 28 CHIP-02-07 光盘光盘电子计算机与外部设备杂志社电子计算机与外部设备¥5、 00 2002-7-13 16 MCSE 学习指南书籍Syngress Media公司人民邮电¥62、 00 2001-9-28 17 局域网原理与架设技术内幕大公开书籍蔡昌均中国青年¥69、 00 2001-9-28 19 AccessVBA基础书籍EvanCallahan 人民邮电¥39、 0
3、0 2001-9-28 20 中文版 Access2001 一册通书籍赵琳等人民邮电¥42、 00 2001-9-28 21 VISUALBASIC5 、0 教程 书籍SteveBrown 电子工业¥28、 00 2001-9-28 23 中文版VisualBasic5、0 程序员指南书籍microsoft 中国青年¥70、 00 2001-9-28 24 Access 中文版开发指南书籍Alison Balter 人民邮电¥128、 00 2002-2-16 29 Access 2002 数据库系统开发实例导航书籍桂思强中国铁道¥25、 00 2003-3-10 30 中国名陵集中华古代名陵
4、之大成书籍罗哲文等百花文艺¥14、 00 2003-5-20 31 边缘部落福音谷书籍林茨 ( 撰文摄影 ) 河北教育¥27、 00 2003-5-20 为了比较有代表性 ,这个查询中包含多种字段类型: 数字类型 :【书籍编号】、 【单价】字符类型 :【书名】、 【类别】、 【作者】、 【出版社】精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 1 页,共 23 页 - - - - - - - - - - ACCESS 窗体查询实例日期类型 :【进书日期】在多条件查询中 ,我们会使用除了【书籍编号】之外的其
5、她字段作为查询条件。其实 ,在下面介绍的窗体查询方法中,有些代码或思路也可以应用在其它窗体查询方法中 ,您对各种代码、方法与思路越熟练,就越能充分发挥它们的作用。这篇文章我就是从 4月初开始构思 ,到 5月中旬开始动笔 ,花费两周时间写成 ,里面包含了我对 ACCESS 窗体查询所积累的经验 ,对初学者与有一定VBA 基础的人都有针对性的方法。另外,希望其她精通 ACCESS 的高手提出意见。精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 2 页,共 23 页 - - - - - - - - - - AC
6、CESS 窗体查询实例二. 制作主 /子窗体的步骤1. 利用向导制作主窗体现在的主窗体还太小 ,要已经以下步骤才能变成我们需要的主窗体(如下图 ): 把窗体面积放大到足以容纳条件输入字段与子窗体,并调整所有控件的字体 ; 把窗体的“记录源”与各控件的“数据来源”都删除(很多初学者很容易犯的错误就就是这里 ),把类别与出版社改为组合框(因为这些字段的可能值比较少,直接选择就好 ,不必让用户输入 ); 重新调整各字段的位置,并增加了两个空文本框与标签放在单价与进书日期后面(因为我打算使用一个范围来作查询条件,而不就是一个固定的值,这样比较符合实际 ); 单价后面的两个文本框改名为“单价开始”与“单
7、价截止”,进书日期后面的两个文本框改名为“进书日期开始”与“进书日期截止”; 精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 3 页,共 23 页 - - - - - - - - - - ACCESS 窗体查询实例画一个矩形框包住所有查询条件,把矩形框背景设置为常规,背景色为深灰色 ,特殊样式为凹陷 ,此时矩形框覆盖了其它控件,要用菜单中“格式”“置于底层”才能让它们显示出来 ; 在窗体上用向导建立一个按钮,按钮标题就是“查询” ,名称就是“ cmd 查询”先不管里面的代码 ,后面再修改 ; 窗体属性中“
8、记录选定器”否,“浏览按钮”否。2. 利用向导设计子窗体精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 4 页,共 23 页 - - - - - - - - - - ACCESS 窗体查询实例在主窗体中用工具箱中的“子窗体/子报表”对象建立一个子窗体; 以存书查询为记录源 ,选择所有字段 ; 把子窗体命名为“存书查询子窗体”; 在主窗体上删除子窗体的标签,并重新调整子窗体的大小; 关闭主窗体的设计视图,单独打开子窗体数据表视图,调整字体与行的大小。现在,我们得到了如下的窗体 : 现在还没有实际的查询功能,
9、我们在后面要根据所使用的方法,修改窗体并增加精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 5 页,共 23 页 - - - - - - - - - - ACCESS 窗体查询实例一些其她的功能。还有一些小的细节要注意,比如:按 TAB 键后的获得光标的控件的顺序要在设计视图下 ,视图菜单的“TAB 键次序”来修改;有些文本框获得焦点后就是否要打开输入法 ,比如输入单价与日期的地方要关闭,输入书名与作者的地方要打开,这些要在控件属性中设置。精品资料 - - - 欢迎下载 - - - - - - - - -
10、 - - 欢迎下载 名师归纳 - - - - - - - - - -第 6 页,共 23 页 - - - - - - - - - - ACCESS 窗体查询实例三. 查询方法 1:在查询中加入条件这种方法对应的实例数据库就是:“常用窗体查询1、MDB ” 。1. 设计查询我们打开“存书查询”设计视图如下: 在字段【书名】的准则格内写入: Like IIf(IsNull(Forms!存书查询窗体 !书名 ),*,* & Forms!存书查询窗体 !书名 & *) 加入后的设计视图如下 : 把这个式子解释一下 : LIKE :就是专门用于查询字符型字段的运算符,一般介绍 ACCESS 的书中都有它
11、的用法。ISNULL(Forms!存书查询窗体!书名):就是用来判断窗体“存书查询窗体”精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 7 页,共 23 页 - - - - - - - - - - ACCESS 窗体查询实例上面的“书名”这个文本框就是否就是空的。如果文本框就是空的,则: ISNULL(Forms! 存书查询窗体 ! 书名)=TRUE( 真) 如果文本框不就是空的 ,则: ISNULL(Forms! 存书查询窗体 ! 书名)=FALSE(假) IIF(EXPR, TRUEPART, FAL
12、SEPART)函数: EXPR 必要参数。用来判断真伪的表达式。TRUEPART 必要参数。如果EXPR 为 TRUE,则返回这部分的值或表达式。FALSEPART 必要参数。如果EXPR 为 FALSE,则返回这部分的值或表达式。所以当我们在窗体“存书查询窗体”上面的“书名”里写上“ACCESS”,整个式子的结果就是 : LIKE *ACCESS* 相当于查询所有书名中包含“ACCESS”的书籍 ,这样可以实现模糊查询。Like IIf(IsNull(Forms!存书查询窗体 !书名),*, Forms!存书查询窗体 !书名 & *) Like IIf(IsNull(Forms!存书查询窗体
13、 !书名),*, Forms!存书查询窗体 !书名 ) 如果把准则改为上面两句中的一句,同样情况下当我们在窗体“存书查询窗体”上面的“书名”里写上“ACCESS”,整个式子的结果就是 : LIKE ACCESS* LIKE ACCESS 相当于查询以“ ACCESS”开头的书籍 (半模糊查询 ),或者书名就叫“ ACCESS”的书(精确查询 )。具体使用那一种形式的查询要根据您的实际情况来修改。当我们在窗体“存书查询窗体”上面的“书名”里什么也没有写,整个式子的结果就是: LIKE * 相当于查询所有的有书名的书。在书写查询准则时,Forms! 存书查询窗体 ! 书名 这样的窗体控件名很难写,
14、这时您可以在准则格内点鼠标右键,选择生成器 ,出现如下图的窗口 : 精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 8 页,共 23 页 - - - - - - - - - - ACCESS 窗体查询实例在左边的树型列表框里找到控件所在的窗体,在中间列表框出现这个窗体包含的所有控件 ,双击控件名 ,就会出现“ Forms! 存书查询窗体 ! 书名” 。我们再把其她几个字段的查询准则写出: 【类别】 :在窗体上就是组合框 ,所以它肯定就是个精确查询,跟【书名】一样 ,它就是文本字段。查询准则如下: Like
15、 IIf(IsNull(Forms!存书查询窗体 !类别),*,Forms!存书查询窗体!类别 ) 【作者】 :跟【书名】一样 ,它就是文本字段。我也打算用模糊查询。查询准则如下: Like IIf(IsNull(Forms!存书查询窗体 !作者 ),*,* & Forms!存书查询窗体 !作者 & *) 【出版社】 :跟【类别】的情况完全一样。查询准则如下: Like IIf(IsNull(Forms!存书查询窗体 !出版社 ),*,Forms!存书查询窗体 !出版社 ) 【单价】 :就是一个数字字段 ,我在这里准备让用户可以查询“1、5 元6、5 元”这样的范围。查询准则如下: Betwe
16、en IIf(IsNull(Forms!存书查询窗体!单价开始 ),0,Forms!存书查询窗体!单价开始 ) And IIf(IsNull(Forms!存书查询窗体 !单价截止 ),5000,Forms!存书查询窗体 !单价截止 ) BETWEEN AND: 就是查询符合某个范围之内的值所需的条件格式。“BETWEEN 1 AND 5 ”相当于“【字段】 1 AND 【字段】 5” 。根据前面讲解的IIF 的内容,我用一个表格来解释一下各种情况下这个式子的实际结果 ,便于大家理解 :(0 与 5000就是我事先在条件中设定的最小值与最大值) 单价开始 的值单价截止 的值整个式子的实际结果空空
17、BETWEEN 0 AND 5000 精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 9 页,共 23 页 - - - - - - - - - - ACCESS 窗体查询实例1、5 空BETWEEN 1 、5 AND 5000 空20 BETWEEN 0 AND 20 1、5 6、5 BETWEEN 1 、5 AND 6、5 【进书日期】:就是一个日期型字段 ,我在这里准备让用户可以查询 “#2001-5-1#2002-5-1#”这样的范围。查询准则如下: Between (IIf(IsNull(Form
18、s!存书查询窗体!进书日期开始),#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、存书查询子窗体
19、、Requery 这句就是关键End Sub REQUERY:就是用来重新查询控件的数据源,这样可以刷新子窗体显示的记录。对于记录源就是表或查询的控件如窗体、列表框、组合框等经常用 Requery方法来刷新显示内容。2.2 清除按钮有了查询按钮的代码之后,大家就可以自己测试查询的效果了。不过,每次想换一个查询的条件时要清除上一个条件输入的东西,有时候比较麻烦。我们再来设计一个清除条件的按钮 ,控件名称就是“ cmd 清除” ,放在查询按钮的下面。按钮的代码如下 : Private Sub cmd清除 _Click() 下面这些控件的值要清空 Me、书名 = Null Me、类别 = Null
20、Me、作者 = Null Me、出版社 = Null Me、单价开始 = Null Me、单价截止 = Null Me、进书日期开始 = Null Me、进书日期截止 = Null Me、存书查询子窗体、Requery 清空之后一样要重新查询精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 10 页,共 23 页 - - - - - - - - - - ACCESS 窗体查询实例End Sub 2.3 打印按钮有了查询结果 ,想打印出来 ,很简单。由于报表的记录源就就是“存书查询”,所以在查询里设计的条件会
21、直接在报表里体现出来。我们只要用按钮向导制作一个预览报表的按钮就可以了。我们把这个按钮放在子窗体下面的右边。控件名称就是“cmd 预览报表”。由于完全就是采用向导制作的,不需修改代码 ,所以我就不在这里列出代码了。2.4 导出 EXCEL 按钮如果您觉得ACCESS 的报表边框太难瞧 ,或者您想在报表上加上一些说明什么的。您可能更愿意把数据导出到EXCEL 里进行再加工。为了初学者容易理解 ,我打算用一个宏来解决这个问题。宏的设计如下图: 现在,宏里“输出文件”为空 ,运行时会自动跳出对话框让您选择保存目录与文件名。如果您想保存在数据库所在目录下的“查询结果、xls”里,可以在“输出文件”一栏
22、里填入 : =currentproject、查询结果、 xls 把这个宏存为“导出查询数据宏” 。然后再在窗体里加入按钮。当按钮向导出现后,直接取消。在按钮的属性页里,先把按钮名称改为“ cmd 导出” ,在按钮的“单击事件”里直接用下拉框选择“导出查询数据宏” ,如下图。这样就不必编写代码了。精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 11 页,共 23 页 - - - - - - - - - - ACCESS 窗体查询实例3. 增加统计功能经常有人需要在主窗体上显示符合查询条件的记录总数,以及子窗
23、体中某一字段的合计。所以 ,我们也准备在主窗体上增加记录总数与单价的合计。3.1 子窗体上的设计单独打开子窗体的设计模式,在窗体页脚部分拉出一段窗体; 在上面增加两个文本框 :一个就是“ txt 计数”,控件来源 =Count(*), 另一个就是“txt 单价合计” ,控件来源 =Sum(单价); 在子窗体的窗体属性中设置:浏览按钮否 ,记录集类型快照 (快照的运行速度快,占用内存少 ,但不能编辑更新 ,正适合我们的需要 ); 精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 12 页,共 23 页 - -
24、 - - - - - - - - ACCESS 窗体查询实例3.2 主窗体上的设计在子窗体下面的地方设计两个文本框“计数”与“合计”,把它们的标签改为“符合条件记录数 :”与“单价合计 :”; “计数”文本框的控件来源=存书查询子窗体 、Form、txt 计数,“合计”文本框的控件来源 =存书查询子窗体 、Form、txt 单价合计 ; 由于主窗体上的这两个文本框就是自动计算的,为了区别 ,设置它们的就是否有效否 ,就是否锁定就是 ,背景颜色深灰色。4. 方法总结现在,整个窗体就已经完成了。大家可以使用各种条件组合来测试一下窗体的效果。4.1 本方法优点在查询中加入条件这种方法比较简单,只要在
25、查询中设计好各字段的条件,那么窗体中的代码就非常少,而且在打印报表与导出数据方面也很容易设计,比较适合初学 ACCESS的人使用。精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 13 页,共 23 页 - - - - - - - - - - ACCESS 窗体查询实例4.2 本方法缺点对查询中的数据有限制,所有设计了条件的字段中必须就是每条记录都有数据。即使您在窗体中并没有在这个字段对应的文本框中输入条件。举例来说 ,假设您在表“ tb 藏书情况”中 ,把【书籍编号】 =16 对应的这本书的作者或单价删掉
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 2022 ACCESS 窗体 查询 实例
![提示](https://www.deliwenku.com/images/bang_tan.gif)
限制150内