【问题标题】:Autobackup access database自动备份访问数据库
【发布时间】:2020-07-12 18:23:46
【问题描述】:

我有这段代码,我从某个地方得到(感谢作者)并进行了一些修改,以便每 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

如何修改路径,以便所有备份文件都进入名为备份的文件夹中 与主后端数据库文件相同的目录?

【问题讨论】:

    标签: vba ms-access


    【解决方案1】:

    替换

    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"
    

    【讨论】:

    • 谢谢古斯塔夫。但是我可能需要在需要在另一台计算机上使用数据库时修改此路径。特别是如果没有驱动器 f:\。有没有办法让系统自己识别路径,这样就不需要一直修改vba代码了?
    【解决方案2】:

    使用 CurrentProject.path 返回使用数据库的位置。

    【讨论】:

      猜你喜欢
      • 2018-06-11
      • 1970-01-01
      • 1970-01-01
      • 2019-09-06
      • 1970-01-01
      • 2022-10-05
      • 2013-01-15
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多