2014-05-20 150 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秒運行一次時,形式計時器在開發數據庫應用程序中的其他地方時可能會很痛苦。