Ich habe ein Programm zur Dateneingabe für Feld (kein Netzwerk - Meeresforschung) verwenden. Wenn der Benutzer zurück ins Büro kommt, sendet er die Daten zum Import in die master sql Datenbank an den Server. Anschließend erstellt es eine leere Access-Datenbankdatei und exportiert die Tabellen (DoCmd.TransferDatabase), sodass der Benutzer eine lokale Kopie für seine Offsite-Forschungszwecke zur Verfügung hat. Ich versuche, die Tabellenbeziehungen in der neuen Datendatei mithilfe von DAO.Database.CreateRelation() neu zu erstellen. Es funktioniert, bis ich zu einer Tabelle komme, die zwei Felder als PK oder FK benötigt.Wie erstelle ich Multi-Feld-Tabellen-Beziehungen mit VBA?
Table1 Table2 Table3
SampleNumber 1--------M SampleNumber 1--------M SampleNumber
. LineNumber 1--------M LineNumber
. . HookNumber
. . .
. . .
Table1_PK -> SampleNumber
Table2_PK -> SampleNumber+LineNumber
Table3_PK -> SampleNumber+LineNumber+HookNumber
Wenn ich dies in meiner Funktion:
Set newRelation = db.CreateRelation(relationUniqueName, _
primaryTableName, foreignTableName, relAttr)
es gibt einen Fehler zurück:
3001: Invalid argument.
Aber nur, wenn ich versuche, die über Beziehungen zu erstellen. Alle anderen Beziehungen werden korrekt erstellt.
Gibt es eine Möglichkeit, dies zu tun, oder sollte ich mir einfach keine Sorgen machen und sie herausfinden lassen?
Das Tabellen-Layout für mich unlogisch erscheint. Warum zwei Tabellen mit den gleichen Schlüsseln (Tabelle 2 und Tabelle 3) durcheinander anstatt nur mit dem ersten? Ich bin mir sicher, dass ich hier etwas verpasse, aber ich verstehe nicht, wonach Sie suchen. Können wir mehr vom Datenmodell sehen? – mrunion
Tabelle 1 identifiziert die Auslösung, Tabelle 2 identifiziert eine Linie auf dieser Auslösung (2 oder 3), Tabelle 3 identifiziert Haken (10) auf der Leitung. –