Позвоните авто компакт после события

У меня есть некоторый код, который прекрасно работает, который сжимает базу данных Access, когда база данных открыта.

Тем не менее, я немного застрял в том, как сделать следующий бит.

Я хочу, чтобы, когда элемент в таблице БД был помечен для архивирования и впоследствии заархивирован, я хочу, чтобы этот код выполнялся почти как AutoExec.

Не могли бы вы предложить лучший способ сделать это?

заранее спасибо

Option Compare Database

Private Sub Form_Timer()
  '==================================================================
  'The Timer event runs this code every minute. It compares your
  'system time with the StartTime variable. When they match, it
  'starts to compact all databases in the DBNames table.
  '==================================================================
  Dim StartTime As String
  ' Set this variable for the time you want compacting to start.
  StartTime = Now()
  ' If StartTime is now, open the DBNames table and start compacting
  If Format(Now(), "medium time") = Format(StartTime, _
          "medium time") Then
     Dim RS As Recordset, DB As Database
     Dim NewDBName As String, DBName As String
     Set DB = CurrentDb()
     Set RS = DB.OpenRecordset("DBNames")
     On Error Resume Next
     RS.MoveFirst
     Do Until RS.EOF
        DBName = RS("DBFolder") & "\" & RS("DBName")
        ' Create a new name for the compacted database.
        ' This example uses the old name plus the current date.
        NewDBName = Left(DBName, Len(DBName) - 4)
        NewDBName = NewDBName & " " & Format(Date, "DDMMYY") & ".mdb"
        DBEngine.CompactDatabase DBName, NewDBName
        RS.MoveNext
     Loop
  ' Close the form, and then close Microsoft Access
  DoCmd.Close acForm, "CompactDB", acSaveYes
  RS.Close
  DoCmd.Quit acSaveYes
  End If

End Sub

0 ответов

Другие вопросы по тегам