access tempvars 宏_加快access2007(4)

时 间:2009-03-05 16:10:06

作 者:摘 要:很多时候,我们需要加快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交流群(群号:39785885)

Access源码网店

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值