Mehrere Zahlungen auf eine Rechnung (Access)

Jörg @, Hofgeismar, Mittwoch, 16.01.2019, 22:21 (vor 279 Tagen)

Hallo

Ich mache gerade meine erste Datenbank und dachte das Problem müssten doch hunderte haben aber ich habe keine Lösung gefunden.... vielleicht stelle ich die falschen fragen.....

Ich habe 2 Tabellen tblRechnungen und tblZahlungen

Eine Rechnung (Nr.1) sagen wir mal hat einen Betrag von 100€ und steht in tblRechnungen

Jetzt zahlt der Kunde 40€ und die Versicherung 20€ also 2 Datensätze in tblZahlungen

Ich mache ein Abfrage aus beiden Tabellen in der ich die Zahlungen auf die Rechnungen verteile

Also
RE.Nr.1 | Kunde xy | Betrag 100€ | Zahlbetrag 40€|BerechnetesFeld Betrag-Zahlbetrag 60€

RE.Nr.1 | Kunde xy | Betrag 100€ | Zahlbetrag 20€|BerechnetesFeld Betrag-Zahlbetrag 80€

Wenn ich jetzt den Betrag auf Mittelwert stelle (2*100/2) habe ich wieder den Betrag von 100€ und wenn ich dann noch das Feld Zahlbetrag auf Summe stelle gibt er mir 60€ aus im BerechnetesFeld Betrag-Zahlbetrag 140€ ???

Wo liegt mein Denkfehler? (ich sehe schon das 60+80=140 sind) wie kann ich mit der Summe aller Zahlungen also 60€ Rechnen

Meine Idee war 100€-60€=40€ Restbetrag(BerechnetesFeld)

Hintergrund: Ich habe teilweise 3 oder 4 Zahlungen aus verschiedener Richtung auf eine Rechnung und möchte zum einen die noch offene Summe mit einem Blick erkennen und wenn der Restbetrag = 0 ist einen Schalter auf ganz bezahlt setzten oder mit einer Abfrage mit ><0 nur die Offenen Rechnungen im Zahlungsformular anzeigen.

Ich hoffe ich habe mich verständlich ausgedrückt..... DANKE!

In einem Einzel Formular funktioniert die Rechnung im Endlos Formular leider auch nicht....

Mehrere Zahlungen auf eine Rechnung

Martin Asal @, Donnerstag, 17.01.2019, 16:58 (vor 279 Tagen) @ Jörg

Hallo und sorry, dass ich nicht ganz nachvollziehen kann, wie du da rechnest. Der Sinn der Mittelwerte erschließt sich mir nicht. Aber wenn ich das hier sehe:

RE.Nr.1 | Kunde xy | Betrag 100€ | Zahlbetrag 40€|BerechnetesFeld Betrag-Zahlbetrag 60€
RE.Nr.1 | Kunde xy | Betrag 100€ | Zahlbetrag 20€|BerechnetesFeld Betrag-Zahlbetrag 80€

Sehe ich erst mal einen Verstoß gegen die Normalisierung. Wenn in einem dieser Datensätze nicht "100" eingetragen wird, sind die Daten inkonsistent. Du brauchst eine Tabelle "Rechnungen", in der "100" eingeben wird, und eine Tabelle "Zahlungen". Außerdem sind berechnete Felder in einer Tabelle des Teufels :-) Berechnungen gehören in Abfragen.

Martin

Mehrere Zahlungen auf eine Rechnung

Jörg @, Hofgeismar, Donnerstag, 17.01.2019, 17:28 (vor 279 Tagen) @ Martin Asal

Das sind natürlich Daten aus 3 Tabellen

tblKunden

kundeName

tblRechnungen
rechnNummer
rechnSumme

tblZahlungen
zahluBetrag


Und natürlich mache ich eine Abfrage!

SELECT tblRechnungen.rechnNummer, Avg(tblKunden.kundeName) AS MittelwertvonkundeName, tblRechnungen.rechnSumme, Count(tblZahlungen.zahluDatum) AS AnzahlvonzahluDatum, Sum(tblZahlungen.zahluBetrag) AS SummevonzahluBetrag, Sum([rechnSumme]-[zahluBetrag]) AS [=rechnRestsummeRef]
FROM (tblKunden INNER JOIN tblRechnungen ON tblKunden.kundeID = tblRechnungen.rechnKundenIDRef) INNER JOIN tblZahlungen ON tblRechnungen.rechnID = tblZahlungen.zahluRechnIDRef
GROUP BY tblRechnungen.rechnNummer, tblRechnungen.rechnSumme
ORDER BY tblRechnungen.rechnNummer DESC;


Und in der kann ich ja in der Zeile unter Funktion rechnSumme Mittelwert einstellen was bei mehr als einen Datensatz (Zahlungen) dazu führt das die rechnSumme immer den Bruttowert ausgibt und bei zahluBetrag auf Summe was das führt das die Zahlungen aufaddiert werden.

Kurz gesagt will ich nur von einer Rechnung mehr als eine Zahlungen abziehen und einen Restbetrag bekommen und das geht anscheinend nicht mit access nicht....

Mehrere Zahlungen auf eine Rechnung

Martin Asal @, Donnerstag, 17.01.2019, 22:25 (vor 278 Tagen) @ Jörg

Kurz gesagt will ich nur von einer Rechnung mehr als eine Zahlungen abziehen und einen Restbetrag bekommen und das geht anscheinend nicht mit access nicht....

Natürlich geht das. Access kann Daten garantiert immer auswerten. Du gehst es nur falsch an ;-)

Konzentriere dich für den Anfang auf das Wesentliche: Die Abfrage sollte erst mal nur die Felder

- Avg(tblRechnungen.rechnNummer)
- Sum(tblZahlungen.zahluBetrag)

enthalten, gruppiert nach tblRechnungen.rechnNummer. Als Anfänger speicherst du diese Abfrage erst mal, und notfalls nutzt du diese Abfrage als Datensatzquelle für eine zweite Abfrage, in der du die Differenz berechnest. Erst mal nicht schön, aber ein Lösungsweg (Geht auch besser, aber immerhin geht es. Für eine schönere Lösung müsste ich jetzt ein paar Minuten nachdenken).

Martin

Mehrere Zahlungen auf eine Rechnung

Martin Asal @, Donnerstag, 17.01.2019, 22:33 (vor 278 Tagen) @ Jörg

Ich sehe gerade, dass du nach zwei Kriterien gruppierst. Dadurch bekommst du auch zwei Zeilen, wo du nur eine haben willst. Rechnungssumme muss wohl weg.

Martin

Mehrere Zahlungen auf eine Rechnung

Jörg @, Hofgeismar, Freitag, 18.01.2019, 15:15 (vor 278 Tagen) @ Martin Asal

Hallo Martin,
jetzt bin ich einen großen Schritt weiter, auch wenn er daraus bestand, erst mal nur eine kleine Abfrage zu machen. Dein Tip hat mir sehr geholfen. DANKE für deine Unterstützung.
Gruß Jörg

RSS-Feed dieser Diskussion
powered by my little forum