Datenbanken synchronisieren (Access 97, 2000)

Veröffentlicht am 30.12.2003

Frage: 

Für eine Tabelle muss ein Primärschlüsselfeld erstellt werden, das aus einem String und einem Inkrement (möglichst Autowertfeld) kombiniert wird, also in der Art „NameA_1“, „NameA_2“, usw. Dabei ist ‚NameA‘ identisch je Tabelle. 

Eine zweite Tabelle in einer strukturell identischen, aber auf einem anderen Rechner installierten Datenbank muss analog indiziert werden, also „NameB_1, „NameB_2“, usw. Beide Tabellen sollen dann per Anfügeabfrage an eine dritte Tabelle (in einer zentralen Datenbank) angefügt werden. Zweck des Ganzen ist, in der Haupttabelle die Herkunft des Datensatzes sofort zu erkennen. 

Ein anderer Primärschlüssel ist aufgrund der Tabellenstruktur nicht möglich und ein einfaches Autowert-Feld pro Tabelle führt logischerweise zu doppelt indizierten Datensätzen in beiden Tabellen, weswegen die Anfügeabfrage dann nicht möglich wäre. 

Wie ließe sich so etwas bewerkstelligen?

Antwort: 

Anstatt den Stringwert und die Autowert-Zahl in einem Feld zu kombinieren, können Sie den Primärschlüssel über zwei verschiedene Felder aufteilen. In der Beispieldatenbank sehen Sie eine Tabelle namens tblRechnerA, die ein Textfeld „RechnerName“ und einen Autowert-Feld „ID“ enthält. Beide Felder sind im Primärschlüssel-Index enthalten: siehe Abbildung 1 unten. 

Der Standardwert des Textfeldes ist auf =“NameA“ eingestellt, damit der Rechnername automatisch vergeben wird. Eine zweite Tabelle tblRechnerB hat die gleiche Struktur mit dem Textfeld-Standardwert =“NameB“. Wenn Sie also Daten im Feld „TextDaten“ eingeben, bleibt der Primärschlüssel über beide Tabellen eindeutig. 

Die Abfrage zum Anfügen von Daten aus beiden Tabellen in eine Haupttabelle könnte etwa so aussehen: 

Function DatenAnfügen(TabelleName As String) 

    DoCmd.RunSQL _ 
    „INSERT INTO tblHauptTabelle (RechnerName,ID,TextDaten)“  _ 
    & „SELECT RechnerName,ID,TextDaten FROM “ & TabelleName 

End Function

Der Parameter TabelleName ist der Name der Tabelle, also z.B. „tblRechnerA“.

Downloads:

Tags

Unsere Dienstleistungen

Als starker Partner an Ihrer Seite unterstützen wir Sie in folgenden Breichen:

Access-Programmierung

Benötigen Sie Unterstützung bei der Programmierung von Access-Anwendungen? Wir bieten die gesamte Bandbreite von der Access-Programmierung auf Stundenbasis bis zur Durchführung eines Software-Projektes als Auftragsarbeit an. Kontaktieren Sie uns für ein kostenloses Erstgespräch.

JETZT KONTAKTIEREN

Software-Beratung

Haben Sie ein Software-Projekt und Sie wissen nicht, ob Access die richtige Plattform ist? Wir haben über 20 Jahre Erfahrung beim Erstellen von Windows-, Web und mobilen Anwendungen. Kontaktieren Sie uns für eine kostenlose Erstberatung.

JETZT KONTAKTIEREN