2017-02-22 13 views
0

У меня есть этот код, который я получил где-то (кредит для автора) и немного изменил, чтобы сделать автоматическое резервное копирование моей базы данных каждые 7 дней.Доступ к базе данных Autobackup

Function fMakeBackup() As Boolean 

    Dim Source As String 
    Dim Target As String 
    Dim retval As Integer 

On Error GoTo sysBackup_Err 

    Source = CurrentDb.name 

    Target = "d:\" 
    Target = Target & Format(Date, "mm-dd-yyyy") & " " 
    Target = Target & Format(Time, "hh-mm") & ".accdb" 

    If DateDiff("d", DLookup("[BackupDate]", "WinAutoBackup", "[BckID] =1"), Date) = 7 Then 

    retval = 0 
    Dim objFSO As Object 
    Set objFSO = CreateObject("Scripting.FileSystemObject") 
    retval = objFSO.CopyFile(Source, Target, True) 
    Set objFSO = Nothing 

    DoCmd.SetWarnings False 
     DoCmd.RunSQL "UPDATE WinAutoBackup SET WinAutoBackup.BackupDate = Date();" 
    DoCmd.SetWarnings True 

    MsgBox "Backup successfull. Next auto backup in 7 days" 

    Else 
    Exit Function 
    End If 

sysBackup_Exit: 
Exit Function 

sysBackup_Err: 
MsgBox Err.Description, , "sysBackup()" 
Resume sysBackup_Exit 
End Function 

как я могу изменить путь, так что все резервные копии файлов перейти в папку под названием подпорки внутри же каталоге, что и основной файл базы данных бэкенд?

ответ

0

Заменить

Target = "d:\" 
Target = Target & Format(Date, "mm-dd-yyyy") & " " 
Target = Target & Format(Time, "hh-mm") & ".accdb" 

с этим, где f:\databasefolder это диск/папка держит файл базы данных бэкэнд:

Target = "f:\databasefolder\backups\" 
Target = Target & Format(Now, "yyyymmdd-hhnn") & ".accdb" 
+0

Thx Gustav. Но мне может понадобиться изменить этот путь в любое время, когда мне нужно использовать db на другом компьютере. Особенно, если нет привода f: \. Есть ли способ позволить системе идентифицировать путь самостоятельно, чтобы не было необходимости всегда изменять код vba? – ezybusy

0

Использование CurrentProject.path вернуться, где база данных используется с.

Смежные вопросы