Neuigkeiten:

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

Mobiles Hauptmenü

Aktualisierungsabfrage mit verknüpften Tabellen

Begonnen von birgitkraft, Juli 09, 2010, 12:07:45

⏪ vorheriges - nächstes ⏩

birgitkraft

Hallo zusammen,

vielleicht liegt es an der Hitze das ich gerade scheinbar einen Knoten im Hirn habe, ich hoffe Ihr könnt mir bei Lösen helfen. Ich hänge an folgenden Problem:
Ich nutze Access 2003 als Datenbankfrontend für eine SQL-Datenbank (Sybase) und die Tabellen sind per ODBC verknüpft. Nun möchte ich über 2 Datenbanken Teile der Tabelle synchronisieren und kämpfe dabei gegen das Problem das die Tabelle noch Werte aus vernüpften Tabellen enthält bei den die ID's verschieden sind.

Die Tabellenstruktur ist wie folgend:

Daba A

Tabelle Artikel
ID_Artikel
Artnr
Name
ID_Verpackung
Preis

Tabelle Verpackung
ID_Verpackung
Packartnr
Name

Daba B hat die gleiche Struktur, die Verküfung zu Änderung ist die Art_Nr auf Art_Nr. Problem ist nun das die ID Verpackung nicht in beiden Tabellen gleich ist, je nachdem wann Sie angelegt wurde.
Die Packartnr ist in beiden Datenbanken identisch, so das das ganze etwa so funktionieren müsste:
Schaue in der Datenbank A nach der Packartnr über ID_Verpackung(A) und sychronisiere in B mit der ID_Verpackung(B) mit der gleichen PackartNr wie in A.
Bloss wie konstruiere ich das Abfragefeld, mit den Feldern Name, Preis etc. ist das alles kein Problem.

Auf die Datenstruktur der Sybase Datenbank habe ich leider keinen Einfluss.

Danke, das Ihr mit mir nachdenkt.

birgitkraft

database

Hallo,
nur damit ich es richtig verstanden habe: :-\

Du willst erreichen, dass in beiden Datenbanken die ID_Verpackung auf die gleiche Packartnr zeigen.

Wenn dem so ist dann weiter folgendes:

Wenn die Datenbank A die Sybase Datenbank ist, musst du dich an diese halten, da du keinen Einfluß auf das Ding nehmen kannst.
Wenn ich bisher alles richtig interpretiert habe dann kannst du das bewerkstelligen indem du die Tabelle Verpackung in ein Recordset einließt und dann über jeden Datensatz iterierst.
Du liest dabei die Packartnr und ermittelst die zugehörige ID_Verpackung (VA) des Datensatzes.
Der nächste Schritt wäre dann in der Tabelle Verpackung der Datenbank B die gleiche Packartnr zu ermitteln und ebenfalls die ID_Verpackung (VB) auszulesen (wird für die Korrektur der Tabelle Artikel benötigt und KÖNNTE per DLookup gelöst werden)
Folgend kannst du dann per Aktualisierungsabfrage alle ID_Verpackung in der Tabelle Verpackung Datenbank B aktualisieren
Der nächste Schritt ist nun die Tabelle Artikel in der Datenbank B zu berichtigen indem du hier ebenfalls mit einer Aktualisierungsabfrage in allen Datensätzen die ID_Verpackung auf VA änderst, welche der ermittelten VB entsprechen

Soweit sogut - aber!
Das Ganze funktioniert nur dann, wenn erstens in der Datenbank B die ID_Verpackung NICHT aus einem Autowert generiert wird
und zweitens KEINE Verknüpfung zwischen den beiden Tabellen besteht in der referenzielle Integrität gefordert ist!

Grüße

Peter

birgitkraft

Hallo Peter,

du hast mich zwar genau falschherum verstanden, der Schubs zu Nachdenken mit dem Recordset ging aber in die richtige Richtung.
Damit habe ich das Problem gelöst.

Danke

Birgit Kraft

database