加快access2007(4)-小龙女
Access软件网QQ交流学习群(群号码198465573),欢迎您的加入!
首页 >技术文章> Access2007


加快access2007(4)

发表时间:2009/3/5 16:10:06 评论(3) 浏览(6564)  评论 | 加入收藏 | 复制
   
摘 要:很多时候,我们需要加快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群(群号:198465573)
 
 相关文章
加快access2007(1)  【戴羽  2009/3/5】
加快access2007(2)  【戴羽  2009/3/5】
加快access2007(3)  【戴羽  2009/3/5】
常见问答
技术分类
相关资源
文章搜索
关于作者

小龙女

文章分类

文章存档

友情链接