DB wird zu 'dick'

Hallo zusammen,

ich habe eine DB die nach jedem benutzen größer wird!

Ich habe sie dann komprmiert, das ging beim ersten mal auf Problemlos!
Dann habe ich sie so eingestellt das sie nach jedem schließen komprimiert wird. So weit so gut.
Am nächsten Tag öffne ich die DB, rufe wie gewohnt meine Daten ab und möchte sie wieder schließen.
Jetzt kommt folgender Fehler:

Tabelle ‚TempMSysAccessObjets‘ ist bereits vorhanden.

Wenn ich dann OK auswähle öffnet er mir meine DB wieder.
Ich habe dann die Funktion rausgemacht um zu sehen ob die komprimierung stattgefunden hat, aber hat sie nicht! Die Datenbank wächst und wächst!

Was kann ich dagegen tun?

Vielen Dank im Vorraus!

Grüße Benni

Hallo, Benni!

ich habe eine DB die nach jedem benutzen größer wird!

That’s life. Oder eher: That’s Access!

Ich habe sie dann komprmiert, das ging beim ersten mal auf
Problemlos!
Dann habe ich sie so eingestellt das sie nach jedem schließen
komprimiert wird. So weit so gut.

Eigentlich genau richig.

Am nächsten Tag öffne ich die DB, rufe wie gewohnt meine Daten
ab und möchte sie wieder schließen.
Jetzt kommt folgender Fehler:
Tabelle ‚TempMSysAccessObjets‘ ist bereits vorhanden.

Ist Access beim Komprimieren abgeraucht? Im Normalfall sollte das nämlich genau so laufen. Nur sollte man es tunlichst vermeiden, Access beim Komprimieren zu stören.

Versuche einfach, die Tabelle manuell zu löschen. Oder lasse ein Reparieren (falls noch vorhanden in Deiner Access-Version; die neueren machen das mit dem Komprimieren zusammen) drüberlaufen. Oder starte Access und Deine Datenbank mit /DECOMPILE. (also z. B. über Start-Ausführen und dann eingeben: C:\Programme…\Access.exe D:\DeinPfad\DeineDB.mdb /Decompile.)

Gruß, Manfred

Hallo Benni,

ich habe eine DB die nach jedem benutzen größer wird!

welche denn? welche Version? Ohne diese Information können wir dir schlecht helfen.

Ich habe sie dann komprmiert, das ging beim ersten mal auf
Problemlos!

nur beim ersten mal Komprimieren, danach nicht mehr?

Dann habe ich sie so eingestellt das sie nach jedem schließen
komprimiert wird. So weit so gut.

sehr gut

Am nächsten Tag öffne ich die DB, rufe wie gewohnt meine Daten
ab und möchte sie wieder schließen.
Jetzt kommt folgender Fehler:
Tabelle ‚TempMSysAccessObjets‘ ist bereits vorhanden.

ok, dann war sie vermutlich abgestürzt

Wenn ich dann OK auswähle öffnet er mir meine DB wieder.

alles wieder ok

Ich habe dann die Funktion rausgemacht

ähm welche Funktion? Du meinst die Möglichkeit des Komprimierens beim Schließen? Hattest du dafür eine eigene Funktion geschrieben?

um zu sehen ob die komprimierung stattgefunden hat, aber hat sie nicht!

wie hast du das geprüft?
Bedenke generell: wenn du die DB komprimierst, wird dein VBA Code DEkompiliert!!
Beim erneuten Aufruf der DB wird dieser wieder kompiliert und vergrößert erst mal die DB, ohne dass du auch nur einen Buchstaben eingegeben hast!!

Die Datenbank wächst und wächst!

eigentlich logisch, denn du fügst i.d.R. ja immer wieder Daten hinzu.

Was kann ich dagegen tun?

keine Daten mehr eingeben. Oder mal deine DB überprüfen mit welchen Daten du diese so mächtig überlastest. OLE - Felder in einer Tabelle sind häufig ein Grund für ein rasches Anwachsen einer DB.

Tipp am Rande:
Trenne IMMER die DB in zwei Teile: Frontend (Programmcode) und Backend (Daten).

Grüße aus Raben Steinfeld (bei Schwerin)
Wolfgang
(Netwolf)

Hallo Wolfgang,

welche denn? welche Version? Ohne diese Information können wir
dir schlecht helfen.

Vergess ich immer wieder zu sagen: AC 2002 (10.2627.2625)

sehr gut

Danke:smile:

ok, dann war sie vermutlich abgestürzt

War sie leider (oder zum Glück für mich)nicht!

ähm welche Funktion? Du meinst die Möglichkeit des
Komprimierens beim Schließen? Hattest du dafür eine eigene
Funktion geschrieben?

Falsch ausgedrückt, die Einstellung zurückgenommen!

Bedenke generell: wenn du die DB komprimierst, wird dein VBA
Code DEkompiliert!!
Beim erneuten Aufruf der DB wird dieser wieder kompiliert und
vergrößert erst mal die DB, ohne dass du auch nur einen
Buchstaben eingegeben hast!!

Danke, hier dachte ich Falsch! Ich wusste nicht das der Code dekompiliert wird!

eigentlich logisch, denn du fügst i.d.R. ja immer wieder Daten
hinzu.

Ausnahmen bestätigen die Regel, es werden Daten nur in Abständen von 3 Monaten hinzugefügt, in dieser Zeit wo nichts passiert sollte die DB ja dann nicht wachsen, was sie aber tut!

keine Daten mehr eingeben. Oder mal deine DB überprüfen mit
welchen Daten du diese so mächtig überlastest. OLE - Felder in
einer Tabelle sind häufig ein Grund für ein rasches Anwachsen
einer DB.
-) OK die beste aber unmögliche Lösung! OLE-Felder sind mehrere integriert, hier habe ich auch die Dateien selbst und nicht nur eine Verknüpfung verwendet. Das ändere ich mal! Und muss sie mal wohl oder übel durchprüfen!

Tipp am Rande:
Trenne IMMER die DB in zwei Teile: Frontend (Programmcode) und
Backend (Daten).

Danke für den Tipp! Werde Ihn gleich befolgen!

Grüße Benni

Hallo Manfred,

That’s life. Oder eher: That’s Access!

Ja leider…

Versuche einfach, die Tabelle manuell zu löschen. Oder lasse
ein Reparieren (falls noch vorhanden in Deiner Access-Version;
die neueren machen das mit dem Komprimieren zusammen)
drüberlaufen. Oder starte Access und Deine Datenbank mit
/DECOMPILE. (also z. B. über Start-Ausführen und dann
eingeben: C:\Programme…\Access.exe D:\DeinPfad\DeineDB.mdb
/Decompile.)

OK werd ich auch versuchen, allerdings hab ich mal gehört das die Decompile Funktion nicht sehr „sicher“ sein soll? Oder Fehler in der DB verursachen kann!?

Habe AC 2002, da wird das reparieren + komprimieren in einem Schritt erledigt!

Löschen möchte ich die Tbl nicht so gerne!

Grüße Benni

Hallo, allerseits!

Die Datenbank wächst und wächst!

eigentlich logisch, denn du fügst i.d.R. ja immer wieder Daten
hinzu.

Interessantes Testbeispiel aus eigener Erfahrung: Man nehme ein mammutmäßig großes Formular von ca. 1 MB. Man kopiere dieses 50 mal. Die Datenbank ist wie groß?

Richtig, 50 MB.

Aber was will man mit 50 identischen Formularen? Nix. Also lösche man alle Formulare wieder… Die Datenbank ist wie groß?

Richtig, 100 MB.

(Weiß jetzt nciht mehr, bei welcher Version ich das Phänomen hatte. 2.0 war’s nicht, sondern später…) Man kann seine Datenbank also auch durch Löschen aufpusten… Gut, wenn wir dafür ein Undo bekommen hätten, würde ich das ja noch akzeptieren. Aber so heißt es weiter: *kopfschüttel*

Gruß, Manfred

Hallo, Benni!

OK werd ich auch versuchen, allerdings hab ich mal gehört das
die Decompile Funktion nicht sehr „sicher“ sein soll? Oder
Fehler in der DB verursachen kann!?

Vermag ich nicht zu bestätigen. Wenn ich mit Rep+Komp nicht mehr weiter kam, hat mir Decompile weiter geholfen. Negative Erlebnisse hatte ich noch nicht damit.

Habe AC 2002, da wird das reparieren + komprimieren in einem
Schritt erledigt!

Löschen möchte ich die Tbl nicht so gerne!

Dann versuch’s nach dem erneuten öffnen mit Rep+Komp. Und zur Not kopiere die Datenbank, bevor Du die Tabelle löschst.

Gruß, Manfred

Hallo zusammen,

Interessantes Testbeispiel aus eigener Erfahrung: Man nehme
ein mammutmäßig großes Formular von ca. 1 MB. Man kopiere
dieses 50 mal. Die Datenbank ist wie groß?

Richtig, 50 MB.

Aber was will man mit 50 identischen Formularen? Nix. Also
lösche man alle Formulare wieder… Die Datenbank ist wie
groß?

Richtig, 100 MB.

(Weiß jetzt nciht mehr, bei welcher Version ich das Phänomen
hatte. 2.0 war’s nicht, sondern später…) Man kann seine
Datenbank also auch durch Löschen aufpusten… Gut, wenn wir
dafür ein Undo bekommen hätten, würde ich das ja noch
akzeptieren. Aber so heißt es weiter: *kopfschüttel*

sehr interessant das alles!(auch aber sehr verwirrend)

Ich vermute mal, rein von meiner Vorgehensweise das es genau so ist!
Am Anfang wo die DB erstellt worden ist waren viele Unklarheiten vorhanden die nach und nach durch löschen und ersetzen bereinigt wurden.
Dadurch liegt diese Möglichkeit sehr nahe.

Kann ich dagegen nichts tun?(Auser warscheinlich die DB neu erstellen?) Wäre für Ideen, noch so verrückt, dankbar!

Kopfschütteln reicht mir leider nicht da ich leider die DB dringend brauche! :frowning:

Vielen Dank für das Mitüberlegen

Grüße Benni

Hallo Manfred,

Vermag ich nicht zu bestätigen. Wenn ich mit Rep+Komp nicht
mehr weiter kam, hat mir Decompile weiter geholfen. Negative
Erlebnisse hatte ich noch nicht damit.

Habe es noch nicht selber ausprobiert sondern mich auf eine Aussage eines Bekannten bezogen der dadurch vermutlich schon Daten verloren hatt.

Aber ich werd es mit einer Kopie natürlich gleich versuchen.

Dann versuch’s nach dem erneuten öffnen mit Rep+Komp. Und zur
Not kopiere die Datenbank, bevor Du die Tabelle löschst.

OK, werd ich gleich mal testen!

Vielen Dank für die Antwort!

Grüße
Benni

Hallo Benni,

Kann ich dagegen nichts tun?(Auser warscheinlich die DB neu
erstellen?) Wäre für Ideen, noch so verrückt, dankbar!

nö, nicht neu, sondern eine neue leere DB anlegen und die Tabellen, Formulare etc. einfach importieren. Das funktioniert besser als komprimieren.

Grüße aus Raben Steinfeld (bei Schwerin)
Wolfgang
(Netwolf)

Hallo Wolfgang,

nö, nicht neu, sondern eine neue leere DB anlegen und die
Tabellen, Formulare etc. einfach importieren. Das funktioniert
besser als komprimieren.

Ja das hat geklappt, vielen Dank!

Jetzt ist sie von 165mb auf 113mb geschrumpft.

Was ich aber immer noch für ein wenig zu viel halte.
Ich habe keine OLE Dateien in der DB sondern nur den „Link“, was also die Bilder als große Dateien ausschließt.

Deshalb wurdert mich die doch recht ansehnliche Größe von mittlerweile 113mb.

Geht da nicht noch was?:smile:

Vielen Dank für die Antworten!

Grüße Benni

Hallo Benni,

Deshalb wurdert mich die doch recht ansehnliche Größe von
mittlerweile 113mb.
Geht da nicht noch was?:smile:

ok, wie schon geschrieben: teile deine DB in FRont - und Backend auf.

Dann hast du eine gute Übersicht, wie viel an Daten und wie viel davon der Code ist.

Grüße aus Raben Steinfeld (bei Schwerin)
Wolfgang
(Netwolf)

Hallo Wolfgang,

ok, wie schon geschrieben: teile deine DB in FRont - und
Backend auf.

Dann hast du eine gute Übersicht, wie viel an Daten und wie
viel davon der Code ist.

Hab ich schon gemacht, danke nochmal für den Tipp.

Hab Sie jetzt auf 31mb reine Daten „gekürzt“, was reicht.

Vielen Dank für eure Hilfe!

Grüße Benni