Hallo,
Zitat:
Im
Access selbst gibt es den Punkt Datenbank komprimieren und reparieren
Dies führt die gewünschte Aktion aus.
Nur weiß ich nicht welches
SQL Statemant dafür notwendig ist.
Es gibt kein
SQL-Statement dafür.
Such einfach mal in Google "compact
access database through
ado".
Das liefert u.a.
1
Auf jeden Fall die englische Seite nehmen
Aber wie mein Vorschreiber schon gesagt hat,
macht es keinen Sinn, eine
DB nach dem Löschen
von "ein paar Daten" zu komprimieren.
Eine
DB ist auf Wachstum ausgelegt.
Durch Löschen entstandene Lücken werden durch die
DB
größtenteils selber wieder mit neuen Daten aufgefüllt.
Und mache das ganze nicht an dem Wort
größtenteils fest.
Dazu ist übrigens auch exclusiver Zugriff notwendig,
was in der Regel nicht der Fall ist.
Ausserdem sollte man vorher eine Sicherheitskopie anlegen.
Zum Komprimieren heisst:
Alle Daten werden auf 4 kB Seiten verteilt.
Eine Seite bekommt immer nur Daten einer Tabelle.
Werden z.B. 6 kB Daten eingetragen, ergibt das u.U. 2 Seiten Belegung,
also 8 kB (2*4 kB). Wird jetzt eines der Daten gelöscht und z.B. 1 kB neu hinzugrfügt,
werden immer noch 2 Seiten benutzt.
es würde aber 1 Seite reichen (3kB + 1kB).
Durch das Komprimieren werden die Daten in eine neue MDB in der optimalen Reihenfolge
(anderes Thema) geschrieben, es wird nur noch eine Seite benötigt (4 kB Daten, 4 kB Seite).
die MDB ist 4 kB kleiner.
Ausserdem werden die Indizes neu erzeugt (die liegen auch in 4 kB Seiten),
was den Speicherverbrauch auch reduzieren kann.
Heiko