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