Frage

Ich bin zur Zeit auf einem 4-Personen-Team mit der Entwicklung und Pflege einer Legacy-MS Access-Anwendung beauftragt.

Die Anwendung ist recht groß, mit Hunderten von Formularen, Berichten, Abfragen und Tabellen.

Zur Zeit haben wir das vordere Ende in etwa 7 mde Komponenten aufgeteilt, von denen jede im wesentlichen in seinem eigenen Recht eine Anwendung ist, durch eine gemeinsame Front-End verbunden sind, die im Wesentlichen GUI nur ein Menü.

Wir verwenden verknüpften Tabellen dieses Frontend zu einem MS Access-Backend zu verbinden, unter Verwendung von Opendatabase (C: \ access.mdb) rufen in dem Code selbst. Diese Anwendung hat sich für eine Weile, und somit verwendet DAO zu einer Access 97-Backend zu verbinden.

Das bedeutet, dass jeder Benutzer der Anwendung ihre eigene lokale Kopie der Datenbank für die Änderungen hat. Wir haben eine sorgfältig umwelt ändern gesteuert, dass nur eine Person gewährleistet, zu einer Zeit auf den Daten zu arbeiten sein kann, haben sie ihre Änderungen alle bevor er zur nächsten Person des Bestehen der Master-Datenbank zu validieren.

Diese Änderung Steuerungsumgebung ist stickig, gelinde gesagt, und bald werden wir einen Bedarf Änderungen für mehr Daten müssen in einem Zeitrahmen durchgeführt werden, die einzelnen Benutzer Zugriff unrentabel.

macht

So müssen wir Multi-User-Zugriff bewegen, aber durch Multi-User meine ich nur etwa 4 Personen. Diese Leute sind wahrscheinlich nicht physisch am selben Büro befindet, so eine Form von Remote-DB-Verbindung erforderlich ist.

Die gesamte Anwendung wird wahrscheinlich in einem oder zwei Jahren Zeit wieder gearbeitet werden, sowohl die vorderen und wieder zurück am Ende von MS Access entfernt. Allerdings müssen wir Multi-User-Zugriff so schnell wie möglich.

Also, was ist der schnellste Weg zum Multi-User-Glück?

Vorschläge wir betrachten sind:

  • ein VPN einrichten, so dass MS Access glaubt, dass es ein regelmäßiges Netzlaufwerk zugreifen. Das sieht aus wie es langsam sein, und ich bin nicht sicher, ob ein VPN zuverlässig genug ist, aber es ist nur eine vorübergehende Lösung, wir sind nach sowieso.
  • Die Umwandlung des mdb Backend in etwas für Multi-User Remote-Nutzung bestimmt sind, wie SQL Server. Wir wissen einfach nicht, wie dies zu tun, schnell und einfach (wir setzen auf den Feldüberprüfungsregeln zum Beispiel) Wir würden vermutlich müssen auch auf MS Access-Format konvertieren zurück als andere Anwendungen die gleichen MDB-Dateien als Dateneingabe akzeptieren.
  • So gut wie alles, was von 1 oder 2 Personen in ein paar Monaten durchgeführt werden kann.

EDIT:. Als Reaktion auf die Kommentare unten

Die Daten, die durch die Anwendung verarbeitet wird, sind in hohem Maße sicherheitskritische Daten. Es ändert sich nur selten, und müssen validiert werden, es zu zeigen, sind keine logischen Fehler, bevor exportiert. In Wirklichkeit ist die Daten unter schweren Einschränkungen als die Anwendung selbst!

Die Daten werden in nicht-triviale Weise miteinander in Beziehung. Als solches kann eine Änderung an einem Datensatz in einer Tabelle einen Datensatz in einer anderen Tabelle aufgrund der komplizierten Geschäftslogik ungültig machen. Als solches ist im Moment, eine Kopie der mdb Datendatei der Master-Datenbank bezeichnet. Nur eine Person hat den Master zu jeder Zeit. Wenn Sie es Änderungen vornehmen wollen, müssen Sie die Datenbank von der Person zu erhalten, die zur Zeit hat. Dies ist in der Regel kein Problem, da Datenänderungen selten genug, dass es genug Zeit für diesen auftreten.

Allerdings ist eine große Veränderung kommt, die wir haben nicht genug Zeit, um funktionieren auf diese Weise gegeben worden. Wir müssen mehrere Personen auf die Daten auf einmal zu arbeiten. Ich bin jetzt bewusst, dass Sie die MDB-Datei auf einem Netzlaufwerk gemeinsam nutzen können und haben mehrere Personen im gleichen Büro arbeitet auf dieser Datei mit wenig oder gar keinem Risiko, aber wir müssen die Menschen aus verschiedenen Unternehmen zur gleichen Zeit auf den Daten arbeiten . wie ich es verstehe, ein VPN-Einrichtung, die Daten zu teilen über einen schlechten Plan ist.

Ich glaube, wir müssen das Backend ändern von MS Access entfernt und zu so etwas wie SQL Server verschieben. Aber wie einfach ist es, ein Schema in dieser Art und Weise zu konvertieren? Wie sind MS Access-Tabelle Validierungsregeln in SQL Server dargestellt?

War es hilfreich?

Lösung

In der Regel acccess rechts neben der Box greift auf Multi-User als eine Dateifreigabe. Was dies bedeutet ist, dass Sie die Back-End-Datenbank (MDB-Datei) übernehmen könnten und es auf einem freigegebenen Ordner auf einem Server. Dies würde ein paar Leute in Ihrem Büro ermöglicht die Anwendung zur gleichen Zeit ausgeführt werden. Jedoch bedeutet, dass wir über einen typischen Büro-LAN sprechen. Wenn Sie sprechen über Remote-Verbindungen starten und VPN und Wide Area Networks (WANs), dann Zugang als Dateifreigabe ist nicht stabil.

Also, wenn dies nur drei oder vier Personen in einer typischen Büro-Netzwerkumgebung, dann abhängig von der Anwendung, dann ist es sehr wahrscheinlich, dass Sie einfach das Backend auf einem freigegebenen Ordner auf dem Server setzen können und weiterhin all Frontends haben auf jedem Computer eingesetzt werden, und sie werden auf diese eine Datenbank-Backend (mdb) Datei auf dem freigegebenen Ordner verknüpft. MS Zugang ganz gut funktioniert auf diese Weise.

Doch für über irgendeine Art von VPN sprechen, oder WAN, dann eine mögliche Lösung ist Ihr Back-End-MDB-Datei zu SQL Server zu verschieben, und weiterhin alle Formulare verwenden, Berichte usw. von Ihrer aktuellen Anwendung (Die meisten Ihrer Anwendung läuft nach wie vor, wenn Sie dies tun).

Eine weitere wirklich große Technik zu berücksichtigen ist, Thin Client, oder so genannte Terminal-Service. Terminal-Service nur eine Phantasie Ausgabe eines Remote-Desktop-System. TS ermöglicht es die Menschen über sogar ziemlich begrenzte Bandbreite zu laufen und die Anwendung von entfernten Standorten zu verwenden.

Allerdings, wenn Sie sprechen von drei bis vier Benutzer auf einem typischen Büro-LAN, dass es sehr wohl möglich ist, Ihre Anwendung mit sehr kleinen Änderungen ausgeführt werden wie es ist, und Sie einfach die Back-End-Datenbankdatei in einen freigegebenen Ordner auf einem Server verschieben irgendwo. Ich kann jedoch nicht betonen, dass dies nur funktioniert, wenn alle Menschen auf dem gleichen kleinen Büro-LAN sind, und nicht irgendeine Art von Remote-Verbindung oder einem WAN / VPN. So im Fall von WAN / VPN, verwenden Sie Terminal Service, oder prüfen, das Backend auf SQL Server zu verschieben und weiterhin die Anwendung Front verwenden beenden wie es ist.


Bearbeiten - mehr Informationen: Ok, also mit mehr Infos hier können wir uns vorwärts bewegen. Wie bereits erwähnt, ms-Zugang ist Multi-User direkt aus der Box. Sie brauchen Menschen, von verschiedenen Standorten auf diesen Daten zu arbeiten. So bedeutet dies, dass Ihre Anwendung Setup für Multi-User-Fähigkeit sein muss, unabhängig von dieser unterschiedlichen Standortfrage. Sobald Sie die Anwendung Setup für Multi-User haben dann TACKLE Sie DANN das Thema den Menschen ermöglichen, die Software von verschiedenen Standorten zu verwenden.

Das ist nicht anders, als wenn wir etwas für die Verwaltung der Weihnachtsfeier. Wenn wir ein Design, so dass nach der Weihnachtsfeier haben wir die ganze Datei löschen Partei neu zu beginnen für das nächste Jahr Weihnachten, dann können wir immer noch mehrere Verwendungen in dieser Anwendung ermöglichen. Doch das Design ist so, dass Sie nicht mehr Weihnachtsfeiern aktiv zur gleichen Zeit wegen Ihrer Design haben. Also in diesem Fall ist es nicht die Tatsache, dass die Anwendung Multi-User sind. Bei dieser Art von Szenario, könnte man hinzufügen, tatsächlich eine neue Tabelle der Weihnachtsfeier Jahr Tabelle genannt. Dann kann man alle Tabellen in der Anwendung zu dieser Master-Tabelle als Kind Tabellen beziehen. Auf diese Weise können Sie mehrere Weihnachtsfeiern aktiv zugleich für diesen Entwurf haben. Dann, wenn Sie die Anwendung starten, werden die Benutzer mit irgendeiner Art von Liste aufgefordert, zu entscheiden, was Weihnachtsfeier Sie arbeiten möchten.

So nicht verwechseln die beiden oben seperate Ausgaben. Es macht keinen Sinn, zu fragen, wie Terminal-Service die Anwendung ermöglicht Multi-User zu sein, tut es so etwas nicht. Was TS tut, ist erlaubt Ihnen, eine Anwendung zu übernehmen, die bereits Multi-User und Leuten erlauben, von entfernten Standorten aus, dass die Anwendung zu verwenden. So TS ist ein System, das Mensch zu laufen und verwenden, um die Anwendung von Remote-Standorten überall im Internet ermöglicht. Ihre Entwürfe werden noch diktieren, wenn Ihre Anwendung uns mehr als eine Partei Weihnachten zu ermöglichen, bei t aktiv zu seiner gleichzeitig jedoch.

Sie brauchen also nicht MS Zugang Multi-User machen, MS Zugang ist Multi-User direkt aus der Box Und Sie haben nichts zu tun, außer ein paar Technologien übernehmen, können Benutzer an verschiedenen Standorten die Anwendung nutzen. So, das ist es, was TS tut, und auch SQL-Server für Sie tun kann.

Wenn Ihr Design ist nur ein Projekt erlaubt, dann können wir mehr Benutzer an verschiedenen Standorten in der Welt ermöglichen, eine Anwendung zu verwenden, aber sie nur dann erlaubt, ein aktives Projekt zu haben, weil der Design-Einschränkungen der Anwendung.

So alle Ihre Tabellenaktualisierungslogik etc. können nach wie vor arbeiten. Sie müssen einfach nur fragen, ist nicht jetzt die applicaion einem Benutzer erlauben, die applcaion zu beenden, und ein anderer Benutzer in sie eingehen und ihre Arbeit tun? Behaupten, dass es nur einen Standalone-Computer im Büro. Können Mitarbeiter diffent durign unten den Tag sitzen und dass ein Computer verwenden und dass eine Anwendung mit dem ein Backend für jede ihrer einzelnen Projekten?

So mit SQL-Server oder Terminal-Dienste machen nicht Ihre Anwendung mehr (oder weniger) Multi-User dann jetzt. Diese Technologien können sicherlich die Anzahl der Benutzer erhöhen, dass die Anwendung die gleiche Zeit verwenden kann.

So MS Zugang Multi-User jetzt. Doch was für SQL-Server der Fall ist, oder TS tut, ist damit viel mehr Flexibilität in Bezug darauf, wie die Benutzer remote auf diese Anwendung verbunden ist.

Andere Tipps

IMO werden Sie auf jeden Fall müssen die Datenbank auf einen Multi-User-Server unabhängig davon, welche anderen Lösungen, die Sie betrachten konvertieren. Es gibt ein Upsizing-Assistenten, der als nützlich erweisen sollte ( http://support.microsoft.com/kb/237980), werden Sie wahrscheinlich Elemente auftreten, den Zugang erlaubt und SQL Server nicht, aber zum größten Teil schmerzlos sein sollte. Sie können Ihre lokalen Zugriff Kopien verwenden, um diese neue Datenquelle (über ODBC zum Beispiel) zeigen und ich glaube, es sollte alle in der gleichen Art und Weise ziemlich viel Arbeit. Habe das nicht in Jahren getan, was keine Ahnung, diese Feldvalidierungsregeln (würden sie nicht noch auf dem Formular sein?) Würde sich in. Sie können eine Testversion von SQL Server herunterladen und diese unter einer Stunde tun in ein Gefühl dafür zu bekommen, wie viel Mühe es erfordern würde.

Wie üblich haben Sie eine hervorragende Antwort von Albert Kallal bekommen.

Wenn Sie auf SQL Server betrachten Upsizing gibt es ein Tool aus der SQL Server-Gruppe. SQL Server Migration Assistant for Access (SSMA Access) http://www.microsoft.com/sql/solutions/migration/ Zugang / default.mspx , die als die Access Upsizing Wizard besser ist.

Auch meinen Random Thoughts auf SQL Server Upsizing von Microsoft Access Tipps Seite unter http: //www.granite.ab.ca/access/sqlserverupsizing.htm

Wie Sie aus den Kommentaren zu Ihrem Posting der Begriff Änderungssteuerung, wenn Ihr Unternehmen sehen verwendet, ist nicht traditionelles und eher interessant. Obwohl ich sehen kann, wie vor jemandem Jahren kommen würden Ändern von Daten mit dieser Lösung eine Lösung für Remote-Büros, um herauszufinden,. Ich kann auch sehen, wie wenn es stickig wäre.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top