Hallo Nick,

bevor ich auf das Untenstehende eingehe: Du hast bei Deiner Mail eine andere 
Mail als Grundlage genommen und auf "Antworten" geklickt - vermutlich 
unbewusst. So erscheint diese Mail jetzt eingeordnet unter "Schwierigkeiten 
mit Briefe ... "
> 
> Wie kann man in einer Datenbank eine Formel eingeben, so dass man das
>  Resultat im Formular sofort sieht. z. B. „Feld xy“+“Feld abc“.

Kleine Ernüchterung vorweg: Auch wenn es bei den Formularen so etwas wie das 
Tabellenkontrollfeld gibt heißt das noch lange nicht, dass gleiche Funktionen 
wie bei einer Tabellenkalkulation vorhanden sind. Das Kontrollfeld ist dazu 
gedacht, auf möglichst komfortable und übersichtliche Art Daten darzustellen 
und in eine Datenbank reinzubringen - also keine Formeln ...

2 Möglichkeiten gibt es dennoch, wobei die einfachere Möglichkeit die Werte 
nicht "sofort" anzeigt sondern erst nach der Abspeicherung und Aktualisierung 
der Ansicht.
1. einfache Version: Mache eine Abfrage, die sich lediglich auf die eine 
Tabelle bezieht, die Du sowieso in Deinem Formular darstellen willst. In einem 
zusätzlichen Feld Addierst Du dann einfach die Werte der beiden gewünschten 
Felder.
Im Formular wirst Du dieses Feld ebenfalls einbauen müssen und dann am besten 
als schreibgeschützt und ohne Tabstop versehen. Die Werte sind bei 
abgespeicherten Datensätzen sichtbar, nicht aber während der Eingabe, wie dies 
z.B. in Calc der Fall wäre.
2. etwas komplizierte Version: Lies per Makro die Werte aus "Feld xy" und 
"Feld abc" aus, ermittle den neu darzustellenden Inhalt durch Addition und 
schreibe ihn in das gewünschte "Feld z". Das Makro verbindest Du dann mit den 
Feldern "xy" und "abc" mit der Eigenschaft "Bei Focusverlust".
Makro:
SUB Feldaddition
        DIM oDrawpage AS OBJECT
        DIM oForm AS OBJECT
        DIM oFeld1 AS OBJECT
        DIM oFeld2 AS OBJECT
        DIM oFeld3 AS OBJECT
        DIM i AS INTEGER
        oDrawpage=thisComponent.drawpage
        oForm=oDrawpage.forms.getByName("Formularname")
        oFeld1=oForm.getByName("Feld xy")
        oFeld2=oForm.getByName("Feld abc")
        oFeld3=oForm.getByName("Feld z")
        i = oFeld1.currentValue + oFeld2.currentValue
        oFeld3.BoundField.updateInt(i)
END SUB

Am besten ist die Kombination beider Wege, denn sonst wird mit dem einen nur 
das angezeigt, was abgespeichert wurde und mit dem anderen das, was gerade 
bearbeitet wird.
Das obige Makro geht übrigens davon aus, dass es sich bei Deinem Formular 
nicht um ein Tabellenkontrollfeld handelt. Bei diesem müsste dann die 
Vorgehensweise so sein, dass die Felder 1 bis 3 nicht als direkt zum Formular 
gehörig angesprochen werden sondern als Unterpositionen zum 
Tabellenkontrollfeld. Wenn Dies der Fall sein sollte und Du damit keine 
Erfahrung hast melde Dich einfach wieder.

Gruß

Robert

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Antwort per Email an