WEB开发网
开发学院数据库Access 关注于使用常用对象来加快Access 2007数据库 阅读

关注于使用常用对象来加快Access 2007数据库

 2008-09-05 00:00:00 来源:WEB开发网   
核心提示: FROM UserObjectLogsGROUP BY ObjectName, ObjectType;如果你运行它,你将得到如下面图7所示的结果,关注于使用常用对象来加快Access 2007数据库(4),图7 你的对象使用总计软件安装总结这是你找出你最常用的表单和报表所需要的所有东西,然后如果

FROM UserObjectLogs

GROUP BY ObjectName, ObjectType;

如果你运行它,你将得到如下面图7所示的结果。

关注于使用常用对象来加快Access 2007数据库

图7 你的对象使用总计

软件安装总结

这是你找出你最常用的表单和报表所需要的所有东西。然后如果你需要加快一些表单和报表,那么集中于那些最常被使用的。记住,子表单和子报表不会包含进这个日志中。

技术(和兴趣)细节

对Access 2007的许多改进都是旨在制作很好的、可下载的模板(如图1中所示)。因此在宏方面有许多创新来创建可以自由传送VBA代码的数据库模板。使其发生的最重要的一个改变是一个叫做TempVar的新对象。让我们看看在这个数据库中怎样使用TempVar。

在模块logObjects_FXL12中,你将看到提取所关注的最后一个表单或报表并找出用户Windows帐户的代码。然后这些结果将放到3个不同的TempVar中。然后会打开一个使用这些TempVars的查询来插入一个新记录到我们的用户日志表中。

   OptionCompareDatabase
  OptionExplicit
  PublicFunctionLogFormUsage()
  OnErrorResumeNext
  TempVars.Add"ObjectName",Screen.ActiveForm.Name
  TempVars.Add"ObjectType","3"
  CallLogUsage
  ExitFunction
  EndFunction
  PublicFunctionLogReportUsage()
  OnErrorResumeNext
  TempVars.Add"ObjectName",Screen.ActiveReport.Name
  TempVars.Add"ObjectType","4"
  CallLogUsage
  ExitFunction
  EndFunction
  PublicSubLogUsage()
  OnErrorResumeNext
  TempVars.Add"WindowsAccount",User_FX
  DoCmd.SetWarningsFalse
  DoCmd.OpenQuery"qryUpdateLogs"
  DoCmd.SetWarningsTrue
  ExitSub
  EndSub

注意:如果你仔细地看了这个代码,你会看到一个叫做User_FX的函数,它提取Windows用户帐户。这个代码在下载的数据库中。

TempVars与全局VBA变量相比较

TempVars在查询和表单控制和宏以及VBA间转移值方面是很方便的。在2007年之前,你只能使用全局变量来做到这些,而且它还只能用于VBA代码。全局变量的问题,是如果VBA代码失败了,那么你将丢失全局变量中的信息。而TempVars比它强大得多。

使用TempVars的查询

在这个数据库中你将发现添加了叫做qryUpdateLogs的查询。它从TempVars获得它的值,如图8所示。TempVars 真的是一个不用使用docmd.RunSQL或CurrentDB.Execute就将复杂的东西放到一个查询中的简单方法。

图8-这显示了TempVars怎样在对象间移动信息

关注于使用常用对象来加快Access 2007数据库

最后,如果你看看图9,你将看到我所建立的两个添加到你表格和报表Close events中的宏。你将看到这些宏存储在一个宏容器中,而且你还将注意到在顶端有两行宏逻辑,用来阻止任何人让宏自己运行,因为在这种情况下这个代码会失败。

关注于使用常用对象来加快Access 2007数据库

图9

上一页  1 2 3 4 

Tags:关注 使用 常用

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接