Neuigkeiten:

Ist euer Problem gelöst, dann bitte den Knopf "Thema gelöst" drücken!

Mobiles Hauptmenü

Neukunden-Datensatz ohne Rechnung wirtd nicht in Formular angezeigt

Begonnen von Andreas_HH, Dezember 09, 2024, 18:58:13

⏪ vorheriges - nächstes ⏩

Andreas_HH

Moin zusammen,

bin Access-Anfänger und bitte daher um Nachsicht bei allzu dummen Fragen ;-)

Habe eine tblKUNDEN und eine tblRECHNUNGEN. Aus den Rechnungsdaten ermittele ich in einer qryRECHNUNGEN  den Mittelwert aus "Zahlungsdatum - Fälligkeit", um eine Aussage über die Zahlungs-"Moral" der Kunden zu erhalten. So weit so gut.

In einem frmKUNDEN, das auf der qryRECHNUNGEN beruht, stelle ich die relevanten Kundendaten zusammen - inkl. dieses "Zahlungsmoral"-Wertes. Auch das funktioniert soweit - bis ich eien neuen Kunden anlege, der noch gar keine Rechnung erhalten hat... Der erscheint dann nämlich "einfach so" nicht im Formular.

Ich habe bereits versucht, mit einer vorgeschalteten WENN-Funktion zu arbeiten:

    WENN (Mittelwert(...) ist null; "n/v"; Mittelwert(...))

funktioniert leider auch nicht.

Gibt es da eine Lösung für? Schonmal "Danke" im Voraus.

VG Andreas

MzKlMu

Hallo,
da sind doch mindestens 2 Tabellen beteiligt. Du musst den Typ der Beziehung der beiden Tabellen ändern, von INNER in LEFT oder RIGHT JOIN.

Zeige mal die Abfrage (SQL).

Üblicherweise macht man da aber anders. Man zeigt die Kunden in einem Hauptformular an nur mit der Tabelle tblKUNDEN als Datenquelle. Dann erstellt man ein Unterformular für die Rechnungen, nur die Rechnungen.
Hafo und Ufo sind über die Schlüsselfelder zu verknüpfen.
Im Hafo hat man dann die Kunden, auch die die noch keine Rechnungen haben. Im Ufo sind dann die zum Kunden gehörenden Rechnungen zu sehen, oder auch keine wie bei einem Neukunden.

Hier noch was zum Lernen:

https://www.access-tutorial.de/

Hier findest Du auch Info zu Hafo/Ufo und den Verknüpfung/Beziehungsarten (INNER -, LEFT -, RIGHT JOIN)
Gruß Klaus

Andreas_HH

Vielen Dank für die Antwort und die Infos, Klaus, vor allem auch für den Link zum  Tutorial. Da werde ich vor allem die Beziehungen / Inner, left u. right join anschauen.


Unterformluare sind mir bekannt, und ich habe sie auch in anderen Zusammenhängen in meiner DB genutzt, z.B. um verschiedene Projekte eines Kunden unterhalb der Kundendaten darzustellen. Klar, das macht bei Bedarf auch für die Rechnungen Sinn. Ich habe das anders gelöst, und bei den Kundendaten benötige ich nur den aus den verschiedenen Rechnungen berechneten Mittelwert der Zahlungsdauer.

Hier die SQL-Abfrage:

SELECT tbl_Kunden.KD_ID, IIf(Avg([tbl_Rechnungen]![REC_Zahldatum]-([tbl_Rechnungen]![REC_Ausgang]-1+[tbl_Kunden]![KD_Zahlungsziel])) Is Null,0,Avg([tbl_Rechnungen]![REC_Zahldatum]-([tbl_Rechnungen]![REC_Ausgang]-1+[tbl_Kunden]![KD_Zahlungsziel]))) AS KD_Zahlmoral

FROM tbl_Kunden INNER JOIN tbl_Rechnungen ON tbl_Kunden.KD_ID = tbl_Rechnungen.KD_ID

GROUP BY tbl_Kunden.KD_ID;

Gruß, Andreas

MzKlMu

Gruß Klaus

Andreas_HH

Hallo, so schnell bin ich leider nicht. Gestern Abend war's zu spät, und jetzt stehen erstmal laufende Arbeiten / Tagesgeschäft an.

Und für das Thema "join" werde ich wohl ein bisschen Zeit brauchen. ;-)

Das Ergebnis werde ich gern hier posten.

VG Andreas