Ms access 如何跟踪正在运行的过程

Ms access 如何跟踪正在运行的过程,ms-access,ms-access-2010,Ms Access,Ms Access 2010,问题: 有没有一种方法可以跟踪在表单打开期间发生的对sub和函数的所有调用(有点像历史上的“调用堆栈”)?我对在填充控件的查询中调用的函数不感兴趣,只对表单或控件级别的函数感兴趣 背景: 我的表单加载时间比我认为的要长得多。我认为一些事件过程会多次运行,以响应重新查询的控件和调用的特定“点击”过程 我在窗体的VBA中的每个子函数和函数的开头插入了以下代码: sProcList = sProcList & "lstContacts_Click" & nl 其中: sProcLi

问题:
有没有一种方法可以跟踪在表单打开期间发生的对sub和函数的所有调用(有点像历史上的“调用堆栈”)?我对在填充控件的查询中调用的函数不感兴趣,只对表单或控件级别的函数感兴趣

背景:
我的表单加载时间比我认为的要长得多。我认为一些事件过程会多次运行,以响应重新查询的控件和调用的特定“点击”过程

我在窗体的VBA中的每个子函数和函数的开头插入了以下代码:

sProcList = sProcList & "lstContacts_Click" & nl
其中:

  • sProcList
    是一个全局字符串变量
  • “lstContacts\u Click”
    是子/函数的字符串名称
  • nl
    在功能上是
    vbCRLF
当我在表单完全打开后检查变量时,存储过程列表如下:

Form_Open
ChangeSortOrder 1
lstContacts_Click

这就是我想要发生的,但我不相信这是正确的。我不知道更好的方法。

因为性能是一个问题,所以您需要一个更强大的工具,不仅可以跟踪子例程名称,还可以跟踪在这些子例程中花费的时间。这将导致您找到最大的违规者,然后您可以通过在这些例程中的代码段周围添加计时器来磨练。 几年前,我被雇来修复一个新开发的Access数据库的性能,该数据库已交付到70多个国家,但在某些条件下有大约2分钟的响应时间。 简单地说,我做了以下工作(我将跳过完整的描述): 1.创建了一个表,其中包含存储“开始或结束”模块名称、子例程、日期、计时器、已用时间、字节数、接收、I/O等的字段。 2.设计了一个可以打开所有包含代码(表单、报表、模块)的表单;提供选择所需对象的能力。 3.除非排除,否则代码会自动插入子例程的顶部,以记录“开始”记录,并在可以退出的地方记录“结束”。表单足够智能,可以自定义代码以捕获对象名和子例程名。 4.添加了一个子例程来处理开始/结束记录并计算时间、字节和I/O。 作为一个简单的解决方案,您可以: 1.添加子例程StartTimer变量以保存计时器 2.在Sub的顶部,将计时器保存到StartTimer 3.添加Debug.print“Start XYZ”和StartTimer 4.在退出点Calc Timer-StartTimer和debug.print运行时间。 5.也可以将行写入某个文本文件