Vorhandene Datensätze einer Untertabelle mit Haupttabelle verknüpfen
Hallo zusammen,
ich habe mir eine DB über eine Modellbahnsammlung gebastelt.
Die Haupttabelle "Stammdaten" enthält die Daten zu allen Artikeln. Die Artikel werden über die Felder "Hersteller", "Artnr" und "Variante eindeutig identifiziert.
Die Untertabelle "Koll2001" enthält zu bestimmten Artikeln ein oder mehrere Zeilen mit dem Schätzpreis jeden Jahres. Auch hier werden die Zeilen über die Felder "Artikel", Herstelle und "Variante" eindeutig identifiziert.
Mein Problem besteht nun in der nachträglichen Verknüpfung der Felder aus der Untertabelle "Koll2001" zu dem entsprechenden Datensatz in der Haupttabelle "Stammdaten". Manuell geht das über in der Untertabelle über "Vorhandenen Datensatz hinzufügen" leider immer nur einzeln.
Kann man auch gleichzeitig alle Datensätze aus der Untertabelle, dem Datensatz mit denselben Schlüsselfeldern zuordnen?
2 Antworten
-
Hallo Das kann man. Zum Beispiel kann eine Schleife über die Untertabelle laufen und alle Schlüsselfelder vergleichen mit dem passenden Datensatz der Obertabelle. Du kannst das Script in einen Button legen. Ein Beispiel (eine andere Variante) einer solchen Iteration per select() lege ich hier mal bei. Wenn du das testen willst, dann mach vorher ein backup.
(select Koll2001).( let h := Hersteller; let a := Artnr; let v := Variante; Stammdaten := first(select Stammdaten where Hersteller = h and Artnr = a and Variante = v) )Das Verknüpfungsfeld heißt in meinem Fall "Stammdaten", wie die Obertabelle. Mirko
-
Hallo Mirko,
vielen Dank für Deinen Kommentar. Leider bin ich in Ninox-Skript nicht besonders eingelesen. Ich habe mir mal ein paar Tutorials bezüglich Schleifen angeschaut und mein Skript im Formular der Untertabelle "Koll bis 2001" wie folgt bei einem Button hinterlegt:
for i in select 'Koll bis 2001' do let h := i.HerstellerKoll2001; let a := i.ArtnrKoll2001; let v := i.VarianteKoll2001; i.StammdatenID := first(select Stammdaten where Hersteller = h and Artnr = a and Variante = v).Nr endIn der Tabelle "Koll bis 2001" habe ich ein Feld namens "StammdatenID" angelegt. Für mein Verständnis sollte hier durch das Skript für jeden Datensatz in "Koll bis 2001" die eindeutige "Nr" des in der Tabelle "Stammdaten" gefundenen Datensatzes eingefügt werden.
So funktioniert die 1:n-Verknüpfungen ohne Untertabelle jedenfalls in anderen Verknüpfungen bei mir jedenfalls einwandfrei.
Das obige Skript scheint allerdings nicht wie gewünscht zu arbeiten. Es werden keine Daten in das Feld "StammdatenID" geschrieben.
Content aside
- vor 1 StundeZuletzt aktiv
- 2Antworten
- 14Ansichten
-
3
Folge bereits
