Neuigkeiten:

Wenn ihr euch für eine gute Antwort bedanken möchtet, im entsprechenden Posting einfach den Knopf "sag Danke" drücken!

Mobiles Hauptmenü

Ersatz für Replikation

Begonnen von ernie55, Januar 03, 2018, 20:45:54

⏪ vorheriges - nächstes ⏩

ernie55

Grüezi mitenand

In unserem Unternehmen laufen etwa 6 Laptops im Aussendienst. Wöchentlich gleichen wir die Back-End - Datenbank via Internet mittels Replikation ab. Von insgesamt 15 Tabellen werden nur deren 3 mit 1000 bis 50'000 Datensätzen repliziert. Pro Jahr ändern bzw. erfassen wir etwa 16000 Datensätzen. Die restlichen Tabellen liegen in einer separaten Datenbank und enthalten mehr oder weniger statische Datensätze. Sie werden jeweils etwa 1 X jährlich durch Austausch der ganzen Datenbank a jour gehalten.

Auf allen Laptops läuft die gleiche, ziemlich komplexe, Access Applikation als Front-End. Systemausfälle kommen so gut wie nie vor.

Um die Replikationsfunktion sicherzustellen verwenden sämtliche Teilnehmer noch Access 2007 mit dem absoluten Verbot Access zu updaten. (Brrrrrr......)

Fragen:
Wäre es möglich die Datenbank mit den 3 dynamischen und zu replizierenden Tabellen irgendwo online zu stellen und direkt aus der lokalen Applikation darauf zuzugreifen?

Wie schnell wären SQL Zugriffe bzw. Schreibzugriffe auf eine solche Tabelle? (sollte bei max 1 Sekunde sein)

Wie stabil funktionieren solche Zugriffe?

Wo würden Stolpersteine für eine solche Anwendung liegen?

Existiert eine grundsätzlich bessere Lösung ohne alles komplett neu zu programmieren?


Grüsse aus dem sonnigen Appenzellerland

ernie55

Grüezi mitenand

Meine Frage:
Wie habt ihr dieses Problem gelöst?

Grüsse aus dem sonnigen Appenzellerland

ebs17

Die Frage hat mehrere Aspekte:

Replikation / Access: Meine eigenen Versuche vor langer Zeit waren unbefriedigend, so dass ich das nie wirklich angefasst habe. Eine Frage ist ja, wenn gleiche Werte von mehreren Partnern im gleichen Zeitraum (ich sag mal zwei Außendienstler sowie die Zentrale) geändert wird, wie kriegt man eine automatische Konfliktsteuerung und vor allem den Nichtverlust von Informationen hin?

Wenn die Anforderungen bei den nur drei Tabellen nicht so hoch sind, könnte man vielleicht eine Kette von Aktionsabfragen anwenden: Grundlagen - SQL ist leicht (4) - Aktualisierung einer Tabelle
Begleitet müsste das meistens durch einige organisatorische Maßnahmen, die einzuhalten wären.

Access-Backend im Netz: Bei Internet nicht stabil. Jet verarbeitet Daten lokal, also eher hoher Datentraffic. Hier hätte man mit einem aktiven DBMS bessere Wirkungen. Diese haben auch eigene Replikationstechniken.

Eine gute Lösung soll es sein, die Außendienstler als Clienten einer Terminallösung einzubinden. Da kann sogar das Backend als MDB verbleiben. Als Traffic hat man da nur Bildschirminhalte vom Server an den Client und Tastatur- und Mausbefehle vom Client an den Server.

Daneben wird auch klar: Habe ich ein zentrales erreichbares Backend, erübrigen sich Replikationsvorgänge.
Mit freundlichem Glück Auf!

Eberhard

Frithjiof

#3
hallo ernie55

Zitat von: ernie55 am Januar 03, 2018, 20:45:54
Fragen:
Wäre es möglich die Datenbank mit den 3 dynamischen und zu replizierenden Tabellen irgendwo online zu stellen und direkt aus der lokalen Applikation darauf zuzugreifen?

Ja

Zitat von: ernie55 am Januar 03, 2018, 20:45:54
Wie schnell wären SQL Zugriffe bzw. Schreibzugriffe auf eine solche Tabelle? (sollte bei max 1 Sekunde sein)

Hängt ab von der  up- und downstream Geschwindigkeit der Internetverbindung

Zitat von: ernie55 am Januar 03, 2018, 20:45:54
Wie stabil funktionieren solche Zugriffe?

Hängt ab von der  up- und downstream Geschwindigkeit der Internetverbindung

Zitat von: ernie55 am Januar 03, 2018, 20:45:54
Wo würden Stolpersteine für eine solche Anwendung liegen?

Bei der up- und downstream Geschwindigkeit der Internetverbindung.

Zitat von: ernie55 am Januar 03, 2018, 20:45:54
Existiert eine grundsätzlich bessere Lösung ohne alles komplett neu zu programmieren?

Wenn es sich um nur 3 Tabellen handelt würde ich die Synchronisierung selber programmieren.
Die könnte via VPN mit dem zentralen Server durchgeführt werden.

1. Neue Datensätze
eindeutige Schlüssel
z.B. Tabelle um die IDs zu verwalten

2. Geänderte Datensätze
Konflikte?

3. gelöschte Datensätze
können erstmal nur markiert und nicht gelöscht werden.

Ich habe sowas bereits paar mal gemacht. Z.B. von MySql nach MySql
Und x * Access  nach MS-SQL-Server.

Frithjof

PhilS

Bei dem beschriebenen Szenario fühle ich mich an den AEK-19-Vortrag von Karl Donaubauer erinnert, der Sharepoint-Listen als Backend für Access vorgestellt hat.
Damit bekommst du viel der benötigten Funktionalität direkt fertig geliefert.
Schau dir doch mal Folien des Vortrages an.
Neue Videoserie: Windows API in VBA

Klassische CommandBars visuell bearbeiten: Access DevTools CommandBar Editor

Frithjiof

Hallo Phil
Zitat von: PhilS am Januar 12, 2018, 16:31:52
... der Sharepoint-Listen als Backend für Access vorgestellt hat.

Ich habe vor längerer Zeit mal versucht mit solchen Listen das Problem zu lösen,  leider waren sie damals auf 5.000 Datensätze beschränkt und die Bearbeitung war eine Zumutung.

Damals wurde auch über Microsoft Azure ein SQL-Server in der Cloud angeboten. Für komplexerer Anwendungen war das aber zu langsam. Das steht und fällt mit der Bandbreite der Verbindung, aber Deutschland ist ja, was den Ausbau angeht, auf gutem Weg :).

Frithjof

Lachtaube

Replikationen werden auch von höheren Access-Versionen in Jet-Datenbanken unterstützt - nur muss man halt die Relizierererei selbst programmieren.

Wenn das ein NoGo ist, könnte man ggf. persistente ADODB-Recordsets über das Netz (auch EMail-Versand wäre möglich) austauschen. Was, solange keine Daten geändert bzw. gelöscht werden, relativ problemlos zu realisieren ist. Die Abläufe müssen aber auch dabei selbst gesteuert und programmiert werden.
Grüße von der (⌒▽⌒)

markusxy

Zitat von: Frithjiof am Januar 12, 2018, 22:40:33
Damals wurde auch über Microsoft Azure ein SQL-Server in der Cloud angeboten. Für komplexerer Anwendungen war das aber zu langsam.

Zu langsam?
Das ideale Rezeopt für Langsamkeit:

1. Tabellen verknüpfen
2. Formulare direkt an die Tabellen binden, oder "Select * from Tabelle"
3. Filtern und sortieren über das Formular


Wenn du diese Anleitung befolgst, garantieren ich ein langsames System - egal welcher Server.  ;)


ernie55

Grüezi mitenand

ZitatAccess-Backend im Netz: Bei Internet nicht stabil. Jet verarbeitet Daten lokal, also eher hoher Datentraffic.
Gerade bei der Tabelle mit bis zu 50'000 Einträgen dürfte es schwierig werden.

ZitatEine gute Lösung soll es sein, die Außendienstler als Clienten einer Terminallösung einzubinden. Da kann sogar das Backend als MDB verbleiben. Als Traffic hat man da nur Bildschirminhalte vom Server an den Client und Tastatur- und Mausbefehle vom Client an den Server.
Vorerst werde mal versuchen auf diesem Weg eine Lösung zu finden. Ich nehme an, dass ich dazu einen eigenen Server einrichten müsste. Ein extern zugänglicher Access Server dürfte nirgends existieren.

PhilS

Zitat von: ernie55 am Januar 17, 2018, 11:46:20Ein extern zugänglicher Access Server dürfte nirgends existieren.
Es gibt ein paar Anbieter für sowas. Ynte Jan Kuidersma hat bei der letzten AEK einen Vortrag dazu gehalten.
Neue Videoserie: Windows API in VBA

Klassische CommandBars visuell bearbeiten: Access DevTools CommandBar Editor