2022年Access应用技巧 .pdf
Access应用与技巧 Access应用与技巧 Access 使用宏控制程序 1.创建宏 2.创建宏组 3.在宏中使用条件 4.常用的宏操作 5.一个宏的实例检验口令 6.使用宏的几点说明 Access 使用查询 1.用选择查询建立计算字段 2.用选择查询进行分组数据的计算 3.用交叉表查询体现一组数据的对比 4.在查询中执行计算的注意事项 使用准则进行条件查询 1.指定一个准则 2.指定多个准则 3.运行查询前输入参数 4.从窗体中选择查询的条件 5.常用的准则表达式 建立自由的会计日期的报表 1.认识几个有关时间的函数 2.创建让用户选择日期窗体 3.根据用户选择的日期自动计算期初和期末日期 4.让报表处理期初和期末之间的数据 给你的数据库文件减肥 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 32 页 - - - - - - - - - Access 使用宏控制程序宏是指一个或多个操作的集合,其中每个操作实现特定的功能,例如打开某个窗体或打印某个报表。宏可以使某些普通的任务自动完成。例如,可设置某个宏,在用户单击某个命令按钮时运行该宏,以打开某个窗体。 宏可以是包含操作序列的一个宏,也可以是某个宏组,使用条件表达式可以决定在某些情况下运行宏时,某个操作是否进行。 1.创建宏2.创建宏组3.在宏中使用条件4.常用的宏操作5.一个宏的实例检验口令6.使用宏的几点说明 1. 创建宏 因为宏是在控件发生事件的时候执行的,所以我们需要先创建对象,然后让它的相应的事件指向某个宏。 建立一个窗体,在上面添加一个按钮(如果出现按钮向导的对话框,单击取消)。在属性窗口中选择事件 / 单击右边的生成器按钮,从中选择“宏生成器”,然后给宏起一个名字,比如“宏1”。 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 32 页 - - - - - - - - - 在操作列选择“ OpenForm ”,下面参数中的“窗体名称”选择“窗体1”(当然,在这之前你需要有一个叫做窗体1 的窗体)。 关闭宏的设计视图,保存宏。 这是刚建的按钮的属性窗口,可以看到,单击事件已经指向的宏1。 运行该窗体,当单击按钮时,将打开窗体1。 2. 创建宏组 如果有许许多多的宏, 那么将相关的宏分组到不同的宏组可以有助于方便地对数据库进行管理。 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 32 页 - - - - - - - - - 建立一个窗体,添加4 个按钮(如果出现按钮向导对话框,选择取消)。 按照创建宏的方法,打开宏设计视图,单击工具栏上的“宏名”按钮,为宏添加宏名列。 为 4 个按钮各起一个宏名,并选择一个宏操作。 关闭宏设计视图,保存宏。 “宏名”列用于标识宏。在宏组中执行宏时,Microsoft Access 将执行操作列中的操作和操作列中其“宏名”列为空时立即跟随的操作。 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 32 页 - - - - - - - - - 为了在宏组中执行宏,可以使用这样的格式调用宏:宏组名+“句点” +宏名。 在按钮属性窗口的事件 / 单击的下拉列表框中选择合适的宏名。 运行窗体,单击各按钮后会执行宏组中相应的宏。 3. 在宏中使用条件 在某些情况下, 可能希望仅当特定条件为真时才在宏中执行一个或多个操作。例如,如果在某个窗体中使用宏来校验数据,可能要显示相应的信息来响应记录的某些输入值,另一信息来响应另一些不同的值。在这种情况下,可以使用条件来控制宏的流程。条件是逻辑表达式。宏将根据条件结果的真或假而沿着不同的路径执行。如果这个条件结果为真,则 Microsoft Access 将执行此行中的操作。在紧跟此操作的操作的“条件”栏内键入省略号(),就可以使 Microsoft Access 在条件为真时可以执行这些操作;如果这个条件式的结果为假,Microsoft Access 则会忽略这个操作以及紧接着此操作且在“条件”字段内有省略号()的操作,并且移到下一个包含其他条件或空“条件”字段的操作。 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 5 页,共 32 页 - - - - - - - - - 建立一个窗体,添加一个文本框,命名为“输入数字文本框”,再添加一个确定按钮。 单击确定按钮属性的事件 / 单击右边的生成器按钮,选择建立宏,并为宏起一个宏名,如“宏3”。 上图是宏 3 的设计视图。 这个宏将实现根据用户在 输入数字文本框 中输入的不同数字显示不同的消息。 单击工具栏上的“条件”按钮,为宏添加条件列。 图中第一行表示当 0 输入数字文本框 10 时,显示一个“你输入了一个小于 10 的数字”的消息。 第二行表示当 10 输入数字文本框 20 时时,显示一个“你输入了一个大于 10 并小于 20 的数字”的消息。 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 6 页,共 32 页 - - - - - - - - - 第三行表示当 20 输入数字文本框 =10 大于等于 10 10.5,11,100 Year( 运输日期 )=1999 运输日期为1999 年,不论几月几日1999-1-10 ,1999-12-31 Is Not Null 不为空 ,0,(或任何值) Like *国* 字符串任何位置含有“国”字 张国庆,李爱国 建立自由的会计日期的报表Microsoft Access 的报表提供按日期分组的统计,可是只能是完整的年、月、日等,也就是说比如要统计一个月的数据就必须是从月初到月底。 我们编写程序, 有许多是工作中的统计系统,而单位的各项统计又以会计日期为准,会计日期不一定从1 日到 31 日,有的公司就是从上个月的26 日到这个月的25 日算一个月,这样用 Access 的报表向导自动生成的报表就不成了。当然,还是我们自己动手实现吧,其实很简单,一学就会。 1.认识几个有关时间的函数2.创建让用户选择日期的窗体3.根据用户选择的日期自动计算期初和期末日期4.让报表处理期初和期末之间的数据1. 认识几个有关时间的函数1.Cdate( 日期表达式)将日期表达式转换成日期类型的数据。 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 25 页,共 32 页 - - - - - - - - - 日期表达式是任何可以解释成日期的表达式,包含日期文字, 可以看作日期的字符串以及从函数返回的日期。 比如:myDate = CDate(99-5-20) ,这样的日期表达式必须加双引号,否则结果不可预料。 CDate 依据系统上的区域设置来决定日期的格式。如果提供的格式为不可识别的日期设置,则不能正确判断年、月、日的顺序。 2.Now()返回当前计算机系统设置的日期和时间。 3.Year( 日期表达式)返回表示年份的整数。 比如:Year(00-6-15) = 2000 4.Month( 日期表达式)返回 1 到 12 之间的整数,表示一年中的某月。 比如:Month(00-6-15) = 6 5.DateAdd(interval, number, date)返回一个日期,这一日期加上了一段时间间隔。可以用 DateAdd 来计算距今天为三十天的日期;或者计算距现在为 45 分钟的时间。 DataAdd 函数参数 参数 说明 interval 字符串表达式,是所要加上去的时间间隔的单位。 number 数值表达式,是要加上的时间间隔的数目。其数值可以为正数(得到未来的日期),也可以为负数(得到过去的日期)。 date 日期表达式,这一日期还加上了时间间隔。 interval 参数设定值 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 26 页,共 32 页 - - - - - - - - - 值 说明 yyyy 年 q 季 m 月 y 一年的日数 d 日 w 一周的日数 ww 周 h 时 n 分钟 s 秒 比如: DateAdd(d,10,2000-6-18) = 2000-06-28 DateAdd(m,-1,2000-6-18) = 2000-05-18 2. 创建让用户选择日期窗体创建一个窗体,添加以下控件:一个“年”组合框,一个“月”组合框,一个“开始日期”文本框,一个“结束日期”文本框。如果添加组合框时出现控件向导,取消向导。 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 27 页,共 32 页 - - - - - - - - - 把“年”组合框的数据属性设置如上图,这样用户就只能选择1999-2002 年,当然还可以再增加年份。默认值为当前日期的年份。 和“年”组合框类似,把“月”组合框的数据属性设置如上图,这样用户就只能选择 1-12 月。默认值为当前日期的月份。 3. 根据用户选择的日期自动计算期初和期末日期 在“开始日期”文本框的控件来源处填写: =DateAdd(m, -1, CDate(年 & - & 月 & -26)名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 28 页,共 32 页 - - - - - - - - - 刚才学到的函数就用上了,这是个嵌套表达式,CDate( 年 & - & 月 & -26) 表示用户选择的日期的26 日,整个表达式表示用户选择的日期前一个月的26 日。这里的“年”和“月”都加上了 ,表示它们是控件。在“结束日期”文本框的控件来源处填写: =CDate( 年 & - & 月 & -25)表示用户选择的日期的25 日。这是窗体运行的效果,开始日期和结束日期是随着年和月的变化而随时更新的。 4. 让报表处理期初和期末之间的数据 设计一个报表, 在它的记录来源里选择你的表或查询,在其中涉及到日期的字段填写准则: Between Forms!选择日期 ! 开始日期 And Forms!选择日期 ! 结束日期 ,这样报表就会只处理在“开始日期”和“结束日期”之间的数据了。最后,再为你窗口添加一个启动报表的命令按钮,就大功告成了!下图是一个报表运行的实例 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 29 页,共 32 页 - - - - - - - - - 这个报表的10 月份,实际是9 月 26 日至 10 月 25 日 给你的数据库文件减肥在数据库的设计过程中经常要添加、删除数据库对象, 这会使数据库内部留有许多碎片,不能有效地利用磁盘空间,文件会逐渐增大。这有点象文件系统经过多次的增删操作,会导致文件碎片,浪费磁盘空间,而且读写效率降低。 你可以用 Access 提供的工具来压缩数据库,它将重新安排数据库文件在磁盘中保存的位置,并释放磁盘空间,通常文件的容量会缩小成原来的几分之一。 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 30 页,共 32 页 - - - - - - - - - Access 内置了压缩数据库的功能 但 Access 文件的增大十分夸张,它可能会让文件增大十倍,让它臃肿地呆在你的硬盘里。这好象是微软的通病。你可以打开一个Word文件,添加几个空格再把它们删了(实际文件的内容没有改变),然后保存,你会发现它比刚才大了些,比如一个45k的文件经过几次这样的更改后文件大小变成49.5k58.5k68.5k,实在不知道往文件里面又存了些什么。所以我们有理由怀疑 Access 数据库压缩的效果。 一年以前我编了一个统计系统,用了大概3 个月,几乎每天都在修改,几天就压缩一次,最后这个 Mdb 文件有20M大,即使是 Mde 文件也有8M多,我乐坏了,以为自己也能设计大型程序了。今年这个程序要升级,可是源程序让我弄丢了(心疼呀),于是下定决心,重新编了一个。功能几乎没有变,最后的 Mdb 文件大小只有2M多,我的天!简直不敢相信!原来 Access 文件改动得越多压缩得越多文件就越大,什么逻辑!还有,如果你的 Mdb 文件太大了,可以建立一个新的空数据库,把原来的数据库全部内容都导入到这个新数据库里,再看看,文件一定小了许多。我做了一个实验,一个 640k 的 Mdb 文件, 压缩数据库后变成240k,再建一个新数据库,把它全部导入, 就只有 60k 了。 当然,不论用上面什么方法,Mdb 文件还是非常松散的,用 Winzip 还能把它压缩好几倍,所以,如果你要把程序妹给朋友,记得最后还要用 Winzip 压缩,才不会浪费你的电话费。 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 31 页,共 32 页 - - - - - - - - - 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 32 页,共 32 页 - - - - - - - - -