Das Problem |
Das folgende Skript ist eine Variante des Access-Scripts zur automatischen Komprimierung und Sicherung von Datenbanken. Dieses Skript durchsucht systematisch alle lokalen Festplatten und komprimiert alle .mdb und .mde-Dateien. Auch hier wird das Archivbit vor dem Komprimieren geprüft nach dem Komprimieren gelöscht, damit das Skript einen zweiten Durchlauf schneller absolviert. |
Voraussetzungen |
Zum Komprimieren muss neben dem Windows Scripting Host wieder eine Access 2000-Version oder eine 'kostenlose' Access-2000 Runtime Version (aus dem Office 2000 Developers-Paket) auf dem System installiert sein. |
Bekannnte Probleme |
Wenn das Skript eine Datenbank nicht bearbeiten kann, hält Access an und wartet, bis der Benutzer eine Dialogbox bestätigt. Aus diesem Grunde läuft Access nicht minimiert, sondern in normaler Fenstergröße, aber ohne Fokus. Typische Probleme sind:
|
Das Script AlleAccessDBsKomprimieren.vbs |
Set Shell = CreateObject("WScript.Shell")
Set Access = CreateObject("Access.Application")
Set DateiSystem = CreateObject("Scripting.FileSystemObject")
Set Suche = Access.FileSearch
AccessPfad = """" & Access.SysCmd(9) & "MSACCESS.EXE"" """
On Error Resume Next
For Each LaufWerk In DateiSystem.Drives
If Laufwerk.DriveType = 2 Then
For Each DateiTyp In Array("*.mde", "*.mdb")
Suche.LookIn = LaufWerk.DriveLetter & ":\"
Suche.FileName = DateiTyp
Suche.SearchSubFolders = True
Suche.Execute()
For Each Datei In Suche.FoundFiles
If Access.DBEngine.OpenDatabase(Datei).Updatable Then
With DateiSystem.GetFile(Datei)
If .Attributes And 32 Then
Shell.Run AccessPfad & Datei & """ /compact", 4, True
.Attributes = .Attributes And Not 32
End If
End With
End If
Next
Next
End If
Next
Erstellen des Scripts |
Damit das Script funktioniert, sind folgende Maßnahmen zu treffen:
Das VBS läuft beim ersten Aufruf sehr langsam, weil jede MDB-Datei komprimiert und gepackt werden
muß. Da über das Archiv-Attribut geprüft wird, ob die Datei verändert wurde, ist der Ablauf aber
ab dem zweiten Mal erheblich schneller, da nur noch die geänderten Dateien geprüft werden. |
Weitere Anpassungen |
Die vom Skript bearbeiteten Dateitypen werden in der Zeile |