Nachträgliche Verknüpfung von Tabellen über Befehlschaltfläche
Ich bräucht nochmal eure Hilfe da mir ein Fehler in meiner Datenbankstruktur aufgefallen ist.
Ich habe eine Tabelle Namens Objekte dort hab ich eine Untertabelle "Termine" und in dieser gibt es wieder eine Untertabelle "Einzeltermine". Das Bedeutet jedes Objekte hat x Termine und jeder Termin hat x Einzeltermine. Mein Problem ist nur das ich jeden Einzeltermine damals per Befehlschalftfläche hinzugefügt habe (das ist in der Praxis viel einfacher wenn man viele Einzeltermine hinzufügen muss). Jetzt ist es aber so, das ich nicht nur den Einzeltermin neu erstellt und hinzugefügt habe habe sondern gleichzeitig noch einen neuer Kontakt erstellt wird und zu meiner "Kontakttabelle" hinzugefügt. Der Kontakt hat zwar eine Verknüpfung zu dem Einzeltermin, aber leider keine Verknüpfung zu dem jeweiligen Objekt. Gibt es eine Möglichkeit im nachhinein alle Kontakte mit den jeweiligen Objekten per Befehlsschaltfläche zu Verknüpfen. Wahrscheinlich müsste es eine Art schleife sein die die ganze Tabelle einmal durchgeht, nur hab ich keine Ahnung wie der Code dafür aussehn müsste.
Das Problem hab ich erste bemerkt als ich eine Einschränkung für meine Reservierungstabelle erstellt habe und ich gemerkt habe das die Kontakte(Interessenten) gar keinen Bezug mehr zu den Objekten haben, sondern nur zu den Einzelterminen und diese nur zu den Terminen usw.... deshalb ist mir der fehler auch nicht glauf aufgefallen :(
ich wär für jeden Lösungsvorschlag sehr dankbar!
Gruß Martin
5 Antworten
-
Kleine Ergänzung: Eine Verknüpfung von der Tabelle "Kontakte" zu der Tabelle "Objekte" ist vorhanden! man müsste diese nur noch zuweisen!
-
Wenn ich das Datenmodell richtig verstehe, dann würde ich es mit folgendem Skript in der Console oder einer Schaltfläche versuchen (vorher Backup machen):
for i in select Einzeltermine do
i.Kontakte. Objekte := i.Termine.Objekte
end
-
Das hat leider nicht funktioniert.
Mein Datenmodel sieht so aus:
https://share.ninox.com/4esap5e28kh1pkxvwllrl0mhvihmg42y1mig
Ich konnt kein screenhotbild über die "insert/image" schaltfläche hochladen, irgendwie nimmt er mir das nicht an.
-
Ich sehe, dass sich in die zweite Zeile ein Leerzeichen eingeschlichen hat, dass da nicht hingehört. Vielleicht lag's daran. Ansonsten wüsste ich jetzt nicht, warum das nicht funktionieren sollte. Es wäre allerdings hilfreich zu wissen, wie sich das Nicht-Funktionieren äußert. Fehlermeldung im Editor? Falsche Ergebnisse? Keine Ergebnoisse? ...
Der Vollständigkeit halber hier noch mal der Code ohne Leerzeichen:
for i in select Einzeltermine do
i.Kontakte.Objekte := i.Termine.Objekte
end
-
Nach langem Kopfzerbrechen, hab ich durch Zufall gefunden woran es lag.
Statt i.Kontakte.Objekte musste ich i.Interessenten.Objekte eingeben da ich den Namen der Verknüpfung damals auf "Interessenten" umbenannt habe. Die Tabelle selbst heißt natürlich Trotzdem noch Kontakte aber Ninox konnte damit nichts anfangen.
Dein Code hat mal wieder fehlerfrei funktioniert, dass mit dem Interssenten konntest du ja nicht wissen.
Ich dank dir wie immer vielmals für deine schnelle und Hilfe :)
Content aside
- vor 3 JahrenZuletzt aktiv
- 5Antworten
- 562Ansichten