2017-02-22 80 views
0

我有這個代碼,我得到了某處(信貸給作者),並修改了一下,以便每7天對數據庫進行一次自動備份。自動備份訪問數據庫

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。但我可能需要隨時修改此路徑,以便在另一臺計算機上使用該數據庫。特別是如果沒有驅動器f:\。有沒有辦法讓系統自行識別路徑,以便不需要總是修改vba代碼? – ezybusy

0

使用CurrentProject.path返回該數據庫正在從使用。