Supportnet / Forum / Datenbanken
Saldo berechnung im Formular
Frage
Hallo,
ich habe zwei Tabellen ("Kontenbezeichnung" und "Kasse:Buch")
In der Kontebezeichnung stehen folgende Daten:
Name der Bank, Kontonummer, Saldo.
in der Kasse:Buch Tabelle stehen Daten über Einnahmen,Ausgaben etc. Ein Kombinationsfeld lässt mich aus der Tabelle Kontenbezeichnung das entsprechende Konto auswählen. Die eigenschaften werden per column befehl auf mehrere TxtFelder verteilt. So auch bei dem Feld Saldo.
Dieses Feld soll automatisch den Kontostand errechnen. Das Funktioniert auch schon. Doch leider, sobald ich zum nächsten Datensatz springe hat er wieder den ursprünglichen Kontostand angezeigt.
Er scheint die Rechnung, die er in dem Datensatz davor macht nicht zu speichern für alle Datensätze.
Wie kriege ich es nun hin, dass das Feld Saldo in dem Formular zum bearbeiten der Kasse:Buch Tabelle sich auch speichert und zwar in der Tabelle Kontenbezeichnung im Feld Saldo.
Vielen Dank
Antwort 1 von JohnnyLoser
Hi Christian,
mal vorweg gesagt, eine Sache macht doch überhaupt keinen Sinn. Nämlich das Saldo eines Kontos in einem Feld zu speichern, welches nur dann aktualisiert wird, wenn Du über ein Formular das entsprechende Konto aufrufst?!?!
Dies würde doch bedeuten, daß immer ein Teil der Konten den korrekten und der andere Teil einen inkorrekten Saldo enthält, oder?
Felder, die tagesaktuell berechnet werden müssen, haben in einer Tabelle meines Erachtens nichts verloren.
Erstelle stattdessen eine Abfrage, in der Du das Saldo aktuell berechnen läßt und basiere Dein Formular auf diese Abfrage.
Gruß
Johnny
mal vorweg gesagt, eine Sache macht doch überhaupt keinen Sinn. Nämlich das Saldo eines Kontos in einem Feld zu speichern, welches nur dann aktualisiert wird, wenn Du über ein Formular das entsprechende Konto aufrufst?!?!
Dies würde doch bedeuten, daß immer ein Teil der Konten den korrekten und der andere Teil einen inkorrekten Saldo enthält, oder?
Felder, die tagesaktuell berechnet werden müssen, haben in einer Tabelle meines Erachtens nichts verloren.
Erstelle stattdessen eine Abfrage, in der Du das Saldo aktuell berechnen läßt und basiere Dein Formular auf diese Abfrage.
Gruß
Johnny
Antwort 2 von Christian
Hi thx für deine antwort.
das Problem ist, dass sobald auf dem Konto ein Eingang gemacht wird, soll der wert hinzugefügt werden. wird stattdessn im Ausgang ein wert eingegeben soll vom saldo der wert abgezogen werden. dieses ist ja nicht das problem.
das problem, welches ich jetzt habe ist folgendes.
In der Tabelle Kontenbezeichnung besteht ein feld Saldo. Aus diesem feld sollen alle Formulare den Saldo auslesen können. Das geht nur leider nicht, da ja die Formulare auf anderen Tabellen basieren und ich nicht in dem textfeld eine zweite tabelle angeben und zugleich von Eingabe oder Ausgabe berechnen lassen kann.
Verstehst du?
das Problem ist, dass sobald auf dem Konto ein Eingang gemacht wird, soll der wert hinzugefügt werden. wird stattdessn im Ausgang ein wert eingegeben soll vom saldo der wert abgezogen werden. dieses ist ja nicht das problem.
das problem, welches ich jetzt habe ist folgendes.
In der Tabelle Kontenbezeichnung besteht ein feld Saldo. Aus diesem feld sollen alle Formulare den Saldo auslesen können. Das geht nur leider nicht, da ja die Formulare auf anderen Tabellen basieren und ich nicht in dem textfeld eine zweite tabelle angeben und zugleich von Eingabe oder Ausgabe berechnen lassen kann.
Verstehst du?
Antwort 3 von Christian
Achso sry zu deiner anmerkung..
ich hoffe ich habe dich richtig verstanden.
Die Konten sollen ja unterschiedlich abgerechnet werden. das eine ist zum beispiel ein Konto bei einer Bank über das Zahlungen verbucht werden.
Das andere ist zB kein Konto in der Art sondern eher eine Haushaltskasse , die lokal ist. wo halt jeder sich geld rausnehmen kann für sprit zB und das dann verbuchen..
ich hoffe ich habe dich richtig verstanden.
Die Konten sollen ja unterschiedlich abgerechnet werden. das eine ist zum beispiel ein Konto bei einer Bank über das Zahlungen verbucht werden.
Das andere ist zB kein Konto in der Art sondern eher eine Haushaltskasse , die lokal ist. wo halt jeder sich geld rausnehmen kann für sprit zB und das dann verbuchen..
Antwort 4 von JohnnyLoser
Hi Christian,
so ganz verstehe ich Deine Problematik wohl doch nicht.
Ich gehe davon aus, daß Du als Basis zwei Tabellen besitzt:
Tabelle1: Kontonummer, Name, [Saldo]
Tabelle2: Kontonummer, Datum, Wert, ...
Jedesmal, wenn ein Posten verbucht wird, wird in Tabelle2 ein neuer Datensatz hinzugefügt, welcher im Feld Wert entweder den negativen oder positiven Betrag enthält.
Wenn Du nun Dein(e) Formular(e) nicht auf Basis einer Tabelle aufbaust, sondern über eine Abfrage, wie z.B.
SELECT Tabelle1.Kontonummer, Tabelle1.Name, SUM(Tabelle2.Wert) AS Saldo FROM Tabelle1 INNER JOIN Tabelle2 ON Tabelle1.Kontonummer = Tabelle2.Kontonummer GROUP BY Tabelle1.Kontonummer
dann bekommst Du den aktuellen Saldo im Formular angezeigt.
Wenn Du zusätzlich das anzuzeigende Konto über eine ComboBox anzeigen lassen willst, so kannst Du diese in den Formularkopf stellen, als RowSource die Tabelle1 hinterlegen und über das OnClick-Ereignis den ControlSource für Dein Formular neu zuweisen, z.B.
Me.RecordSource = "SELECT Tabelle1.Kontonummer, Tabelle1.Name, SUM(Tabelle2.Wert) AS Saldo FROM Tabelle1 INNER JOIN Tabelle2 ON Tabelle1.Kontonummer = Tabelle2.Kontonummer GROUP BY Tabelle1.Kontonummer HAVING Tabelle1.Kontonummer = '" & ComboBox & "'"
Was hältst Du davon?
Johnny
so ganz verstehe ich Deine Problematik wohl doch nicht.
Ich gehe davon aus, daß Du als Basis zwei Tabellen besitzt:
Tabelle1: Kontonummer, Name, [Saldo]
Tabelle2: Kontonummer, Datum, Wert, ...
Jedesmal, wenn ein Posten verbucht wird, wird in Tabelle2 ein neuer Datensatz hinzugefügt, welcher im Feld Wert entweder den negativen oder positiven Betrag enthält.
Wenn Du nun Dein(e) Formular(e) nicht auf Basis einer Tabelle aufbaust, sondern über eine Abfrage, wie z.B.
SELECT Tabelle1.Kontonummer, Tabelle1.Name, SUM(Tabelle2.Wert) AS Saldo FROM Tabelle1 INNER JOIN Tabelle2 ON Tabelle1.Kontonummer = Tabelle2.Kontonummer GROUP BY Tabelle1.Kontonummer
dann bekommst Du den aktuellen Saldo im Formular angezeigt.
Wenn Du zusätzlich das anzuzeigende Konto über eine ComboBox anzeigen lassen willst, so kannst Du diese in den Formularkopf stellen, als RowSource die Tabelle1 hinterlegen und über das OnClick-Ereignis den ControlSource für Dein Formular neu zuweisen, z.B.
Me.RecordSource = "SELECT Tabelle1.Kontonummer, Tabelle1.Name, SUM(Tabelle2.Wert) AS Saldo FROM Tabelle1 INNER JOIN Tabelle2 ON Tabelle1.Kontonummer = Tabelle2.Kontonummer GROUP BY Tabelle1.Kontonummer HAVING Tabelle1.Kontonummer = '" & ComboBox & "'"
Was hältst Du davon?
Johnny
Antwort 5 von Christian
HI Johnny,
vielen Dank für deine Lösung, ich probiere sie mal aus.
Melde mich dann ob es dem entspricht, was ich mir vorgestellt hatte..
Vielen Dank nochmal
Gruss
Christian
vielen Dank für deine Lösung, ich probiere sie mal aus.
Melde mich dann ob es dem entspricht, was ich mir vorgestellt hatte..
Vielen Dank nochmal
Gruss
Christian
Antwort 6 von Christian
Hmm, entweder bin ich zu blöd für deinen vorschlag oder ich bin zu blöd :-)
habe das ding jetzt nochmal neu nach deiner vorlage aufgebaut.
Das Formular hat auch den Saldo angezeigt, leider aber nur den wert, der in der Tabelle2 steht und somit nicht irgendwie addiert oder subtrahiert.
Hinzu kommt , dass kurz nachdem adden der Combo Box, access abgeschmiert ist und gleich die gesamte db mit gezogen hat :-)
setze das ding jetzt nochmal neu auf und hoffe, dass ich das jetzt hinkriege
habe das ding jetzt nochmal neu nach deiner vorlage aufgebaut.
Das Formular hat auch den Saldo angezeigt, leider aber nur den wert, der in der Tabelle2 steht und somit nicht irgendwie addiert oder subtrahiert.
Hinzu kommt , dass kurz nachdem adden der Combo Box, access abgeschmiert ist und gleich die gesamte db mit gezogen hat :-)
setze das ding jetzt nochmal neu auf und hoffe, dass ich das jetzt hinkriege
Antwort 7 von JohnnyLoser
Christian,
sende mir mal Deine e-mail-adresse, dann lasse ich dir eine Beispieldatei zukommen.
gruß
johnny
sende mir mal Deine e-mail-adresse, dann lasse ich dir eine Beispieldatei zukommen.
gruß
johnny

