Meine Datenbank „Ausgaben“ hat die Tabellen „Monate“, „tblJedenMonat“, „tblAusgabenMonat“
„tblJedenMonat“ hat die Felder „Ausg1“ und „Ausg2“. „tblAusgabenMonat“ die Felder „MA1“ und MA2
In der Abfrage sind die Tabellen verknüpft.
In dem Formular “frmAusgaben“ rufe ich mittels Listenfeld die Monate auf und gebe die Beträge ein. Die Monatssumme „SumMonat“ aller funktioniert
Jetzt möchte ich mit einem Macro die Jahressumme aus „SumMonat“ bilden. Wenn ich einen Wert in den o.a. Feldern ändere, soll sich auch die Jahressumme ändern.
In der Abfrage habe ich zwar eine SELECT Summe… eingerichtet, aber die Summe aktualisiert sich nur bei Monatswechsel.
Kann mir geholfen werden?
🙏 Helfen Sie jetzt mit, unser LibreOffice Forum zu erhalten! 🙏
Mit Ihrer Spende sichern Sie den Fortbestand, den Ausbau und die laufenden Kosten dieses Forums. 🌱
🍀 Jeder Beitrag zählt – vielen Dank für Ihre Unterstützung!🍀
>> Dank Ihrer Unterstützung -> Keine Werbung für alle registrierten LibreOffice-Forum User! <<
🤗 Als Dankeschön werden Sie im Forum als LO-SUPPORTER gekennzeichnet. 🤗
[ERLEDIGT]Summe Mehrere Felder aller Datensätze bilden
[ERLEDIGT]Summe Mehrere Felder aller Datensätze bilden
- Dateianhänge
-
- Ausgaben.odb.zip
- (19.63 KiB) 98-mal heruntergeladen
Zuletzt geändert von Onno am Mo 24. Jan 2022, 18:30, insgesamt 1-mal geändert.
Gruß
Onno
Onno
Re: Summe Mehrere Felder aller Datensätze bilden
Hallo Onno,
eine Abfrage kann nur zu bestehenden Daten das jeweilige Ergebnis liefern. Schau Dir einfach einmal die Abfrage an. Da kannst Du ja direkt sehen, was passiert, wenn Du Daten änderst und wenn Du anschließend den Datensatz speicherst. Erst beim Speichern des Datensatzes springt die Summierung der Abfrage an. Vorher steht in der Datenbank ja nichts neues.
Wenn Du also jede Änderung innerhalb Deiner Daten sichtbar machen möchtest, dann musst Du direkt nach der Änderung speichern. Also gegebenenfalls ein oForm.UpdateRow gefolgt von einem oForm.reload. Da das zum ersten Datensatz springt musst Du häufig vorher die Zeile herausbekommen, zu der Du springen willst:
Das Formular, das Du da konstruiert hast, produziert übrigens völlig falsche Angaben, wenn Du einmal ohne Makros dort hinein gehst. Ich kann z.B. eine Ausgabe auf 150 € und die andere auf 50 € setzen und da bleibt weiter 100 € als Summe der Ausgaben stehen. Das gilt im Prinzip für alle Tabellen. Summen werden in einer Datenbank berechnet und nicht über ein Makro an die entsprechende Stelle geschrieben. Sie haben nirgendwo sonst zu erscheinen als in einer Abfrage oder einer Ansicht. Ansonsten bemerkst Du solche Fehleingaben nie.
Deswegen: Schau Dir die Abfrage an. Mache dort Eingaben. Schau, ob das Ergebnis und alle Einträge anschließend stimmen.
Gruß
Robert
eine Abfrage kann nur zu bestehenden Daten das jeweilige Ergebnis liefern. Schau Dir einfach einmal die Abfrage an. Da kannst Du ja direkt sehen, was passiert, wenn Du Daten änderst und wenn Du anschließend den Datensatz speicherst. Erst beim Speichern des Datensatzes springt die Summierung der Abfrage an. Vorher steht in der Datenbank ja nichts neues.
Wenn Du also jede Änderung innerhalb Deiner Daten sichtbar machen möchtest, dann musst Du direkt nach der Änderung speichern. Also gegebenenfalls ein oForm.UpdateRow gefolgt von einem oForm.reload. Da das zum ersten Datensatz springt musst Du häufig vorher die Zeile herausbekommen, zu der Du springen willst:
Code: Alles auswählen
oForm.UpdateRow()
loRow = oForm.getRow() ' notiere die aktuelle Zeilennummer
oForm.reload() ' lade die Datenmenge neu
oForm.absolute(loRow)
Deswegen: Schau Dir die Abfrage an. Mache dort Eingaben. Schau, ob das Ergebnis und alle Einträge anschließend stimmen.
Gruß
Robert
https://de.libreoffice.org/get-help/documentation/
https://www.familiegrosskopf.de/robert/index.php?&Inhalt=base_handbuch
https://www.familiegrosskopf.de/robert/index.php?&Inhalt=xml_formulare
https://www.familiegrosskopf.de/robert/index.php?&Inhalt=base_handbuch
https://www.familiegrosskopf.de/robert/index.php?&Inhalt=xml_formulare
[ERledigt]Re: Summe Mehrere Felder aller Datensätze bilden
Hallo Robert,
Ich hatte mich an ACCESS angelehnt und dachte, das geht hier ähnlich, daher die Macros.
Viele Dank für das "Augen öffnen"
Gruß
Onno
Ich hatte mich an ACCESS angelehnt und dachte, das geht hier ähnlich, daher die Macros.
Viele Dank für das "Augen öffnen"
Gruß
Onno
An alle, die das LibreOffice-Forum gern nutzen und unterstützen wollen:
Bitte helfen Sie uns mit 7 Euro pro Monat.
Durch Ihren Beitrag tragen Sie dazu bei, unsere laufenden Kosten für die kommenden Monate zu decken.
Unkompliziert per Kreditkarte oder PayPal.
Als ein kleines Dankeschön werden Sie im LO-Forum als SUPPORTER gekennzeichnet.