2014-05-20 195 views
2

由于我处于开发模式,我的前端需要大量更新。 这是我的功能检查版本,当用户试图在前端的开口道:计时器每30分钟运行一次代码

Public Function FEPath(DBName As String) 

Dim Conn As New ADODB.Connection 
Dim DataConn As New ADODB.Recordset 
Dim Comm As String 
Dim strPath As String 
Dim strDB As String 
Dim strVer As String 
Dim strExt As String 

Comm = " SELECT tblFE.Database, tblFE.Version, tblFE.Extension " & _ 
     " FROM tblFE WHERE tblFE.[Database] = '" & DBName & "';" 

Set Conn = CurrentProject.Connection 
DataConn.Open Comm, Conn, adOpenKeyset, adLockOptimistic 

With DataConn 
    strDB = ![Database] 
    strVer = ![Version] 
    strExt = ![Extension] 

    strPath = "C:\Databases\" & strDB & " " & strVer & strExt 

    .Close 
End With 

Set Conn = Nothing 

我需要以某种方式运行一块每30分钟的代码,而前端是开放的,以检查以查看是否有可用于上传的新前端版本。然后我会通知用户,关闭数据库并更新到新版本。现在,版本更新总是在数据库打开时发生。如何才能做到这一点?

谢谢。

回答

4

有一个MS Access程序员使用的老招。数据库启动时,您可以使用autoexec宏来打开隐藏窗体。然后,您可以使用Form_Timer event来触发您想要经常运行的任何代码。

TimerInterval form property使用毫秒,因此您可以将其手动设置为1800000(1000 * 60 * 30)或使用隐藏窗体的on_load事件来设置它。我通常会选择选项2,以便在代码中拼写出来。

Sub Form_Load() 
    Me.TimerInterval = 1000 * 60 * 30 ' 30 minutes 
End Sub 

Sub Form_Timer() 
    ' check the front end version here 
End Sub 

*注:在负载情况下设置TimerInterval,您还可以将其设置为0(有效地将其关闭),当你正在开发。我不指望你需要一个30分钟的计时器,但是当你每1/4秒运行一次时,形式计时器在开发数据库应用程序中的其他地方时可能会很痛苦。