Mit Button Untertabelleneintrag erstellen
Hallo,
ich möchte gerne mit einem Button einen neuen Datensatz in einer Untertabelle erstellen und gleichzeitig mit festgelegten Werten befüllen.
In der Untertabelle 'Getränke Verbrauch' gibt es das Feld "Menge" und eine Verknüpfung zur Tabelle 'Getränke'
Der Button soll nun einen neuen Eintrag erzeugen und direkt die Menge, z.B. "1" hinterlegen und einen festgelegte "Nr" aus der Tabelle 'Getränke' nehmen, z.B. "33"
Ich bekomme die Syntax dafür wieder einmal nicht hin :-(
Vielen Dank im Voraus
Oliver M.
12 Antworten
-
Hallo,
let new := (create 'Getränke Verbrauch');
new.(Menge := 1);
new.('Getränke':= 33)
Rufst Du aus 'Getränke' auf und willst den Datensatz von dem Du aufrufst direkt verknüpfen, dann:
let my := this;
let new := (create 'Getränke Verbrauch');
new.(Menge := 1);
new.('Getränke':= my)
lg, Torsten
-
Also wird der neue DS mit -> new.('Getränke':= my) verknüpft?
-
bei mir geht das leider nie?
-
jetzt hab ich verstanden, sorry
-
Hallo Torsten,
vielen Dank, damit kann ich super arbeiten! :-)
PS:
Man kann es nicht oft genug betonen:Meine Datenbank funktioniert nur weil es dieses Forum gibt!
Dankeschön!
-
moin, ich würde mich der Frage anschließen, da ich etwas Ähnliches suche. Die Frage wäre, kann man z.B. mit einem 2. Button diesen getätigten Eintrag in der Untertabelle auch wieder löschen?
Gruß
Thomas -
(Es kann auch der gleiche Button, mit 2 verschiedenen Zuständen / Beschriftungen sein)
-
Wenn du den letzten Eintrag in einer (Unter-)tabelle suchst und löschen möchtest, kannst du die Formel
delete last(select Tabelle)
benutzen.
Gruß, Jörg
-
Hallo Jörg,
ok, Danke.
Aber was wäre, wenn es nicht der Letzte ist? Der müsste dann ja anhand der ID identifiziert werden.
Gruß
Thomas -
Das kommt darauf an mit wievielen Leuten ihr an der Datenbank arbeitet und ob es möglich wäre, dass gleichzeitig noch ein weiterer Datensatz erstellt wird. Dann wäre es in Tat schwierig diese beiden (oder mehr) Datensätze auseinander zu halten. Aber wenn ich deine Frage richtig verstanden habe, wolltest du den gerade erstellten Datensatz mit einem Button wieder löschen und das wäre dann der letzte.
Insgesamt ist es schon möglich bestimmte Datensätze aus den Untertabellen zu löschen, man muss sich nur vorher überlegen, wodurch diese(r) Datensätze identifiert werden sollen.
Gruß, Jörg
-
Wenn man schon mit der Untertabelle Arbeitet dann würde ich ohne Select arbeiten:
delete last(Untertabelle);
noch sicherer ist es, wenn man ein verstecktes Zusatzfeld einrichtet (Nummerfeld). Nennen wir dieses Last_ID.
Dann beim Anlegen neuen Datensatz in der Untertabelle:
---
let my:=this;
let new:=create Untertabelle;
new.Haupttabelle:=my;
new.Datum:=today();
.
.
my.Last_ID:=number(new.Nr)
----
Jetzt kann man noch ein Button Letzten Eintrag löschen anlegen:
---
delete record(Untertabelle,Last_ID);
Last_ID:=null
---
und bei der Sichtbarkeit des Buttons würde ich dann so schreiben:
---
Last_ID
---
Leo
-
Hallo Jörg & Leonid,
danke für den Input. Ich bin noch dabei das zu testen und hinzubekommen. Ich muss noch verstehen wie das funktioniert. Es wäre erstmal nur 1 Person, die an der Datenbank arbeitet. Der Gedanke war, auch zu einem späteren Zeitpunkt diesen Eintrag noch löschen zu können. Also auch dann, wenn in der Zwischenzeit weitere Einträge erfolgt sind.
Gruß
Thomas
Content aside
- vor 5 JahrenZuletzt aktiv
- 12Antworten
- 4929Ansichten