我得到了用于测量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
答案 0 :(得分:2)
这是另一种选择(旧的VB6 / VBA - 而不是VB.Net语法)。
关键建议:“_”字符是“延续线”。老实说,我不认为你在大多数你正在使用它们的地方都想要它们。
... IMHO
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 :(得分:1)
在两行中
Debug.Print ElapsedTime() & _
您正在使用字符串连接字符&
和行尾的行继续符_
,即使该语句未在下一行继续。所以,要么
继续下一行的陈述,例如
Debug.Print ElapsedTime() & _
" milliseconds" ' or whatever unit is returned by your ElapsedTime call
或
删除不需要的代码:
Debug.Print ElapsedTime()
PS:欢迎使用StackOverflow。请获得一本关于VBA开发的好书并阅读它。可以在这里提出基本问题,但“请修复我找到的代码,因为我不知道该语言的基础知识并且没有时间学习它”问题的类型是不满意,可能会被关闭。