2016-06-08 7 views
1

Kann mir jemand den Code geben, um eine Sicherungskopie der Datenbank beim Öffnen zu erstellen? Ich weiß, wie Autoexec Makro zu verwenden, ich brauche nur den Code. Der Name der Datenbank ist die Datenbank und wieder die Zeit zurückAutomatische Sicherung auf Eröffnungsdatenbank

Antwort

1

Das Kommando in seinem Namen könnte haben sein:

FileCopy CurrentDb.Name, Replace(CurrentDb.Name, ".accdb", Format(Now(), " yyyymmdd hhnnss") & ".accdb") 

aber man kann nicht die Datei für die Datenbank tun, sich von innerhalb der Anwendung.

Die beste Option wäre, eine Verknüpfung zu erstellen, die ein Skript ausführt, das die Datei zuerst kopiert und dann öffnet.

Nachtrag

ich eine Funktion befindet, die eine komprimierte Backup des aktuellen Projekts erstellen wird:

Option Compare Database 
Option Explicit 

' API call for sleep function. 
Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long) 

Public Function ZipCurrentProject() As Long 

    Dim ShellApplication As Object 

    Dim CurrentProjectFile As String 
    Dim ZipPath    As String 
    Dim ZipName    As String 
    Dim ZipFile    As String 
    Dim FileNumber   As Integer 

    ' File and folder names. 
    CurrentProjectFile = CurrentProject.Path & "\" & CurrentProject.Name 
    ' The path must exist. 
    ZipPath = CurrentProject.Path & "\@dbase_bk" & Format(Now, " yyyy-mm-dd hh.nn.ss") & "\" 
    ZipName = "CCOLearningHub.zip" 
    ZipFile = ZipPath & ZipName 

    ' Create sub folder if missing. 
    If Dir(ZipPath, vbDirectory) = "" Then 
     MkDir ZipPath 
    End If 

    ' Create empty zip folder. 
    FileNumber = FreeFile 
    Open ZipFile For Output As #FileNumber 
    Print #FileNumber, Chr(80) & Chr(75) & Chr(5) & Chr(6) & String(18, vbNullChar) 
    Close #FileNumber 

    Set ShellApplication = CreateObject("Shell.Application") 
    ' Copy the project file into the zip file. 
    With ShellApplication 
     Debug.Print Timer, "zipping started ..." 
     .Namespace(CVar(ZipFile)).CopyHere CVar(CurrentProjectFile) 
     ' Ignore error while looking up the zipped file before is has been added. 
     On Error Resume Next 
     ' Wait for the file to created. 
     Do Until .Namespace(CVar(ZipFile)).Items.Count = 1 
      ' Wait a little ... 
      'DoEvents 
      Sleep 100 
      Debug.Print " ."; 
     Loop 
     Debug.Print 
     ' Resume normal error handling. 
     On Error GoTo 0 
     Debug.Print Timer, "zipping finished." 
    End With 

    Set ShellApplication = Nothing 

    ZipCurrentProject = Err.Number 

End Function 
+0

danke deshalb habe ich die Erlaubnis Fehler bekam ... Jetzt muss ich lernen, wie man zum Erstellen von Shortcut-Skript –

+0

Cool Trick um Backup zu erstellen –

+0

Ich habe getan, was Sie mir gesagt haben und es funktioniert perfekt! 100% gut, aber ich bekomme eine Nachricht jedes Mal, wenn ich Datenbank öffne, dass Skript ein Virus sein könnte und wenn ich dieser Datei traue, habe ich versucht, Warnungen auf falsch einzustellen, aber hat keine Idee funktioniert, wie man diese Nachricht vom Zeigen stoppt? –