Einfügen von Daten für den Zugriff auf doppelte Datenfehler

8

Ich habe ein vbscript geschrieben, das alle neuen Felder in einer Zugriffsdatenbank aus einer Tabelle in einer anderen Datenbank aktualisiert, aber ich habe Probleme mit doppelten Primärschlüsseln.

Ich kann die Struktur der Datenbank nicht ändern, so dass ich die Primärschlüssel nicht entfernen kann, aber idealerweise möchte ich, dass sie den Primärschlüssel automatisch auffüllt. Hier ist meine Tabellenstruktur (sie sind zwei Tabellen)

Tabelle 'Bestellung':

%Vor%

Tabelle 'OrderDetail':

%Vor%

Mein erstes Problem ist, dass der Primärschlüssel für beide Tabellen automatisch gefüllt wird, so dass sie eindeutig sind. Dann ist mein zweites Problem, dass die zwei hinzuzufügenden Zeilen übereinstimmen und der Primärschlüssel sich in der 'Auftragstabelle' für 'Auftragssequenznummer' ändert 'update es auf' OrderSequence 'in der Tabelle' OrderDetail '.

Hier ist mein VBScript, das Werte kopiert, wenn sie eindeutig sind:

%Vor%

Ich habe über das automatische Auffüllen gelesen, wenn es nicht eindeutig ist, aber ich bin verwirrt, wo ich diese beiden Funktionen brauche, um beide Zeilen für eine Reihenfolge zu erhalten und beide Zahlen für die Reihenfolge zu ändern. Ich bin immer noch ziemlich neu in VB und jede Hilfe wird sehr geschätzt.

Danke, Simon

    
Simon Staton 06.12.2013, 11:11
quelle

1 Antwort

4

Anstatt alle Datensätze für jede Tabelle von "Quelle" nach "Ziel" auf einmal zu kopieren, könnten Sie die übergeordneten Datensätze durchlaufen und einen übergeordneten Datensatz und die zugehörigen untergeordneten Datensätze für jede Iteration kopieren. Das ist:

  • Übergeordneter Datensatz 1
  • kopieren
  • kopiert untergeordnete Datensätze für übergeordneten Datensatz 1
  • Übergeordneter Datensatz 2
  • kopieren
  • kopiert untergeordnete Datensätze für übergeordneten Datensatz 2
  • ... und so weiter.

Der folgende Beispielcode kann hilfreich sein:

%Vor%

Bearbeiten Sie re: new information

Der Primärschlüssel in der untergeordneten Tabelle ist keine AutoNumber, Sie haben also recht, dass Sie nur "eigene" rollen müssen. Versuchen Sie Folgendes (Änderungen markiert als <v1.1> ):

%Vor%     
Gord Thompson 09.12.2013, 10:53
quelle