Moin,
ich möchte eine Access Datenbank mit Autoit
nach der Application.CompactRepair-Methode (Access) komprimieren und reparieren.
Könnt ihr mir helfen?
Gruß
Moin,
ich möchte eine Access Datenbank mit Autoit
nach der Application.CompactRepair-Methode (Access) komprimieren und reparieren.
Könnt ihr mir helfen?
Gruß
Hi,
wieso machst du das nicht per VBA? Genau dafür gibts das...
Ja genau!
Ich habe eine Datenbank die ich mit einer GUI per UDF Access.au3 bediene.
Nach dem Löschen von Datensätzen, muss die Datenbank vor dem Hinzufügen neuer Datensätze aufgrund des Autowerts repariert werden.
Das möchte ich natürlich auch per Autoit erledigen. Z.b nach dem Öffnen der Datenbank.
Nur ich kann den VBA Code nicht umsetzen für Autoit.
Dafür sollte eure Hilfe dienen.
Gruß
Zwei mögliche Varianten:
Erste Möglichkeit OHNE Autoit...
Sie können die Datenbankoption Beim Schließen komprimieren auswählen, wenn eine Datenbank automatisch komprimiert und repariert werden soll, wenn diese geschlossen wird.
Hinweis : Das Festlegen dieser Einstellung wirkt sich nur auf die Datenbank aus, die aktuell geöffnet ist. Sie müssen diese Option für jede Datenbank separat festlegen, die automatisch komprimiert und repariert werden soll.
Klicken Sie auf der Registerkarte Datei auf Optionen.
Klicken Sie im Dialogfeld Access-Optionen auf Aktuelle Datenbank.
Aktivieren Sie unter Anwendungsoptionen das Kontrollkästchen Beim Schließen komprimieren.
Zweite Möglichkeit quasi mit Autoit, nämlich mit Hilfe einer ShellExecute (ungetestet, nicht die von MS empfohlene Variante sondern die Kombi mit ShellExecute)...
Geben Sie z. B. Folgendes ein: "C: \Programme\Microsoft Office\Office14\msaccess.exe"
Geben Sie nach dem schließenden Anführungszeichen ein Leerzeichen ein, und geben Sie dann den vollständigen Pfad zu der Datenbank ein, die Sie komprimieren und reparieren möchten. Wenn der Pfad Leerzeichen enthält, schließen Sie den Pfad in Anführungszeichen ein. Geben Sie ein weiteres Leerzeichen ein, und geben Sie dann /compact ein.
Geben Sie z. B. Folgendes ein: "C:\Mein Ordner\Meine Datenbank.accdb" /compact
So funktioniert es mit VBA und Autoit, z.B. für sieben Datenbanken....
Dim $oAccess
$oAccess = ObjCreate("Access.Application")
For $zP = 1 To 7 Step +1
$oAccess.CompactRepair(@ScriptDir & "\Daten" & $zP & ".mdb", @ScriptDir & "\Daten\CompactRepair\Daten" & $zP & ".mdb", False)
FileMove(@ScriptDir & "\Daten\CompactRepair\Daten" & $zP & ".mdb", @ScriptDir & "\Daten" & $zP & ".mdb", 1)
Next