Access DB: Frontend-Backend: die Lösung

Ich habe vor mehreren Jahren eine Datenbank unter MS Access 97 geschrieben. Obwohl diese Datenbank in einen Mehrbenutzerumgebung (nur 3 Personen benutzen diese DB) eingesetzt wurde, war es meistens kein Problem Änderungen an Formulare oder Berichte durchzuführen. Entweder wurde das entsprechende Formular/Bericht gerade nicht benutzt oder ich hatte die Möglichkeit diese unter einen neuen Name in der DB abzuspeichern und an einem späteren Zeitpunkt umzubenennen.

Heutzutage arbeiten wir mit Access 2002 und sind mit etwa 10 Personen (teilweise Runtime-Benutzer). Ich weiß, dass durch die Verwendung von Access 2002 es nicht mehr möglich ist in einen Mehrbenutzerumgebung Änderungen an Formulare/Berichte abzuspeichern. Gerade die Änderungen eines Berichtes (Modifizierung einer Überschrift, usw.) brauchte ich.
Ich habe in Internet bereits nach Lösungen gesucht. Dabei habe ich mehrmals eine Hinweis gefunden, dass das Trennen der Datenbank in Backend DB (BD mit den Tabellen) und mehreren Frontend DB’s (z.B. für jeder Benutzer). Ich bin mir leider nicht sicher, ob dass die Lösung aller Probleme ist. Ich sehe nämlich folgende Probleme: Ich kann zwar Formulare und Berichte in meinen Frontend DB ändern und speichern, aber wie kann ich diese den anderen Benützern zur Verfügung stellen. Überschreibung deren Frontend DBs ist zwar möglich, jedoch würden zusätzlichen Abfrage, Formulare, usw. (von den entsprechende Benutzer erstellt) gelöscht werden.

Können Sie mir sagen wie ich dieses Problem am Geschicktesten löse?
Für Ihre Hilfe sag ich jetzt bereits herzlichen Dank.

Hi!

Die Aufteilung in Front- und Backend solltest du auf jeden Fall vornehmen. Es wird dir später vieles erleichtern.

für neuere Versionen würde ich eine kleine Importfunktion schreiben, d. h. du stellst den Anwendern ein Update zur Verfügung wo nur die geänderten Module stehen und die clicken dann auf nen Button und holen sich alles rein…

gibt sicher noch sauberere Lösungen, aber diese ist schnell realisiert…

Gruß

Bernd

Wie könnte so eine Importfunktion für zB. Formulare oder Berichte aussehen?
Gruß, Jan

Importfunktion usw. ist viel zu umständlich - ausserdem unsicher und dekompiliert die Datenbank. Es hat sich bewährt, die zu verteilende Version des Frontends (durchkompiliert, komprimiert, fehlerfrei…) in einem Netzverzeichnis bereitzustellen und jeweils beim Login bzw. Rechnerstart von dort mit einem kleinen Skript in das lokale Verzeichnis zu kopieren.

Das erspart einem auch das Komprimieren des Frontends bzw. Probleme mit Datenbankdefekten im Frontend usw… Schau vielleicht auch mal hier: http://spotlight.de/cgi-bin/forum_search.pl?forum_id…

Gruß aus dem Norden
Reinhard Kraasch
(http://www.kraasch.de - Access Tipps & Tricks)

Hi!

Normal würd ich dir ja nie widersprechen ;o)), aber bei der Methode verliert er ja die selbstangelegten Abfragen…

Bernd

Hallo,

ihc hab es zwar noch nie probiert (nur mal angedacht) aber wie wäre es mit einer Lösung Backend-DB, Frontend-DB und User-Db mit Verknüpfungen zu Fromulater, Abfragen usw vom Frontend.

Gruss
Nils

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

Na ja - wer seinen Benutzern gestattet, selber Abfragen anzulegen, kann seine Datenbank auch gleich selber in die Tonne treten :wink:

Gruß aus dem Norden
Reinhard Kraasch
(http://www.kraasch.de - Access Tipps & Tricks)

Hallo Nils,

ich kann Reinhard nur zustimmen und schlage dir folgendes vor.
Trenne die Datenbank mit Backend und Frontend so auf, das in einer Datenbank nur die Tabellen und Abfragen vorhanden sind, in der anderen die Formulare Berichte, etc.

Die "Tabellen"Datenbank legst Du auf dem Server ab, in der Formulardatenbank stellst Du per Daten importieren und Verknüpfen, Verweise auf diese Tabellendatenbank an.

Auf dem Server speicherst Du dann eine Kopie dieser Formulardatenbank. Mit dieser arbeitest Du, wenn Du neue Module, Formulare etc. entwickeln willst.

Deine User haben eine lokale Kopie dieser Datenbank, entweder auf ihrer Festplatte oder einem nur für den User freigegebenen Netzwerklaufwerk.

Der Charme dieser Lösung, ist dass Du wie Reinhard vorgeschlagen hast, dann entweder über ein Skript beim Einloggen des User ins das Netzwerk die Serverversion der Formulardatenbank automatisch kopierst, oder Du machst es wie ich, jeder User hat einen Button auf dem Desktop Masterformular kopieren, dass dann diesen Kopiervorgang auslöst. Hat für mich den Vorteil, dass ich über Nacht auch mal die Serverversion mit einem Fehler hinterlassen kann, denn erst wenn ich maile Masterformular kopieren wird ausgetauscht.

Hoffe es hilft Dir weiter, kann dir aber nur raten, trenne die Datenbank auf in Frontend und Backend, hatte ohne diese Trennung früher tierische Probleme, bis zum restlosen Zerlegen der Datenbank, danach nie wieder.

Peter