Datenbank öffnen / komprimieren

Alisha Devils

Grünschnabel
Hallo!

Ich müsste ausgehend von meinem Front-End in Access das Back-End (auch Access) komprimieren, da ich mit vielen Daten hantiere und die DB schnell anwachsen würde - weiß vielleicht einer von euch, wie ich das realisieren kann? Danke!
Access-Version: 97

MfG
Alisha
 
So, hab das jetzt mal getestet, also, ich hab den Befehl zum Komprimieren (DBCompact =...) in eine Prozedur vom Button-Klick reingepackt, den Teil unten hab ich als öffentliche Funktion drunter gepackt. Die DAO hab ich auch aktualisiert.
Wenn ich jetzt auf den Button klicke, kommt "Fehler beim Kompilieren, Sub oder Function nicht definiert".
Idee?
 
Hallo,

DBCompact ist kein Befehl sondern eine Funktion. DBCompact enthält eine weitere
Funktion FileExists die auch kopiert werden muss.
Du hast sicher vergessen den kompletten Code einzubringen.

Im Debug Modus bleibt doch VB in der Zeile die den Fehler auslöst
stehen, welche Prozedur steht denn da ?

Jens
 
Stimmt, das mit FileExists hab ich nicht eingebunden - total übersehen. Danke.
Jetzt scheints zu gehen, bzw. es kommt kein Fehler mehr. Das Back-End bleibt allerdings gleich groß, wenn ich es manuell komprimiere wirds kleiner. Hab ich da noch was verplant?
Also, der Pfad stimmt. Woran könnte das noch liegen?
 
Wie rufst du denn DBCompact auf, mit oder ohne Parameter ?

Setze doch mal in der Function DBCompact bei

CompactDatabase BackupPath, TempPath

einen Haltepunkt um zu sehen ob CompactDatabase überhaupt
aufgerufen wird.

Der Ablauf der Function sieht wie folgt aus.

1. Ruhezeit wird geprüft
2. Die alte Backupdatei (deineMDB.mdb.bak) wird gelöscht
3. Datenbank wird umbenannt von *.mdb nach *.mdb.bak
4. CompactDatabase wird aufgerufen wobei *.mdb.bak --> nach *.mdb.tmp komprimiert
wird.
5. Wenn die Kompr. erfolgreich war wird jetzt die *.mdb.tmp mach *.mdb umbenannt,
falls nicht wird die alte BAckupdatei *.mdb.bak wieder zu *.mdb.

Ganz wichtig
Vor dem Komprimieren muss die Verbindung von deinem Prog zur DB geschlossen sein.
Es darf keine *.ldb existieren !!

Jens
 
Das mit DBCompact muss ich noch mal testen (hab die DB grad nicht hier).

Hm, eine ldb-Datei existiert, da die Tabellen des Back-Ends in mein Front-End eingebunden sind... *kopfkratz* Kann ich die Verbindungen mit VBA erstellen und dann vor dem Komprimieren wieder löschen?
 
Zurück