Tabelle durchsuchen und bestimmten Werten einer anderen Tabelle zuordnen (Bsp. 237)
Mit der Schaltfläche aus „Termin“ soll der aktuelle Termin gleich mehreren Datensätzen aus „Gruppe“ zugeordnet werden. Dies soll mit genau den Datensätzen passieren, dessen „Jahr“(aus Gruppe) mit dem Tag „???“ (aus Termin) übereinstimmen.
Seht euch bitte die Datenban 237 dazu an. Was muss ich tun, um das oben formulierte Ziel zu erreichen?
5 Antworten
-
Hallo Alfred,
Du benötigst eine dritte Tabelle ('Termin-Gruppe'), die Dir die gewünschte n:m-Beziehung herstellt. Der Button erhält dann folgendes Skript:
let my := this;
let myTag := Tag;
let myGruppe := (select Gruppe where Jahr = myTag);
for i in myGruppe do
let myNew := (create 'Termin-Gruppe');
myNew.(Termin := my);
myNew.(Gruppe := i)
end
Ich hab das mal so in besagter Datenbank eingearbeitet.
lg, Torsten
-
Lieber Torsten, herzlichen Dank für die schnelle Hilfe. Das funktioniert ja hervorragend.
Ich muss die Datebank nun doch noch um eine Funktion erweitern: Das Feld „Jahr“ in der Tabelle Gruppe soll ein Mehrfachauswahlfeld sein, sodass man einer Gruppe mehrere Jahre zuordnen kann - in der Beispieldatenbank habe ich das z.B. mit Gruppe 1 (2019, 2020) und Gruppe 3 (2020, 2021) gemacht.
Wie muss man Torstens Script anpassen, damit man allen Gruppen, die das durch Termin/Tag gekennzeichnete Jahr, z.B. 2020 enthalten, den gewünschten Termin zuordnen kann? In der Beispieldatenbank (237-HelpMe) werden derzeit nur die Gruppen hinzugefügt, die 2020 als alleinigen Wert haben, Gruppe 1 und Gruppe 3 werden nicht berücksichtigt, da sie mit mehreren Jahren gekennzeichnet sind.
Eigentlich geht es, glaube ich um die Anpassung des Select-Befehls: select Gruppe where Jahr „enthält“ (statt „=„) myTag (ich kenne aber die Sythax nicht). Geht das?
Über eure Hilfe freue ich mich sehr.
Liebe Grüße
Alfred
-
Hat irgendjemand eine Idee?
-
Idee:
[...]
let myTag := text(Tag);
let myGruppe := (select Gruppe where contains(text(Jahr), myTag));
[...]
Rest wie gehabt.
-
Super, vielen Dank. Das hat auf Anhieb geklappt. Da wäre ich allein nicht drauf gekommen.
Liebe Grüße
Alfred
Content aside
- vor 5 JahrenZuletzt aktiv
- 5Antworten
- 1246Ansichten