'BOF
D E K L A R A T I O N E N
Option Compare Database
Option Explicit
'1.F U N K T I O N
Function strt()
Dim antw%
antw = MsgBox("Soll die Datenbank auf Laufwerk C: gesichert werden ?", vbYesNo + vbQuestion, "DATENSICHERUNG")
If antw = vbYes Then
DoCmd.Minimize
datensicherungC
Else
DoCmd.Quit acQuitSaveAll
Exit Function
End If
DoCmd.Quit
End Function
'2.F U N K T I O N
Function datensicherungC()
Dim verz$
Dim antw%
Dim dbName As String, dbNameKurz As String
Dim fs As New FileSystemObject
Dim fehlerNr As Integer
Const VerzSich = "C:\DB\SICHERUNG\"
alleSchließen
fehlerNr = 0
On Error GoTo fehler
Application.Echo True, "Die Datenbank wird gesichert..."
dbName = Application.CurrentDb.Name
dbNameKurz = fs.GetFileName(dbName)
If FileExists("SICHERUNG", "C:\DB\") = False Then
MkDir "c:\DB\SICHERUNG"
End If
verz = CStr(Month(Date)) & "_" & CStr(Year(Date))
If FileExists(verz, VerzSich) = False Then
MkDir VerzSich & verz
End If
If FileExists(dbNameKurz, VerzSich & verz & "\") = True Then
antw = MsgBox("Soll die vorhandene Datei überschrieben werden ?", vbQuestion + vbYesNo, "Datei ersetzen ?")
If antw = vbYes Then
Kill VerzSich & verz & "\" & dbNameKurz
Else
MsgBox "Datensicherung wurde abgebrochen !", vbInformation, "Vorgang beendet !"
Exit Function
End If
End If
fs.copyfile dbName, VerzSich & verz & "\X_" & dbNameKurz, True
Application.DBEngine.CompactDatabase VerzSich & verz & "\X_"
& dbNameKurz, VerzSich & verz & "\" & dbNameKurz
fs.DeleteFile VerzSich & verz & "\X_" & dbNameKurz, True
Application.Echo True, ""
Exit Function
fehler:
fehlerNr = fehlerNr + 1
If Err.Number = 75 Then
Resume Next
ElseIf fehlerNr <= 5 Then
Resume
ElseIf fehlerNr> 5 Then
MsgBox Err.Number & " -> " & Err.Description
End If
End Function
'3. F U N K T I O N
Sub alleSchließen()
Dim rs As Recordset
Dim frm As Form
For Each rs In CurrentDb.Recordsets
rs.Close
Next rs
End Sub
'4.F U N K T I O N
Function FileExists(Datei$, Optional Verzeichnis) As Boolean
With Application.FileSearch
.FileName = Datei
If IsMissing(Verzeichnis) = False Then
.LookIn = Verzeichnis
Else
.LookIn = CurDir()
End If
.SearchSubFolders = False
.Execute
If .FoundFiles.Count> 0 Then
FileExists = True
Else
FileExists = False
End If
End With
End Function
'EOF
Testen Sie das Modul mit dem Tool Debuggen (Kompilieren der DB).
Sollte ein Fehler auftreten müssen Sie auf die Fehlermeldung hin, Ihre Syntax prüfen bzw. prüfen, ob im Menue Extras --> Verweise alle benötigten Bibliothekendateien (*.dll, ...) geladen sind !
Der Verweis ( Menue Extras --> Verweise ) : Microsoft Scripting Runtime muss geladen sein !
Dann wird dieses Modul abgespeichert und die neu erstellte DB mit
diesem einen Modul unter einem beliebigen Namen abgespeichert.
( z.B AddIn.mdb )
In diesem Modul wird festgelegt, dass die zu sichernde DB im Verzeichnis : C:\DB\SICHERUNG abgelegt werden soll !
Passen Sie diese Einstellungen im Modul an Ihre Bedürfnisse an !
Ich habe das Modul auch als Download für Sie --> AddIn.txt . Sie Öffnen einfach die Textdatei und kopieren alles, was sich in dieser Datei befindet in die Zwischenablage ( einfach String + C klicken ) , dann erstellen Sie ein neues Modul, markieren die Textzeile Option Compare Database und fügen den Text der Zwischenablage ein.
Sollte dieses AddIn unter XP nicht funktionieren, nehmen Sie einfach diesen Code : AIXP.txt .
Jetzt kommt der spannende Teil für diejenigen, die noch nie in die Windows-Registrierung reingeschaut haben :
Öffnen Sie im Explorer das Verzeichnis : WINDOWS
Suchen Sie die Datei : REGEDIT.EXE
Öffnen Sie die Datei mit Doppelklick

Sie sehen hier, wie Sie den Schlüssel : &Datenbank sichern mit dessen Werten anlegen müssen. Statt D:\DB\SYSTEM\ verwenden Sie den Pfad, auf dem sich Ihre AI.mdb befindet.
BESCHREIBUNG:
Suchen Sie den Ordner HKEY_LOCAL_MACHINE
Doppelkick auf diesen Ordner !
Suchen Sie den Ordner Software
Doppelkick auf diesen Ordner !
Suchen Sie den Ordner Microsoft
Doppelkick auf diesen Ordner !
Suchen Sie den Ordner Office
Doppelkick auf diesen Ordner !
Suchen Sie den Ordner 9.0 ( für Access 2000 ) | bzw. 10.0 ( für Access 2002 = Access XP )
Doppelkick auf diesen Ordner !
Suchen Sie den Ordner Access
Doppelkick auf diesen Ordner !
Suchen Sie den Ordner Menu Add-Ins
Doppelkick auf diesen Ordner !
Klicken Sie mit der rechten Maustaste auf den geöffneten Ordner MenuAdd-Ins
Gehen Sie auf das erscheinende Menue Neu und dann auf Schlüssel
Benennen Sie den neuen Ordner in zB. &Datenbank sichern
Klicken Sie mit der rechten Taste auf den neu benannten Ordner &Datenbank sichern
Gehen Sie auf das erscheinende Menue Neu und dann auf Zeichenfolge
Benennen Sie diese neue Zeichenfolge, die auf der rechten Explorerseite erschienen ist in Expression um !
Klicken Sie mit der rechten Taste auf den neuen Schlüssel Expression und tragen Sie im erschienenen Fenster im Feld Wert den Wert --> =strt() <-- (ohne Anführungszeichen !) ein ! ( Dies ruft die erstellte Function strt() auf, die wir oben angelegt haben .)
Erstellen Sie noch einen neuen Schlüssel für den Ordner &Datenbank sichern
Benennen Sie diesen neuen Schlüssel als Library !
Klicken Sie mit der rechten Taste auf den neuen Schlüssel Library und tragen Sie im erschienenen Fenster im Feld Wert den Wert --> C:\DB\PROGRAMM\AddIn.mdb <--
(ohne Anführungszeichen !) ein ! ( Von hier wird also die Function
strt() aus der AddIn Datenbank 'AI.mdb' ausgeführt. )
(Diesen Wert passen Sie bitte Ihren Erfordernissen an : Je nachdem wo
sich Ihre DB befindet, in der das oben erstellte Modul enthalten ist ! )
Speichern Sie die Registrierung ab ( einfach Schliessen ) und schon steht das neue Add In im Access Menue Extras zur Verfügung !
Hier sehen Sie, wie Sie dann aus jeder Datenbank dieses Add In ausführen können:

Sollten Sie sich nicht an die Registry wagen, lassen Sie Access diesen Job übernehmen.
Erstellen Sie eine neue Systemtabelle, die folgenden Namen tragen muss: USysRegInfo !
Haben Sie vor, Ihr als
*.mdb gespeichertes AddIn nach dem fehlerfreien Test in eine *.mde Datenbank umwandeln zu lassen, dann müssen Sie natürlich alle *.mdb Einträge in *.mde umändern !
Soweit die Sicherung auf der Festplatte .
Warum DB ? - Start - Optionen - Struktur - Hilfe - Objekte - Tabellen - Beziehungen - Abfragen - Formulare - Berichte - Seiten - Makros - Module-VBA - Sicherung - Links
Haben Sie die Möglichkeit Ihre Daten auf einem Server abzusichern? Wenn ja, dann können Sie entweder die oben geschilderte Möglichkeit des AddIn nutzen (an das Laufwerk des Servers adaptieren) oder Sie nutzen die Funktion 'Verzeichnisse synchronisieren ' des WinCommanders. Dabei würde ich die aktuelle Version der Datenbank auf der lokalen Festplatte durch 'Datei --> Speichern unter' mit dem aktuellen Datum als Anhang versehen, abspeichern, bevor die Verzeichnisse synchronisiert werden.
Warum DB ? - Start - Optionen - Struktur - Hilfe - Objekte - Tabellen - Beziehungen - Abfragen - Formulare - Berichte - Seiten - Makros - Module-VBA - Sicherung - Links
Warum DB ? - Start - Optionen - Struktur - Hilfe - Objekte - Tabellen - Beziehungen - Abfragen - Formulare - Berichte - Seiten - Makros - Module-VBA - Sicherung - Links
Warum DB ? - Start - Optionen - Struktur - Hilfe - Objekte - Tabellen - Beziehungen - Abfragen - Formulare - Berichte - Seiten - Makros - Module-VBA - Sicherung - Links