Cha*_*ger 3 ms-access vba access-vba
由于我处于开发模式,我的前端需要大量更新.这是我在用户尝试打开前端时检查版本的功能:
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
Run Code Online (Sandbox Code Playgroud)
我需要以每30分钟运行一段代码,而前端是打开的,以检查是否有可用于上传的新前端版本.然后我会通知用户,关闭数据库,并更新到新版本.现在,数据库打开时总是会发生版本更新.如何才能做到这一点?
谢谢.
MS Access程序员使用了一个老技巧.在数据库启动时使用autoexec宏打开隐藏的表单.然后,您可以使用Form_Timer事件来触发您经常运行的任何代码.
该TimerInterval窗体属性使用毫秒,所以你可以手动将其设置为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
Run Code Online (Sandbox Code Playgroud)
*注意:TimerInterval在加载事件中设置也允许您在开发时将其设置为0(有效地将其关闭).我不希望你需要30分钟的计时器,但是当你每1/4秒运行一次时,表单计时器在开发数据库应用程序中的其他位置时会很麻烦.