Datenbankkomprimierung & reparatur automatisieren?

Hallo Experten,

ich bin gerade ein wenig am grübeln…
ich will gerade ein Makro erstellen. Dieses Makro soll die Datenbank aufräumen und reparieren. Das soll automatisch geschehen, damit sie auch immer auf einem angenehmen mass bleibt. Nachdem die Datei aber eben meine Obhut verlässt sollte sie irgendwie „selbstwartend“ sein…
deswegen hatte ich mir vorgestellt ein Makro zu erstellen, das das übernimmt…

ok - also Makro Neu und unter
AusführenBefehl
gibt es auch die Punkte:
DatenbankReparieren und
DatenbankKomprimieren

also dachte ich klasse - benutz doch das…
wenn ich dann das Makro aber starten will gehts nicht… Die Datenbank muss geschlossen sein und ich soll über das Menü gehen… o_O geht aber nicht weil ich das Menü noch ausblenden will…
Wozu gibt es diesen Befehl dann? Ich hab auch versucht direkt davor die Datenbank zu schliessen und darauf gehofft, dass er danach noch weiss was er komprimieren soll aber fehlanzeige - es wird nur geschlossen…

Was kann ich machen? Gibt es eine Möglichkeit so ein „selfcleaning“ script zu erstellen?

Danke!
Munich

Hallo MunichFreak!

ich bin gerade ein wenig am grübeln…
ich will gerade ein Makro erstellen. Dieses Makro soll die
Datenbank aufräumen und reparieren. Das soll automatisch
geschehen, damit sie auch immer auf einem angenehmen mass
bleibt. Nachdem die Datei aber eben meine Obhut verlässt
sollte sie irgendwie „selbstwartend“ sein…
deswegen hatte ich mir vorgestellt ein Makro zu erstellen, das
das übernimmt…

Da hilft nur eins: Baue Dir eine separate Datenbank (oder ein eigenes Programm/Batch), welches nur als „Startroutine“ dient. Diese kann das Programm reparieren und komprimieren, dann starten und sich selbst beenden.

Als Alternative (da oft nur die Daten größer werden): Trenne Programm und Daten (sollte man eh machen, weil dann Programmupdates einfacher sind), trenne beim Programmstart ggf. die Verknüpfungen zu den Tabellen, komprimiere die Datenbank und stelle die Verknüpfung wieder her.

Gruß, Manfred

Hallo MunichFreak,

ich stand vor kurzem vor demselben Problem. Der Befehl, den du meinst ist dazu gedacht, dass man von „aussen“ eine Datenbank komprimiert (und (be)reinigt). Was man aber machen kann, man kann den Menüaufruf automatisieren.

Dieses Script habe ich dazu gefunden:
CommandBars(„Menu Bar“).Controls(„Tools“).Controls(„Database Utilities“).Controls(„Compact and repair database…“).accDoDefaultAction

Ich kann mich erinnern, dass ich ein
docmd.domenuitem
verwendet habe, aber da gibt es das Problem, dass man erst noch herausfinden muss, wo das Menü ist. Ist nicht gerade, was ich sauber nennen würde…

Ich such dir morgen heraus, wie ich das gemacht habe…

Gruss, Omar Abo-Namous