【问题标题】:Measuring query processing time in Microsoft Access在 Microsoft Access 中测量查询处理时间
【发布时间】:2011-12-25 22:50:20
【问题描述】:

我得到了这段代码,用于测量 Access 数据库中查询的时间。每次我尝试运行它时,都会出现语法错误,并突出显示 MyTest() 行。

Option Compare Database

Option Explicit

Private Declare Function timeGetTime _
Lib "winmm.dll" () As Long
Private mlngStartTime As Long

Private Function ElapsedTime() As Long
ElapsedTime = timeGetTime() - mlngStartTime
End Function

Private Sub StartTime()
mlngStartTime = timeGetTime()
End Sub

Public Function MyTest()

Call StartTime
DoCmd.OpenQuery "Query1"
DoCmd.GoToRecord acDataQuery, "Query1", acLast

Debug.Print ElapsedTime() & _

Call StartTime
DoCmd.OpenQuery "Query2"
DoCmd.GoToRecord acDataQuery, "Query2", acLast

Debug.Print ElapsedTime() & _
End Function

【问题讨论】:

    标签: ms-access vba ms-access-2010


    【解决方案1】:

    这是另一种选择(旧的 VB6/VBA - 不是 VB.Net 语法)。

    关键建议:“_”字符是“续行”。老实说,我认为您不希望在您使用它们的大多数地方使用它们。

    恕我直言...

    Option Explicit
    
    Private Declare Function timeGetTime Lib "winmm.dll" () As Long
    Private startTime, endTime As Long
    
    Private Function elapsedTime(t1, t2 As Long) As Long
      elapsedTime = t2 - t1
    End Function
    
    Public Function MyTest()
    
      startTime = Now
      ' << do stuff >>
      endTime = Now
      MsgBox "Elapsed time=" & elapsedTime(startTime, endTime)
    
    End Function
    
    Private Sub Command1_Click()
      Call MyTest
    End Sub
    

    已编辑。

    【讨论】:

    • +1 API 调用和单独的经过时间函数不是必需的,但我喜欢这种方法。
    【解决方案2】:

    在这两行

    Debug.Print ElapsedTime() & _
    

    您在行尾使用字符串连接字符&amp; 和行继续字符_,即使该语句不会在下一行继续。所以,要么

    1. 继续下一行的语句,例如

      Debug.Print ElapsedTime() & _
          " milliseconds"  ' or whatever unit is returned by your ElapsedTime call
      

    2. 删除不需要的代码:

      Debug.Print ElapsedTime()
      

    PS:欢迎来到 StackOverflow。请获取一本关于 VBA 开发的好书并阅读它。可以在这里问基本问题,但是“请修复我找到的这段代码,因为我不了解该语言的基础知识,也没有时间学习它”类型的问题是皱眉并可能被关闭。

    【讨论】:

    • 请在您的系统上尝试一下,因为我是 VBA 新手
    • @EmmanuelAsogwa:不,抱歉。 SO 上的人很乐意帮助您解决具体问题并分享知识,但我们不会为您完成工作并为您调试代码。如果您需要,请考虑付费 IT 咨询服务。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-08-07
    • 2016-06-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多