加快access2007(4)
时 间:2009-03-05 16:10:06
作 者:戴羽 ID:204 城市:广州
摘 要:很多时候,我们需要加快Access数据库。这篇文章讲述了使用数据可以怎样使得这个需求更加受到关注。这篇文章还探究了Access 2007 ACCDB一个叫做TempVars的特性。
正 文:
图6 -保存到UserObjects日志表中的数据
添加日志宏到你的报表中
要创建报表的一个日志入口,所要做的和为表单所做的一样。在设计视图中打开报表,显示属性面板,找到Close Event,这一次选择mcrLogUsage.LogReport。
找出某对象被使用了多少次
要找出一个对象被使用了多少次,建立一个具有以下SQL语句的查询。
Select ObjectName, ObjectType, Count(OpenTime) AS NoTimes
FROM UserObjectLogs
GROUP BY ObjectName, ObjectType;
如果你运行它,你将得到如下面图7所示的结果。
图7 你的对象使用总计
软件安装总结
这是你找出你最常用的表单和报表所需要的所有东西。然后如果你需要加快一些表单和报表,那么集中于那些最常被使用的。记住,子表单和子报表不会包含进这个日志中。
技术(和兴趣)细节
对Access 2007的许多改进都是旨在制作很好的、可下载的模板(如图1中所示)。因此在宏方面有许多创新来创建可以自由传送VBA代码的数据库模板。使其发生的最重要的一个改变是一个叫做TempVar的新对象。让我们看看在这个数据库中怎样使用TempVar。
在模块logObjects_FXL12中,你将看到提取所关注的最后一个表单或报表并找出用户Windows帐户的代码。然后这些结果将放到3个不同的TempVar中。然后会打开一个使用这些TempVars的查询来插入一个新记录到我们的用户日志表中。
Option Compare Database Option Explicit Public Function LogFormUsage() On Error Resume Next TempVars.Add "ObjectName", Screen.ActiveForm.Name TempVars.Add "ObjectType", "3" Call LogUsage Exit Function End Function Public Function LogReportUsage() On Error Resume Next TempVars.Add "ObjectName", Screen.ActiveReport.Name TempVars.Add "ObjectType", "4" Call LogUsage Exit Function End Function Public Sub LogUsage() On Error Resume Next TempVars.Add "WindowsAccount", User_FX DoCmd.SetWarnings False DoCmd.OpenQuery "qryUpdateLogs" DoCmd.SetWarnings True Exit Sub End Sub |
注意:如果你仔细地看了这个代码,你会看到一个叫做User_FX的函数,它提取Windows用户帐户。这个代码在下载的数据库中。
TempVars与全局VBA变量相比较
TempVars在查询和表单控制和宏以及VBA间转移值方面是很方便的。在2007年之前,你只能使用全局变量来做到这些,而且它还只能用于VBA代码。全局变量的问题,是如果VBA代码失败了,那么你将丢失全局变量中的信息。而TempVars比它强大得多。
使用TempVars的查询
在这个数据库中你将发现添加了叫做qryUpdateLogs的查询。它从TempVars获得它的值,如图8所示。TempVars 真的是一个不用使用docmd.RunSQL或CurrentDB.Execute就将复杂的东西放到一个查询中的简单方法。
图8-这显示了TempVars怎样在对象间移动信息
宏
最后,如果你看看图9,你将看到我所建立的两个添加到你表格和报表Close events中的宏。你将看到这些宏存储在一个宏容器中,而且你还将注意到在顶端有两行宏逻辑,用来阻止任何人让宏自己运行,因为在这种情况下这个代码会失败。
图9
Access软件网QQ交流群 (群号:54525238) Access源码网店
常见问答:
技术分类:
源码示例
- 【源码QQ群号19834647...(12.17)
- Access对子窗体数据进行批...(10.30)
- 最精简的组合框行来源数据快速输...(10.25)
- Access仿平台的多值选择器...(10.24)
- 【Access日期区间段查询】...(10.22)
- 【Access源码示例】VBA...(10.12)
- Access累乘示例,Acce...(10.09)
- 数值8.88,把整数8去掉,转...(10.08)
- 【Access自定义函数】一个...(09.30)
- 【Access选项卡示例】Ac...(09.09)
学习心得
最新文章
- Access判断多条明细的配方或订...(11.30)
- 如何让后台数据库在局域网共享时,且...(11.29)
- 【Access月初月末日期设置方法...(11.29)
- 【Access IIF函数嵌套示例...(11.26)
- Access快速开发平台--使用组...(11.25)
- Access快速开发平台--对上传...(11.22)
- Access快速开发平台企业版--...(11.18)
- 不会用多表联合查询,多表查询没结果...(11.16)
- 【案例分享】主键字段值含有不间断空...(11.16)
- Access快速开发平台--后台D...(11.14)