《ACCESS窗体查询实例.docx》由会员分享,可在线阅读,更多相关《ACCESS窗体查询实例.docx(20页珍藏版)》请在优知文库上搜索。
1、书目一 .概述2二 .制作主/子窗体的步骤41 .利用向导制作主窗体42 .利用向导设计子窗体5三 .查询方法1:在查询中加入条件61 .设计查询62 .设计按钮及代码82.1查询按钮82.2清除按钮92.3打印按钮92.4导出EXCE1.按钮93 .增加统计功能101 .1子窗体上的设计103 .2主窗体上的设计104 .方法总结104. 1本方法优点105. 2本方法缺点10四 .查询方法2:用VBA生成窗体筛选条件121 .按钮代码设计121. 1查询按钮122. 2清除按钮143. 3预览报表按钮154. 4导出按钮165. 5CheckSubformCount子程序172 .方法总结
2、17五 .主子窗体交叉表查询实例181 .按钮设计181. 1查询按钮182 .报表设计193 .方法总结20.概述作为数据管理程序,统计和查询功能是特别重要的。否则,就和电子表格没有区分了。所以,在每个ACCESS程序中都不行能缺少查询的功能。本文的目的是由浅入深的介绍几种最常用的利用主/子窗体来实现查询的方法,使初学者和有确定VBA基础的人可以更好的运用窗体查询这种手段。附件中的窗体“常用窗体查询O.MDB”,仅包含3个数据表、1个查询和以这个查询为数据源的报表。是为了大家依据后面学习的内容作练习用的。我们先看查询中的数据:书籍编号书名类别作者出版社单价进书日期22CHIP-O1-08报刊
3、电子计算机及外部设备期刊社电子计算机及外部设备16.802019-9-2825电脑新时代-6光盘光盘UNKNOWN电脑新时代5.002019-7-827学电脑-7光盘光盘UNKNOWN人民邮电5.002019-7-1328CHIP-02-07盘光盘电子计算机及外部设备杂志社电子计算机及外部设备5.002019-7-1316MCSE学习指南书籍SyngressMedia公司人民邮电62.002019-9-2817局域网原理及架设技术内幕大公开书籍蔡昌均中国青年69.002019-9-2819AccessVBA基础籍EvanCallahan人民邮电39.002019-9-2820中文版Access
4、2019一册通书籍赵琳等人民邮电42.002019-9-2821VISUA1.BASIC5.O教程书籍SteveBrown电子工业28.002019-9-2823中文版VisualBasicS.0程序员指南书籍Iiiicrosoft中国青年70.002019-9-2824Access中文版开发指南书籍AIisonBalter人民邮电128.002019-2-1629Access2019数据库系统开发实例导航书籍桂思强中国铁道25.002019-3-1030中国名陵一一集中华古代名陵之大成书籍罗哲文等百花文艺14.002019-5-2031边缘部落一一福音谷书籍林茨(撰文摄影)河北教化27.00
5、2019-5-20为了比较有代表性,这个查询中包含多种字段类型:数字类型:【书籍编号】、【单价】字符类型:【书名】、【类别】、【作者】、【出版社】日期类型:【进书日期】在多条件查询中,我们会运用除了【书籍编号】之外的其他字段作为查询条件。其实,在下面介绍的窗体查询方法中,有些代码或思路也可以应用在其它窗体查询方法中,你对各种代码、方法和思路越娴熟,就越能充分发挥它们的作用。这篇文章我是从4月初起先构思,到5月中旬起先动笔,花费两周时间写成,里面包含了我对ACCESS窗体查询所积累的阅历,对初学者和有确定VBA基础的人都有针对性的方法。另外,希望其他精通ACCESS的高手提出看法。一制作主/子窗
6、体的步骤1 .利用向导制作主窗体现在的主窗体还太小,要已经以下步骤才能变成我们须要的主窗体(如下图):把窗风光积放大到足以容纳条件输入字段和子窗体,并调整全部控件的字体;把窗体的“记录源”和各控件的“数据来源”都删除(许多初学者很简洁犯的错误就是这里),把类别和出版社改为组合框(因为这些字段的可能值比较少,干脆选择就好,不必让用户输入);更新调整各字段的位置,并增加了两个空文本框和标签放在单价和进书日期后面(因为我准备运用一个范围来作查询条件,而不是一个固定的值,这样比较符合实际;单价后面的两个文本框改名为“单价起先”和“单价截止”,进书日期后面的两个文本框改名为“进书日期起先”和“进书日期截
7、止”;画一个矩形框包居处有查询条件,把矩形框背景设置为常规,背景色为深灰色,特殊样式为凹陷,此时矩形框覆盖了其它控件,要用菜单中“格式”一“置于底层”才能让它们显示出来;在窗体上用向导建立一个按钮,按钮标题是查询,名称是“cmd查询”先不管里面的代码,后面再修改:窗体屈性中“记录选定器”=否,“阅读按钮”=否。2 .利用向导设计子窗体在主窗体中用工具箱中的“子窗体/子报表”对象建立一个子窗体;以存竹查询为记录源,选择全部字段;把子窗体命名为“存书查询子窗体”;在主窗体上删除子窗体的标签,并重新调整子窗体的大小:关闭主窗体的设计视图,单独打开子窗体数据表视图,调整字体和行的大小。现在,我们得到了
8、如下的窗体:现在还没有实际的查询功能,我们在后面要依据所运用的方法,修改窗体并增加一些其他的功能。还有一些小的细微环节要留意,比如:按TAB健后的获得光标的控件的依次要在设计视图下,视图菜单的“TAB键次序”来修改;有些文本框获得焦点后是否要打开输入法,比如输入单价和日期的地方要关闭,输入书名和作者的地方要打开,这些要在控件屈性中设置。.查询方法i:在查询中加入条件这种方法对应的实例数据库是:“常用窗体查询.MI)B,1 .设计查询我们打开“存书查询”设计视图如下:在字段【书名】的准则格内写入:1.ikeIIf(ISNUu(Forms!存书查询窗体!书名&Forms!存书查询窗体!书名&*)加
9、入后的设计视图如下:把这个式子说明一下:1.IKEx是特地用于查询字符型字段的运算符,一般介绍AeCESS的书中都有它的用法。ISNU1.1.(Forms!存书查询窗体!书名)、是用来推断窗体”存书查询窗体”上面的“书名”这个文本框是否是空的。假如文本框是空的,则:ISNU1.1.(Forms!存书查询窗体!书名1.=TRUE(真)假如文本框不是空的,贝小ISNU1.1.(Forms!存书查询窗体!书名D=FA1.SE(假)IIF(EXPR,TRUEPARTtFA1.SEPART)函数、EXPR必要参数。用来推断真伪的表达式。TRUEPART必要参数。假如EXPR为TRUE,则返回这部分的值或
10、表达式。FA1.SEPART必要参数。假如EXPR为FA1.SE,则返回这部分的值或表达式。所以当我们在窗体“存书查询窗体”上面的“书名”里写上“ACCESS,整个式子的结果是:1.IKE*ACCESS*相当于查询全部书名中包含“ACCESS”的书籍,这样可以实现模糊查询。1.ikeIIf(ISNUlI(Forms!存书查询窗体!书名),*,Forms!存书查询窗体!书名&*)1.ikeIlf(lsNulI(Forms!存书查询窗体!书名),*,Forms!存书查询窗体!书名)假如把准则改为上面两句中的句,同样状况下当我们在窗体“存书查询窗体”上面的“书名”里写上“ACCESS”,整个式子的结
11、果是:1.IKEACCESS*1.IKEACCESS相当于查询以“ACCESS”开头的书籍(半模糊查询),或者书名就叫“ACCESS”的书(精确查询)。具体运用那一种形式的查询要依据你的实际状况来修改。当我们在窗体”存书查询窗体”上面的“书名”里什么也没有写,整个式子的结果是:1.IKE*相当于查询全部的有书名的书。在书写查询准则时,Forms!存书查询窗体!书名这样的窗体控件名很难写,这时你可以在准则格内点鼠标右键,选择生成器,出现如下图的窗:在左边的树型列表框里找到控件所在的窗体,在中间列表框出现这个窗体包含的全部控件,双击控件名,就会出现“Forms!存书查询窗体!书名”。我们再把其他几
12、个字段的查询准则写出:【类别】:在窗体上是组合框,所以它确定是个精确查询,跟【书名】一样,它是文本字段。查询准则如下:.ikeIIf(IsNull(Forms!存书查询窗体!类别Forms!存书查询窗体!类别D【作者】:跟【书名】一样,它是文本字段。我也准备用模糊查询。查询准则如下:1.ikeIlf(ISNUU(Forms!存书查询窗体!作者&Forms!存书查询窗体!作者&*)【出版社】:跟【类别】的状况完全一样。查询准则如下:1.ike11f(IsNull(Forms!存书查询窗体!出版社),*,Forms!存书查询窗体!出版社)【单价】:是一个数字字段,我在这里准备让用户可以查询“1.5
13、元6.5元”这样的范围。查询准则如下:BetweenIIf(IsNull(Forms!存书查询窗体!单价起先),0,Forms!存书查询窗体!单价起先)AndIIfdsNull(Forms!存书查询窗体!单价截止),5000,Forms!存书查询窗体!单价截止)BETlfEENANlh是查询符合某个范围之内的值所需的条件格式。“BETWEEN1AND5”相当于字段】1AND【字段】W5”。依据前面讲解的IlF的内容,我用一个表格来说明一下各种状况下这个式子的实际结果,便于大家理解:(0和5000是我事先在条件中设定的最小值和最大值)单价起先的值单价截止的值整个式子的实际结果空空BETWEEN0
14、AND50001.5空BETWEEN1.5AND5000空20BETWEEN0AND201.56.5BETWEEN1.5ND6.5【进书日期】:是一个Fl期型字段,我在这里准备让用户可以查询“#2019-5T#2019-5T#”这样的范围。查询准则如下:Between(Ilf(IsNul1(Forms!存书查询窗体!进书日期起先),#2000TT#,Forms!存书查询窗体!进书日期起先D)And(IIfdsNull(Forms!存书查询窗体!进书日期截止),#2099-12-31#,Forms!存书查询窗体!进书日期截止)在这个式子中,#20007-1#和#2099-12-31#是我设定的两个默认的起先和截止Fl期。假如用户不输入,就运用默认值了。这和前面【单价】的状况是一样的。2 .设计按钮及代码2.1