Datenübertragung in Untertabelle
Hallo Zusammen,
ich habe eine Haupttabelle 'Artikel' in welcher sich zwei Untertabellen befinden 'UT1' (Verknüpfung 1:N) und 'UT2' (Verknüpfung 1:N).
In den beiden Untertabellen ist jeweils die gleiche Tabelle ('Auswahl') Verknüpfung N:1 also Combo Box hinterlegt.
Wenn ich einen neuen Datensatz in der Haupttabelle 'Artikel' erstelle und in der 'UT1' in 'Auswahl' z.Bsp. Preis1 wähle wird automatisch im Feld 'Zahl1' eine Zahl berechnet.
Nun möchte ich in der 'UT2', wenn ich in Auswahl auch Preis1 wähle über Trigger nach Änderung das in der 'UT2' im Feld 'Zahl2' die 'Zahl1' von der 'UT1' eingefügt wird.
Über Eure Hilfe würde ich mich sehr freuen.
Liebe Grüße
Antje
8 Antworten
-
Moin Antje ,
ich habe es über den Triggern nach Änderung im Feld AUSWAHL der Tabelle UT2 folgendermaßen gelöst:
if first(Artikel.UT1.text(Auswahl)) = text(Auswahl) then Zahl2 := first(Artikel.UT1.Zahl1) end
Damit wird generell verglichen ob die Auswahlfelder die gleiche Auswahlbezeichnung haben,
wenn ja, wird der Wert aus UT1 in UT2 geschrieben...
Das first ist nötig, da es bei dieser Struktur möglich ist mehrere Einträge in UT1 bzw. 2 zu haben. diese werden bei meiner Betrachtungsweise ignoriert und nur der erste Datensatz von UT1 verwendet.Hier noch die DB dazu.
Vg Ronald
-
Hallo Roland,
vielen Dank für Deine Hilfe. Ich habe die Formel ausprobiert. Sie funktioniert soweit. Allerdings habe ich in der 'UT1' sehr viele Datensätze. Das heißt wenn ich in der 'UT2' in 'Auswahl' einen Wert aussuche solle Ninox alle Datensätze in der 'Artikel.UT1' prüfen wo die 'Auswahl' übereinstimmt und mir diese Zahl dann in Zahl2 übermitteln.
Ich habe bei deiner Formel das first entfernt. Leider bekomme ich dann immer eine Fehlermeldung im Formel Editor "Der Ausdruck liefert mehrfache Ergebnisse zurück:
Artikel.UT1.Zahl1"
if Artikel.UT1.text(Auswahl) = text(Auswahl) then Zahl2 := Artikel.UT1.Zahl1
-
PS: noch als kleine Info die 'Auswahl' kommt in 'UT1' auch nur einmal vor.
-
für mein besseres Verständinis:
Es gibt mehrere Datensätze in UT1 aber nur in einem davon ist die Auswahl=Preis1 und das Skript soll diesen Datensatz finden und den Wert von UT1.Zahl1 in UT2.Zahl2 schreiben?
-
Hallo Roland,
genau, so ist es es. Da habe ich mich bei meinem ersten Schreiben wohl etwas falsch ausgedrückt, sorry.
-
Antje ,
dann sollte es dieser Code im Trigger nach Änderung im Feld AUSWAHL der Tabelle UT2 tun:
if text(Auswahl) = "Preis1" then Zahl2 := first(Artikel.UT1[text(Auswahl) = "Preis1"].Zahl1) end
-
Hallo Roland,
habe es hinbekommen. Vielen lieben Dank für Deine Mühe und auch für deine weiteren Tipps Wünsche Dir noch einen schönen Tag und viele Grüße
Antje
Content aside
- vor 2 JahrenZuletzt aktiv
- 8Antworten
- 51Ansichten
-
2
Folge bereits