[gelöst]Table Form: Zugriff auf zwei Spalten in einem Feld

7. April 2008 13:17

Hallo,

ich habe in einer Tabelle zwei Spalten, die jeweils ein Datum angeben. Ich möchte in einer Form eine Spalte haben, die das jeweils grössere Datum ausgibt. Min("Spalte1","Spalte2") bei SourceExpr geht nicht (war nur so 'ne Idee).

Ich dachte zuerst an ein Lookup-Field, hab es aber nicht geschafft, eine zusätzliche Spalte in der Form einzufügen, ohne sich auf eine Spalte in der Tabelle zu beziehen. Geht das überhaupt? Wie?
Zuletzt geändert von MariaNav am 8. April 2008 08:11, insgesamt 1-mal geändert.

7. April 2008 13:25

Eine Möglichkeit, wenn du keine Änderungsrechte auf Tabellenebene hast:

Definiere auf der Form eine neue globale Variable (z.B. MaxDatum) und setze diese Variable als die SourceExpr deiner neuen Textbox.
Nun schreibst du im OnAfterGetCurrRecord-Trigger der Form:
Code:
IF "Spalte 1" > "Spalte 2" THEN
  MaxDatum := "Spalte 1"
ELSE
  MaxDatum := "Spalte 2";

7. April 2008 13:27

Hallo MariaNav,

evtl. so, auf dem "OnAfterGetRecord - Trigger":
(rec.Datum gegen deine Felder tauschen)
Code:
IF rec.Datum1 > rec.Datum2 THEN
  DateTemp := rec.Datum1
ELSE
  DateTemp := rec.Datum2;


In der Form zeigst du in der SourceExp die Variable "DateTemp" an.

Edit:
Natalie war schenller :-P

7. April 2008 13:31

Dann konnte meine Idee ja so falsch nicht sein ;-)

7. April 2008 13:43

Änderungsrechte auf Tabellenebene hab ich schon, will aber beide Spalten behalten. Wenn ich nun dort eine zusätzliche Lookup-Spalte definiert hätte, würde es mich doch bei jedem Aufruf der Tabelle (egal von welcher Form oder Tabelle aus) Laufzeit kosten, oder?

Danke jedenfalls für die Hilfe,

Maria

7. April 2008 14:11

Wenn du eine zusätzliche Textbox hinzufügst (wahrscheinlich meintst du diese mit "Lookup-Spalte) und die Berechnung wie geschildert implementierst, wirst du dadurch keine merklichen Leistungseinbußen befürchten müsse.
Der OnAfterGetCurrRecord wird sowieso für jeden Datensatz durchlaufen, ganz gleich, ob du darin nun Quelltext implementiert hast oder nicht.

7. April 2008 14:19

MariaNav hat geschrieben:, ohne sich auf eine Spalte in der Tabelle zu beziehen. Geht das überhaupt? Wie?

Ja, das geht.
Einfach irgendein Feld aus dem "FieldMenu" in die Form ziehen und die "SourceExpr" auf die Variable ändern.

MariaNav hat geschrieben:würde es mich doch bei jedem Aufruf der Tabelle (egal von welcher Form oder Tabelle aus) Laufzeit kosten, oder?

Meiner Meinung nach ist das in diesem Fall zu vernachlässigen.

Natalie hat geschrieben:Dann konnte meine Idee ja so falsch nicht sein

Zwei dumme ein Gedanke :mrgreen: