Hallo Jürgen,
ich habe in Base zu einer Tabelle und einer Abfrage ein Formular als
Eingabemaske erstellt. Da ich mit den eingegebenen Daten Berechnungen anstelle,
habe ich als Quelle die Abfrage genommen. "Im Prinzip" klappt das gut,
allerdings werden die Berechnungen erst durchgeführt, wenn ich auf den Buttom
"Datensatz speichern" klicke. Da das Prog. erst mal erfahren muß, daß die
Abfrage auch ausgeführt/aktualisiert werden soll, leuchtet mir das noch ein.
Das geht über die Abfrage nicht anders, weil die Daten ja erst hinterher
bei der Datenbank landen und dann die Daten aus der Datenbank für die
Abfrage wieder verwendet werden.
Die Möglichkeit, hierfür eine Abfrage zu verwenden, ist nicht geeignet
für Formulare, bei denen Du Daten in Einzelfelder eingibt. Dafür eignet
sich bei Datenänderungen und Neueingaben am besten das
Tabellenkontrollfeld. Dann siehst Du ja den gerade eingegebenen Datensatz.
Du musst so einen Wert über Makros berechnen. So etwas dürfte in etwa so
gehen:
SUB Eingabekontrolle(oEvent AS OBJECT)
oFeld = oEvent.Source
oForm = oFeld.Parent
oFeld2 = oForm.getByName("Zielfeldname")
oFeld2.CurrentValue = oFeld.getCurrentValue / 123456
END SUB
Habe ich jetzt nicht weiter ausprobiert. Das Makro schreibt dann den
entsprechenden Wert in die Zelle "Zielfeldname" im gleichen Formular wie
dem, in dem das Feld liegt. Das Makro sollte z.B. beim Verlassen der
Zelle ausgelöst werden.
Das Makro schreibt den Wert nicht in eine Datenbank. Dazu musst Du an
oFeld2.BoundField.updateDouble(oFeld.getCurrentValue / 123456)
gehen, da hiermit dann auch ein Wert an die darunterliegende Tabelle
weitergegeben wird. Das ist aber nicht erforderlich, da letztlich doch
der Wert sowieso berechnet und nicht abgespeichert wird.
Ich hoffe, dass das so hin haut. Mit den direkten Wegen über das
auslösende Ereignis habe ich noch nicht so viel Erfahrung.
Gruß
Robert
--
Liste abmelden mit E-Mail an: users+unsubscribe@de.libreoffice.org
Probleme? http://de.libreoffice.org/hilfe-kontakt/mailing-listen/abmeldung-liste/
Tipps zu Listenmails: http://wiki.documentfoundation.org/Netiquette/de
Listenarchiv: http://listarchives.libreoffice.org/de/users/
Alle E-Mails an diese Liste werden unlöschbar öffentlich archiviert
Context
Privacy Policy |
Impressum (Legal Info) |
Copyright information: Unless otherwise specified, all text and images
on this website are licensed under the
Creative Commons Attribution-Share Alike 3.0 License.
This does not include the source code of LibreOffice, which is
licensed under the Mozilla Public License (
MPLv2).
"LibreOffice" and "The Document Foundation" are
registered trademarks of their corresponding registered owners or are
in actual use as trademarks in one or more countries. Their respective
logos and icons are also subject to international copyright laws. Use
thereof is explained in our
trademark policy.