Die zuverlässigste Methode, die ich dazu kenne, ist das Schreiben eines Programms, das mit der Datenbank eines Dateiservers arbeitet. Ich musste an einem Programm arbeiten (von Grund auf), um dies für einen Client zu tun, der MS Access verwenden wollte, sonst nichts. Leider ist es zu schwierig, hier zu erklären. Wenn Sie nur von mehreren Stellen auf die Access-Datenbankdatei zugreifen können, sollte die MS Access-Software Änderungen vornehmen können, aber ich weiß nicht, ob sich diese Änderungen in anderen Systemen verbreiten würden oder wie zuverlässig dies wäre.
Wie synchronisiere ich mehrere Access-Datenbanken zusammen?
Ich führe eine Studie durch, in der wir mithilfe von Access Daten sammeln. Da es mehrere Personen geben wird, die diese Studien mit derselben strukturierten Access-Datenbank durchführen, müssen wir einen Weg finden, die Informationen aus allen anderen Datenbanken zu aktualisieren und mit einer zentralen Datenbank zu synchronisieren. Mit anderen Worten, die Daten, die von mehreren Personen erfasst werden, müssen in einem zentralen Bereich gesammelt werden. Wie mache ich das?
Im Grunde ist es genau das, was ich tun möchte, aber ich weiß nicht wie:
Indirekte Synchronisation
Die indirekte Synchronisierung ist nützlich, wenn Sie in einer nicht verbundenen Umgebung arbeiten, z. B. wenn Sie mit einem Laptop unterwegs sind.
Die indirekte Synchronisierung kann nur mit Replication Manager konfiguriert werden. Nachdem die indirekte Synchronisierung mit Replication Manager konfiguriert wurde, können Sie eine indirekte Synchronisierung mithilfe von Microsoft Access, Replication Manager oder JRO ausführen.
4 Antworten auf die Frage
- Beliebte
- Neu
- Mit Kommentaren
- Aktiv
Siehe diesen Artikel: Mehrere MS Access-Datenbanken in einer einzigen Datenbank zusammenführen :
Nachfolgend finden Sie eine in MS Access VBA geschriebene Merge () - Funktion zum Konsolidieren mehrerer normalerweise strukturierter Datenbanken in einer einzigen. Ich musste diese Funktion für ein Projekt schreiben, in dem ich viele Inseldatenbanken konsolidieren musste. Der Aufbau der Datenbanken war genau gleich.
Sie erhalten Warnungen, wenn keine Daten eingefügt werden können, da sie doppelte Datensätze erstellen. Ignorieren Sie in diesem Fall einfach die Warnmeldung und fahren Sie fort.
Das Skript selbst führt nur die Ausführung von Befehlen durch, die wie folgt aussehen:
INSERT INTO target SELECT * FROM source
Da der ursprüngliche Webserver anscheinend fehlerhaft ist, wird das gesamte Skript von der Wayback-Maschine abgerufen und hier wiedergegeben:
Option Compare Database Option Explicit 'Set the below variable to TRUE 'When you are done with testing 'Basically testing mode will print 'the names of all the databases 'you are going to merge Const bTest = False Sub Merge() 'Copyright © iLoveCoding, 2010 'Web: http://www.iLoveCoding.co.uk 'The Merege() is a function that merges 'records from multiple MS Access databases 'into a consolidated one provided that the 'structure of all databases are exactly same. ' 'This function assumes that there are 'no relationships defined among the tables. 'Which is typically the scenario when an 'MS Access database is used in an Intranet or 'Web application. 'However properly altering the order of the 'dbfiles() initialization one can easily 'address the issue of relationships and 'data integrity among tables On Error GoTo errhand Dim appPath$ '---------------------------------------------- 'Change the below number to number of databases 'you are going to merge '---------------------------------------------- Const ndb = 22 Dim dbfiles$(2 To ndb) Dim i% 'ANA.mdb '---------------------------------------------- 'Array of the database file names without path 'Copy this code into a module of the first database 'The first database is going to be the consolidated 'capturing the records from all other databases. 'The first database name is not present here 'That is why the index starts with 2. '---------------------------------------------- dbfiles(2) = "second.mdb" '<= change the file name dbfiles(3) = "third.mdb" dbfiles(4) = "fourth.mdb" ' 'similarly initialize other files ' dbfiles(10) = "tenth.mdb" '---------------------------------------------- ' The databases should be copied to the same ' folder of the first database '---------------------------------------------- appPath = CurrentProject.Path For i = 2 To ndb Dim dbpath$, db As Database dbpath = appPath & "\" & dbfiles(i) Set db = OpenDatabase(dbpath) Dim tbl As TableDef, j% For j = 0 To db.TableDefs.Count - 1 DoEvents Set tbl = db.TableDefs(j) If tbl.Attributes = 0 Then If bTest Then Debug.Print tbl.Name Else DoCmd.TransferDatabase acLink, "Microsoft Access", _ dbpath, acTable, tbl.Name, tbl.Name & "_Linked", False Dim sql$ sql = "INSERT INTO [" & tbl.Name & "] SELECT * FROM [" & _ tbl.Name & "_Linked" & "]" DoCmd.RunSQL sql DoCmd.DeleteObject acTable, tbl.Name & "_Linked" End If End If Next j Debug.Print dbfiles(i) Next i Exit Sub errhand: MsgBox Err.Description End Sub
Etwas ähnliches wurde in StackOverflow erörtert. Vielleicht erhalten Sie einige Hinweise, wie Sie fortfahren können.
Eine andere Option, die möglicherweise über Ihrem Budget liegt, könnte Altova DatabaseSpy sein . Sie kann CSV / XML-Daten in eine Access-Datenbank importieren.
Ich bin nicht sicher, welche Art von Benutzeroberfläche Sie für die Dateneingabe verwenden, aber ich würde vorschlagen, NICHT den Zugriff zu verwenden und stattdessen SQL Express zu verwenden und die Dateneingabe möglicherweise als .Net-Anwendung auszuführen.
Sie können dann SQL Server ausführen und die einzelnen Express-Datenbanken wieder mit dem Master zusammenführen. Besuchen Sie http://msdn.microsoft.com/en-us/library/ms152746.aspx
Sie haben keine Details zu den Daten, die Sie sammeln, aber es scheint, dass es keine Überschneidungen gibt - dh jeder Sammler hat einen eindeutigen Datensatz ohne die Möglichkeit von Zusammenführungskonflikten -, also sollte es ziemlich einfach gehen.
Verwandte Probleme
-
16
Wie bleiben iTunes-Bibliotheken synchron?
-
2
Erinnert sich Windows 7 Home Premium an Netzwerkfreigaben-Passwörter?
-
4
Wie sperre ich rechtsbündige Symbolleisten in Windows 7, ohne dass sie schrecklich aussehen
-
12
Wie kann ich Ordner zwischen mehreren Computern über mein Heimnetzwerk synchronisieren?
-
8
Gibt es Passwort-Manager für iPhone und Windows XP?
-
4
Windows 7 "Aero Snap" -Funktion für Ubuntu GNOME
-
3
Meine zweite Festplatte ist in Windows 7 nicht sichtbar
-
3
Ist es möglich, eine One-Way-Synchronisation der iPhone-Sprachnachrichten mit einem PC durchzuführen...
-
7
Wie ersetze ich Notepad in Windows 7?
-
2
Wie werden Windows 7-Taskleistensymbole in zwei Reihen angeordnet?