ник: K@S
Можно сделать так при закрытии базы создается резервная копия.
Создаем модуль.
Option Compare Database
Public Declare Function NSA_API_CopyFile Lib "kernel32.dll" Alias "CopyFileA" (ByVal lpExistingFileName As String, ByVal lpNewFileName As String, ByVal bFailIfExists As Long) As Long
Public Declare Function NSA_API_DeleteFile Lib "kernel32.dll" Alias "DeleteFileA" (ByVal lpFileName As String) As Long
Sub TEST_NSA_API_CopyFile()
Dim RetVal As Long ' возвращаемое значение
' Копируем файл
RetVal = NSA_API_CopyFile("C:\baza.mdb", "C:\rezerv\baza.mdb", 1)
If RetVal = 0 Then ' не получилось
Debug.Print "Копирования не произошло -- C:\baza.mdb."
Else ' получилось
Debug.Print "Копирование прошло успешно."
End If
End Sub
Sub TEST_NSA_API_DeleteFile()
Dim RetVal As Long ' возвращаемое значение
RetVal = NSA_API_DeleteFile("C:\rezerv\baza.mdb")
If RetVal = 0 Then ' не получилось
Debug.Print "Удаление не произошло."
Else ' получилось
Debug.Print "Удаление прошло успешно."
End If
End Sub
На закрытие вешаем.
Private Sub КнопкаВыход_Click()
On Error GoTo Err_КнопкаВыход_Click
TEST_NSA_API_DeleteFile
TEST_NSA_API_CopyFile
SetOption "Auto Compact", True
DoCmd.Close
Exit_КнопкаВыход_Click:
Exit Sub
Err_КнопкаВыход_Click:
MsgBox Err.Description
Resume Exit_КнопкаВыход_Click
End Sub