Hallo Gemeinde,
zuerst mal einen netten Gruß in die Runde.
Ich habe eine Tabelle tbl_smoney_2016 und eine Tabelle Rechnungen.
In der ersten Tabelle sind die Einzahlungen von Kunden und in der Tabelle
Rechnungen logischerweise die erstellten Rechnungen.
Ich würde jetzt gerne die Tabellen miteinander abgleichen um die unbezahlten Rechnungen in eine separate Tabelle zu schreiben.
Die Informationen Rechnungsnummer und KundenNr. sind in der tbl_smoney_ab2016 in Verwendungszweckzeile 2 und Verwendungszweckzeile 3 vorhanden. In einer Abfrage habe ich ein neues Feld hinzugefügt -Verwendungszweck: [Verwendungszweckzeile 2] & " " & [Verwendungszweckzeile 3] das funktioniert soweit. In der Tabelle Rechnungen gibt es das Feld BelegNr und NrKD (Kundennummer) vorhanden. Wie kann man nun überprüfen ob es im Verwendungszweck eine Kunden oder Rechnungsnummer gibt? Super wäre auch wenn man dann auch mit den gefundenen Datensätze gleich eine neue Tabelle generieren könnte.
Ich hoffe ich habe mein Anliegen nicht zu kompliziert verfasst.
Vielen Dank und nette Grüße
Peter
Hallo Peter,
Zitatdie unbezahlten Rechnungen in eine separate Tabelle zu schreiben.
Das ist unnötig, und wahrscheinlich auch fehlerträchtig.
Erstelle ein Tabelle "Zahlungen" mit einem Fremdschlüssel für die
Rechnungs-ID (-Nr). Solange eine Rechnung dort nicht auftaucht bzw.
die Summe der Zahlungen < dem Rechnungsbetrag ist, ist die Rechnung
unbezahlt/nicht komplett bezahlt.
ZitatWie kann man nun überprüfen ob es im Verwendungszweck eine Kunden oder Rechnungsnummer gibt?
Wozu brauchst du die KundenNr?
Wenn die BelegNr
immer im gleichen Verw.zweckfeld steht solltest
du die beiden Tabellen eigentlich einfach über dieses Feld joinen können.
(Luftcode)
SELECT R.BelegNr
FROM tbl_smoney_2016 AS SM
INNER JOIN tbl_Rechnungen AS R
ON SM.VerwZweckfeld = R.BelegNrgruss ekkehard
Hi ekkehard,
wow, das ging schnell. DANKE
Ich werde morgen mit deinen Lösungsansätzen mal testen ob ich das
gebacken bekomme.
Ich wünsche Dir einen schönen Abend.
LG
Peter
Hi ekkehard,
fällt mir gerade noch was ein.
Die Kundennummer benötige ich eigentlich weil manche Kunden in den Betreff keine Rechnungsnummer eintragen sondern
nur die Kundennummer.
Wo bzw. wie muss ich den Code eingeben?
Grüßle
Peter
Hallo Peter,
Dann wird's schwierig(er). Wahrscheinlich wird dann auch noch mal das
eine und mal das andere Feld verwendet.
Das bekomme ich so aus der hohlen Hand nicht gebacken.
Vielleicht kannst du eine DB mit ein paar Spieldaten hochladen. Es sollten
möglichst alle Möglichkeiten in den Verw.zweckfeldern enthaten sein.
gruss ekkehard
Hallo ekkehard,
mache dir morgen eine kleine Beispieldatenbank und lade sie dann
hier hoch. Dachte ich mir auch schon fast dass es so rein theoretisch
etwas schwierig werden könnte.
Ich wünsche dir noch einen schönen Abend.
Viele Grüße
Peter
Hallo ekkhard,
anbei schicke ich Dir mal eine Test_DB.
LG
Peter
Hallo,
direkt und ohne Umschweife: So wird das nichts, sorry...
Mindestens ist nötig:
1) Die Tabelle Rechnungen ("tblRechungen") ist zu normalisieren (siehe u. st. Links 1, 1a und 1b)
2) Wie Ekkehard schon sagte, ist eine Tabelle "tblZahlungen" erforderlich, die einen Fremdschlüssel für den Verweis auf Tabelle tblRechnungen (1:n-Beziehung) besitzt und die die einzelnen Einzahlungen (es können sicherlich auch Teilzahlungen auftreten) erfasst.
3) Die Tabelle "tbl_smoney_2016" kann nur als temporäre Import-Tabelle benutzt werden. Deren Inhalte können wegen dem Fehlen einer genauen Kundenreferenz nicht automatisch in tblZahlungen eingefügt werden. Hier ist pro Datensatz manuelles Prüfen und Entscheiden erforderlich, bevor ein solcher Datensatz einem Kunden als Zahlung zugewiesen wird. Dieser und andere Vorgänge sind über Formulare (Ablaufsteuerung) zu realisieren.
Hallo Franz,
Während ich noch über 3) nachdenke hast du die nötigen Voraussetzungen
schon mal aufgezeigt.
zu 1) Da müssen doch eigentlich nur die Klarnamen raus.
zu 2) muss ich nichts sagen
zu 3) habe ich mir folgende Gedanken gemacht
Mit einer Abfrage auf "Rechnungen" und "Zahlungen" liessen sich schon mal
die un-/teilweise bezahlten herausfiltern. Per Code schleift man durch diese
Abfrage und sucht die RNr in den Feldern der "tbl_smoney". Wird sie gefunden,
kann der Betrag als neue Zahlung an "Zahlungen" angehängt werden.
Wird sie nicht gefunden versucht man es mit der KundenNr und erstellt die
Zahlung mit der ältesten Rechnung (gängige Praxis falls der Kunde mehrere
offene hat). Wird beides nicht gefunden, was vorkommen wird (ich spreche
da aus eigener Erfahrung) würde ich den DS aus "tbl_smoney" in eine Log-
tabelle schreiben. Die muss dann manuell bearbeitet werden.
gruss ekkehard
Hallo,
zu 3)
Ich würde mich auf eine "Automatik" hier nicht verlassen. eine "gefundene" Rechnungsnummer und der dazugehörende Datensatz kann allenfalls als Vorschlag angezeigt werden, zu prüfen ist er m. E. allemal und manuell zu bestätigen.
@DF6GL, @ekkehard
Ich danke euch beiden recht herzlich für eure Hilfe. Ich hoffe dass ich das so einigermaßen
schaffe mit den Tabellen.
Freundliche Grüße
Peter