Wert aus verknüpfter Tabelle immer nur ein Mal verwenden
Hallo,
vielleicht kann mir jemand Schützenhilfe geben ich bin eher ein Datenbank-Anfänger (bzw. habe SQL vor 20 Jahren mal gelernt und seit dem nie mehr benutzt)
Ein Rollout-Team hat für den Rollout von Computern zwei Miteinander verknüpfte Tabellen.
In der Tabelle eins wird Kundenname, Aufstellort und Termin etc eingetragen. Es wird zudem das Feld "Name" aus der Tabelle "PC neu" verknüpft, so dass das Team bestehende PCs aus der verknüpften Tabelle auswählen kann. So werden in erste Linie Rechtschreibefehler vermieden.
Das Non plus ultra wäre aber, wenn bereits verwendete PCs kein zweites Mal mehr verwendet werden dürfen.
Ich habe in den "Webinar DE 2019"-Vorlagen etwas ähnliches gefunden ("063 Unque records"). Dort wurde allerdings nur realisiert, dass ich in der aktuellen Tabelle keine doppelten Werte in einer Spalte Feld eintragen kann.
let myText := 'UNIQUE TEXT';
let myNR := Nr;
let myCNT := cnt(select 'UNIQUE TABLE' where Nr != myNR and 'UNIQUE TEXT' = myText);
let myDPL := first(select 'UNIQUE TABLE' where Nr != myNR and 'UNIQUE TEXT' = myText).Nr;
if myCNT != 0 then
alert("Der Wert <" + myText + "> existiert bereits in dem Datensatz Nummer " + myDPL + ". Der Text wurde deswegen gelöscht");
'UNIQUE TEXT' := null
end
Wie kann ich etwas ähnliches realisieren bei verknüpften Tabellen. Wenn möglich so erklärt, dass auch ich es verstehen kann :)
Vielen Dank für den Ratschlag im Voraus
Alex
4 Antworten
-
Hallo Alex. In den Eigenschaften von der Verknüpfung zu der Tabelle PC neu gibt es ein Feld Einschränkungen. Dort kannst du diese Formel rein schreiben
---
cnt(b.'DEINE TABELLE 1') = 0
---
Du muss natürlich statt 'DEINE TABELLE 1' den Namen von der Verknüpfung in der Tabelle PC neu zu Kundentabelle schreiben.
Leo
-
Hallo Leo und danke für die schnelle Antwort.
Leider klappt das nicht, womöglich habe ich einen Fehler gemacht?
-
cnt(b.Termine) = 0
-
Hallo Leo, klappt leider nicht. Im Gegenteil, nun war kein PC mehr sichtbar
Aber hiermit funktioniert es nun:
cnt(b.PC_alt.PC_neu.PC_neu) = 0
Toll, danke für den generellen Stupser in die richtige Richtung!!!!
LG Alex
Content aside
- vor 5 JahrenZuletzt aktiv
- 4Antworten
- 1826Ansichten