Supportnet Computer
Planet of Tech

Supportnet / Forum / Datenbanken

Summe in Tabelle übernehmen





Frage

Hallo Zusammen , bin hier am verzweifeld, habe in meinem Formular berechnete Felder, die Summen werden hier auch wunderbar angezeigt, erscheinen aber leider nicht in der Tabelle. Was mach ich bloß falsch? Danke und Gruß Marion

Antwort 1 von konny

Ich nochmal,
zum besseren Verstandnis:
Ich habe drei Felder Zahlung_1, Zahlung_2 und Zahlung_3, in jedem Feld steht ein Wert.
Dann habe ich noch ein Feld Gesamtsumme und hier steht die Formel unter Steuerelementeinhalt:
=[Zahlung_1]+[Zahlung_2]+[Zahlung_3]
Der richtige Wert wird im Fenster Gesamtsumme angezeigt, aber nicht in die Tabelle übernommen.
Was ist falsch?

Antwort 2 von oliverV

Hallo Marion,

nichts ist falsch.
Du hast alles (wahrscheinlich unbeabsichtigt) nichtig gemacht.

Deine Felder Zahlung_1 - _3 dürften gebundene Formularfelder sein, d.h. der Wert wird in der entsprechenden Tabelle gespeichert.
Das Feld Gesamtsumme ist ein ungebundenes Formularfeld, dessen Inhalt sich über den Steuerelementinhalt berechnet.

Grundsätzlich sollte man keine berechneten Werte in einer Tabelle speichern !
Die Gesamtsumme kannst du jederzeit zur Laufzeit berechnen (in einem Bericht, einer anderen Abfrage, usw.), so bekommst du niemals Aktualisierungsprobleme.

Wenn du ein berechnetes Feld in einer Tabelle speicherst und nachträglich die Basis der Berechnung änderst (als z.B. Zahlung_2), wird das berechnete Feld nicht automatisch neu berechnet.

Wenn du dennoch nicht auf mich hören willst und die Gesamtsumme in der Tabelle speichern willst, muss du dein Formularfeld [Gesamtsumme] an das Tabellenfeld [Gesamtsumme] binden (ändere den Steuerelementinhalt).

Verwende beim Ereignis "Nach Aktualisierung" der drei Einzelzahlungsfelder sinngemäß folgenden VBA-Code:
[Code]
Me.Gesamtsumme = Me.Zahlung_1 + Me.Zahlung_2 + Me.Zahlung_3


Das Formularfeld [Gesamtsumme] solltest du auf jeden Fall sperren, sodass ein unbeabsichtigtes überschreiben oder Löschen nicht möglich ist; weiterhin sollte gewährleistet sein, das es in der Datenbank keine andere Zugriffsmöglichkeit auf das Gesamtsummenfeld oder die Einzelzahlungsfelder gibt, um ein dortiges Editieren zu vermeiden; sonst bekommst du die zuvor beschriebenen Aktualisierungsprobleme.


Grundsätzlich (ohne die DB-Struktur genauer zu kennen) dürfte es auch nicht besonders sinnvoll sein, in einem Datensatz 3 Zahlungsfelder zu hinterlegen.
Wenn Teilzahlungen möglich sind, sollte man dies über eine separate Tabelle tbl_Zahlungen realisieren.
Die Formulardarstellung nimmt man normalerweise in einem Unterformular vor.
Hierbei kann man pro Datensatz (Rechnung o.ä.) beliebig viele Zahlungen erfassen (nicht wie bisher max. 3, in der Praxis aber wahrscheinlich meistens nur eine Zahlung).

Gruß

Oliver

Antwort 3 von konny

Hallo Oliver,
vielen Dank für Deine Antwort, ich habe jetzt das Feld Gesamtsumme gesperrt und unter Ereignis die Formel eingetragen, die Du mir genannt hast(aber nur bei Gesamtsumme, ist doch richtig oder).

jetzt erscheibt dort aber:
=[Me].[Gesamtsumme]=[Me].[Zahlung_2002]+[Me].[Zahlung_2003]+[Me].[Zahlung_2004]

kann das richtig sein?

Gruß Marion

Antwort 4 von oliverV

Hallo Marion,

den Code musst du beim Ereignis "Nach Aktualisierung" des Formularfeldes [Zahlung_1] in den VBA-Editor eingeben (klicke dazu auf die drei Punkte am Ende der Zeile, dann öffnet sich der Editor).

Trage dort zwischen
[Code]
Private Sub Zahlung_1__AfterUpdate()
Und
End Sub

den entsprechenden Code ein.

(Das Ereignis "Nach Aktualisierung" tritt ein, wenn der Inhalt des Formularfeldes geändert wird).

Wiederhole das bei den Feldern Zahlung_2 und Zahlung_3.
Entferne deinen Eintrag in dem Gesamtsummenfeld.

Gruß

Oliver

Antwort 5 von konny

Hallo Oliver,
tausend Dank, jetzt funktioniert alles.
Danke und
Gruß Marion

Ich möchte kostenlos eine Frage an die Mitglieder stellen:


Ähnliche Themen:


Suche in allen vorhandenen Beiträgen: