Access DB wird durch Änderungen immer größer

Wir haben eine Access DB die häufigen
Änderungen unterliegt. Diese DB ist
komprimiert 7 MB groß. Unter Access 2.0
ist diese DB trotz Änderungen nicht gewachsen.
Jetzt unter Access 97 wächst diese DB mit jedem
Änderungslauf so extrem, so dass wir wöchentlich
die Datenbank wieder komprimieren müssen.
Aber genau das ist das Problem, da hier die DB ja
exklusiv geöffnet sein muss und sich dies
schlecht automatisieren lässt. Kennt jemand
das Phänomen und weiss Abhilfe?

Thomas

Hallo.
Das Problem, das Du beschreibst, ist grundsätzlich in JEDER Datenbank vorhanden. Weshalb Ihr unter 2.0 die Schwierigkeiten nicht hattet, kann ich allerdings nicht nachvollziehen.
Wenn die Datenbank von jedem User mit /COMPACT und /REPAIR aufgerufen wird, dürfte das Problem ausgeräumt sein; allerdings bekommt der User dann, wenn er eben nicht der einzige Benutzer zur Laufzeit ist, natürlich eine (wegklickbare) Fehlermeldung. Soll auch diese Meldung nicht mehr auftreten, würde ich vorschlagen, daß - beim Verlassen der DB - eine entsprechende Routine aufgerufen wird, die das automatische Komprimieren besorgt. Das heißt : Der Letzte, der die Datenbank verläßt, erledigt die Komprimierung. Ein entsprechendes Modul dürfte sich problemlos erstellen lassen, würde aber den Rahmen hier sprengen. Falls Ihr damit nicht zu Rande kommt, kurze Mehl an [email protected] und mit etwas Geduld wappnen … (1 Woche oder so, weil ich schon andere Anfragen vorliegen habe).
Gruß kw

Hi!

Zum Thema „automatisch komprimieren“ schau auch mal unter „www.donkarl.com“ Punkt 6. VBA und dort „6.6 Aktuelle MDB komprimieren“

Gruß,
Claudio

Hallo Klaus,

erstmal Danke für die schnelle Antwort. Das Problem ist, dass es keinen ersten bzw. letzen Benutzer der DB gibt. Die DB ist auf einem Server abgelegt und wird ständig von irgendwelchen Leuten benutzt. Eben auch parallel.

Thomas

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Hallo Klaus,

erstmal Danke für die schnelle Antwort. Das Problem ist, dass
es keinen ersten bzw. letzen Benutzer der DB gibt. Die DB ist
auf einem Server abgelegt und wird ständig von irgendwelchen
Leuten benutzt. Eben auch parallel.

Thomas

Das habe ich schon verstanden. Aber irgendwann einmal, es sei denn, die DB wird 7 Tage die Woche rund um die Uhr von mehreren Leuten benutzt, geht der letzte Benutzer raus; und genau dann müßte die Routine greifen. Wenn allerdings die DB, siehe oben, immer im Zugriff ist, dann ist hier EDV (Ende der Vahnenstange) …
Gruß kw

Hallo Klaus,

Ich glaube ich habe mich da falsch ausgedrückt. Die DB wird am Wochende nicht verwendet. Es ist aber am Wochende keiner hier der die DB komprimieren kann. Gäbe es die Möglichkeit dies zeitgesteuert zu machen. Man könnte hier den entsprechenden Windows NT Dienst verwenden. Daran haben wir auch schon gedacht. Nur was ist, wenn jemand am Freitag die DB nicht verlassen hat. Kann man denn denn einfach rausschmeissen lassen, bzw. würde es dem Script ( von dem du vorhin gesprochen hast ) etwas ausmachen wenn noch jemand drin wäre.

Thomas

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Aber genau das ist das Problem, da hier die DB ja
exklusiv geöffnet sein muss und sich dies
schlecht automatisieren lässt. Kennt jemand
das Phänomen und weiss Abhilfe?

Thomas

Hi,
wie wär’s mit Aufteilung in FrontEnd/BackEnd. Das bringt natürlich Änderungen (oder auch: Problemchen) mit sich bei der häufigen Neugestaltung des BackEnds. Alle Nutzer, die sich neu anmelden, bekommen das neue FrontEnd gestellt (auch hier müssen sie sich wieder neu verknüpfen).
Christian

Hallo Christian,

es gibt schon eine Aufteilung in Frontend/Backend. Aber inwiefern soll es bei der Problemstellung nützlich sein?

Thomas

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

… Nur was ist, wenn jemand am Freitag die DB nicht
verlassen hat. Kann man denn denn einfach rausschmeissen
lassen, bzw. würde es dem Script ( von dem du vorhin
gesprochen hast ) etwas ausmachen wenn noch jemand drin wäre.

Thomas

mach ein Timeout in die DB und ruf dann die Routine auf … bitte alles weitere über [email protected], da wirst Du geholfen.
Gruß kw

es gibt schon eine Aufteilung in Frontend/Backend. Aber
inwiefern soll es bei der Problemstellung nützlich sein?

Thomas

in diesem Fall könnte man zumindest das FrontEnd exklusiv bearbeiten, das Backend leider auch nicht.

Christian