Access - Formular als Tabelle -

Liebe/-r Experte/-in,

Habe zwei Tabellen angelegt. In Tab 1 stehen alle Personendaten und der Gesamtbetrag der Bestellung der bezahlt werden soll. In Tab 2 werden die eingehenden Teilzahlungen auf den Gesamtbetrag erfasst.
Habe ein Formular erstellt, wo Tab 1 das Hauptformular ist und Tab 2 ein Unterformular dazu.
Zu eine Datensatz (Person ) aus dem Hauptformular werden im Unterformular nun alle Teilzahlungen angezeigt. Habe im Unterformular ein Summenfeld für die Teilzahlungen eingebaut und im Hauptformular ein weiteres Feld ,wo dieser Betrag mit dem Gesamtbetrag verglichen wird und die Differenz ausgewiesen wird. Das klappt alle so weit so gut.
Nun benötige ich eine tabellarische Übersicht, wo folgende Daten dargestellt werden. Eine Zeile soll wie folgt aussehen:
Adresse des Kunden mit dem dazugehörigen Gesamtbetrag der Bestellung (Tab1) . Dann die Summe der Teilzahlungen zu dieser Bestellung (Tab2) . Nächste Spalte ist die Differenz vom Gesamtbetrag und der Teilzahlung.
Adressdaten ; Gesamtbetrag aus Tab1; Summe Teilzahlung aus Tab 2; offene Forderungen (=Gesamtbetrag – Teilzahlungen)
Irgendwie klappt das nicht. Wie könnte die Lösung aussehen???

Gruß Dirk

Hallo Dirk,

zeig mal Deine Abfrage, was klappt denn nicht?
Hast Du es mit Gruppenfunktionen versucht?

Summen in Access sind nur über Gruppenfunktionen zu bilden und dann muß auch die gruppierung stimmen.

Víele Grüße!

Dagmar

Hi Dirk,

hier mal wie es in etwa aussehen müßte wobai ich davon ausgehe, dass die Adressdaten in einer dritten Tabelle stehen. Ich habe auch ad hoc keine Tabelle zur Hand, mit der ich die Abfrage ausprobieren kann, ist also nur ein Beispiel:
SELECT tbl1.ID, tbl1.Name, tbl1.Strasse, tbl1.Ort, Sum(tbl2.Preis) AS Rechnungsbetrag, iif(Sum(tbl3.Preis)=null,Sum(tbl3.Preis),0) AS Gezahlt, Sum([tbl2].[Preis])-iif(Sum(tbl3.Preis)=null,Sum(tb3.Preis),0) AS Offen
FROM tbl2 RIGHT JOIN (tbl3 INNER JOIN tbl1 ON tbl2.Order_ID = tbl1.ID) ON tbl3.Order_ID = tbl1.ID
GROUP BY tbl1.ID, tbl1.Name, tbl1.Strasse, tbl1.Ort;

Wichtig sind 2 Dinge: Ein RIGHT JOIN auf die Tabelle mit den Zahlungen, sonst bekommst Du keine Datensätze wenn dort noch keine Teilzahlung geleistet ist.
Und dann eine IIF Abfrage in der Query, den wenn das Ergebnis null ist kann die Tabelle nicht damit rechnen, also geben wir dann den Wert 0 vor: iif(Sum(tbl3.Preis)=null,Sum(tb3.Preis),0) …
Hoffe das trifft es einigermassen.

Gruß

Andre

Hallo Dirk

Du könntest wie im Formular einen Bericht und zugehörigen Unterbericht mit den Teilzahlungen erstellen. Damit kannst du das Problem lösen, ist dann aber nicht einzeilig.

Wenn du das einzeilig machen möchtest, dann kannst du in den Textfeldern die Summen der Zahlungen und sonstige Berechnungen über Formeln bzw. Funktionen erstellen.

für eine Summe aus Zahlungen des aktuellen Records z.B. verwendest du die Funktion DomSumme (im Bericht) oder DSum (für VBA)

Hoffe, dass du damit weiterkommst :wink:

Gruss, Dani

Hallo Dirk,
irgendwie kann ich mir das Problem nicht so richtig vorstellen. Wäre es möglich, dass Du mir das Ganze als Anhang zu mailst? Vielleicht auch nur als Screenshot?
LG, Werner
[email protected]

Hallo Dirk

Da ist meines erachtens schon mal falsch, dass ein Betrag bereits auf Ebene Adresse existiert (Normalisierungsstufe 3 sollte schon eingehalten werden).

Bedeutet also dass Du Deine Tabellen splitten solltest. Danach eine Abfrage auf tblAdresse und tblFaktura mit dem Totalbetrag, danach tblZahlungen als dritte Tabelle. Damit kannst Du dann Deine Auswertungen fahren.

Am besten machst Du eine Berechnung in einer Query und gibst diese dann als Saldoliste aus (am Besten einen Ausdruck für die Berechnungen).

Hoffe, Dir mit meinen Angaben soweit zu dienen.

LG, Henri.

Hallo Dirk,

mach dir einfach eine neue Tabelle, schreibe da rein:
ID des Kunden, ID der Rechnung; aus dem Formular die Summe der Teilzahlungen und den Gesamtbetrag. Dann muß es funktionieren.
Die Tabellen alleine helfen dir nichts, da hier nirgeds die Summen sind. Du mußt wirklich mit dem Formular arbeiten und am besten darauf einen Schaltknopf legen, mit dem du die Daten in die neue Tabelle übernimmst.

Melde dich, wenn du weiter Hilfe brauchst. Bin das Wochenende hier.

Grüße aus Nürnberg

Jürgen

PS: Ging nicht schneller, da erst heute wieder am Rechner.

Hallo
Ich kann Deine Frage leider nicht beantworten.
Gruss

Liebe/-r Experte/-in,

Habe zwei Tabellen angelegt

Teilzahlungen auf den Gesamtbetrag erfasst.
Habe ein Formular erstellt, wo Tab 1 das Hauptformular ist und
Tab 2 ein Unterformular dazu.
Zu eine Datensatz (Person ) aus dem Hauptformular werden im
Unterformular nun alle Teilzahlungen angezeigt. Habe im
Unterformular ein Summenfeld für die Teilzahlungen eingebaut
und im Hauptformular ein weiteres Feld ,wo dieser Betrag mit
dem Gesamtbetrag verglichen wird und die Differenz ausgewiesen
wird. Das klappt alle so weit so gut.
Nun benötige ich eine tabellarische Übersicht, wo folgende
Daten dargestellt werden. Eine Zeile soll wie folgt aussehen:
Adresse des Kunden mit dem dazugehörigen Gesamtbetrag der
Bestellung (Tab1) . Dann die Summe der Teilzahlungen zu dieser
Bestellung (Tab2) . Nächste Spalte ist die Differenz vom
Gesamtbetrag und der Teilzahlung.
Adressdaten ; Gesamtbetrag aus Tab1; Summe Teilzahlung aus
Tab 2; offene Forderungen (=Gesamtbetrag – Teilzahlungen)
Irgendwie klappt das nicht. Wie könnte die Lösung aussehen???

Gruß Dirk

Liebe/-r Experte/-in,

Habe zwei Tabellen angelegt. In Tab 1 stehen alle
Personendaten und der Gesamtbetrag der Bestellung der
bezahlt werden soll. In Tab 2 werden die eingehenden
Teilzahlungen auf den Gesamtbetrag erfasst.

Nun benötige ich eine tabellarische Übersicht, wo folgende
Daten dargestellt werden. Eine Zeile soll wie folgt aussehen:

Adresse des Kunden mit dem dazugehörigen Gesamtbetrag der
Bestellung (Tab1) . Dann die Summe der Teilzahlungen zu dieser
Bestellung (Tab2) . Nächste Spalte ist die Differenz vom
Gesamtbetrag und der Teilzahlung.

Adressdaten ; Gesamtbetrag aus Tab1; Summe Teilzahlung aus
Tab 2; offene Forderungen (=Gesamtbetrag – Teilzahlungen)

Hallo Dirk,
ist schon ein wenig her die Anfrage, daher nehme ich an, Du hast inzwischen schon die Lösung. Dennoch hier eine Antwort; vielleicht hilft es noch anderen.

Der eichfachste Weg ist wie folgt:
a) Erstellung von 2 neuen Abfragen (die erste davon als Gruppierungsabfrage)
b) Einbindung der zweiten Abfrage in ein neues (Unter)Formular oder einen Report

zu a) Gruppierungsabfrage
Einfach eine neue Abfrage erstellen und hierin beide Tabellen einbeziehen. Die Tabelle über die Kunden-Nr./PersonenID verbinden.
Als Abfrage eine Gruppierungsabfrage angeben (Summensymbol) und auf alle Felder der ersten Tabelle GRUPPIEREN, auf dem Feld der TEILZAHLUNGEN die Funktion auf SUMME stellen. Alle anderen Felder der Tabelle2 sollten in der Abfrage nicht übernommen werden.
Hierdruch wird je Kunde nur 1 Datensatz ausgegeben mit der Summe der Teilzahlungen im summierten Feld.

Danach wird noch eine zweite neue Abfrage erstellt, in der ausschließlich die erste Abfrage aufgenommen wird. Hierin werden alle Felder der Abfrage1 per *-Auwahl übernommen und ein neues Feld gebildet mit der Bezeichnung: OFFENE_FORDERUNGEN: [GESAMTBETRAG] - [SUMME TEILZAHLUNGEN]
(Ich vermute einmal das neue Summenfeld der Teilzahlungen wird diese Bezeichnung bekommen haben).

Diese neue Abfrage2 ist jetzt die Basis für das neue (Unter)-Formular.

zu b) neues (Unter)-Formular oder Bericht
Jetzt einfach auf Basis der Abfrage2 ein neues Formular erstellen. Das kann entweder als weiteres Unterformular in das bestehende Hauptformular eingebunden werden oder eben ein eigenständiges Formular sein, dass z. B. über einen Button (Schaltfläche) im Hauptformular aufgerufen wird.
Der Schaltflächen-Assistent von MSAccess hilft eine solchen Aufruf mit Übergabe der Kundennummer einzurichten. Dafür muss das neue Formular aber schon erstellt worden sein.

Das war es auch schon.
Ich hoffe es hilft.

Gruß
Ulrich