Preisänderung nicht in alte Rechnungen übernehmen

In einem Rechnungsprogramm (Access 2003) werden mittels eines Berichts Rechnungen erstellt.
Die Preise der Rechnungsposten werden aus einer Artikel-Tabelle übernommen.
Nach einer Preisänderung (in der Artikel-Tabelle) sollen die Preise in den früheren Rechnungen aber nicht durch die neuen Preise aktualisiert werden.
Wie kann das verhindert werden?
Ich kann im Netz dazu nichts finden, obwohl die Problematik doch wohl in jedem relationalen Rechnungsprogramm vorhanden ist.
Vielen Dank für Eure Tipps

Hallo erstmal,

es ist absolut tödlich Rechnungspositionen nur als Verweis auf Artikelstammdaten zu verwalten. Denn so kann man z.B. auch keine individuellen Preise, Texte, Rabatte, … aufnehmen. Um es richtig zu machen, muss man beim Schreiben der Rechnung die Positionen zunächst aus dem Artikelstamm in eine Tabelle mit Vorgangspositionen (das Problem hat man nicht nur mit Rechnungen, sondern auch mit Angeboten, Gutschriften, …) kopieren, die dann einerseits ohne Änderungen am Artikelstamm zur Folge zu haben, problemlos individualisiert werden können, und andererseits unabhängig von Änderungen im Artikelstamm fix im einzelnen Vorgang bleiben.

BTW: So sollte man auch mit den Adressdaten, … umgehen. Damit auch deren nachträgliche Änderungen in den Stammdaten sich nicht auf bereits erfasste Vorgänge auswirken.

Gruß vom Wiz

Hi Wiz,
vielen Dank für die schnelle und hilfreiche Antwort.
Theoretisch leuchtet mir Dein Vorschlag ein.
Wie aber ist er am besten zu realisieren?

Bisher habe ich eine 1:n-Relation von ARTIKEL zu AUFTRAGDETAILS.
Die Zuordnung aus ARTIKEL wird unter Verwendung eines Kombinationsfeldes im Formular frmAUFTRAGDETAILS realisiert.

Die Tabelle VORGANGSPOSITIONEN soll wohl dazwischen geschaltet werden mit diesen Relationen:
ARTIKEL 1:n VORGANGSPOSITIONEN 1:1 AUFTRAGDETAILS -
ist das so richtig?

Wichtig!
Wie realisiere ich den Kopiervorgang von ARTIKEL zu VORGANGSPOSITIONEN programmiertechnisch - und wann findet er statt?

  • Bei Artikelanlage und -änderung während des Speicherns?

Schon jetzt Besten Dank
gwoehrle

Hallo,

wenn Du die Methode von Wiz umsetzen willst,

so brauchst Du zwei weitere Tabellen, die alle Daten (Felder) , aus denen sich Deine Rechnung zusammensetzt unabhängig von den Stammdaten , die sich ändern könnten, aufnehmen :

tblRechnung
Rechnr
KundenNr
Rechdatum
Rechadresse (kann aus der kompletten Anschrift bestehen)
Zusatzkosten
MwStSatz
MwStBetrag
Zahlungskonditionen
Rechnungstext
GestelltAm
BezahltAm
.
.
.

tblRechnungsPositionen
RechnposID
Rechnr
PosNr
Artikelnummer
ArtikelBezeichnung
(Zusatzbezeichnungen)
Menge
Einzelpreis
.
.

(1:n - Beziehung nur über Rechnr)

Viele Grüße vom Bodensee
Franz, DF6GL

Hallo,

bei Anlage einer neuen Position in einem Vorgang kopierst Du die Daten aus dem Artikelstammsatz in einen neuen Datensatz in der Positionsdatei. Jetzt kannst Du den dort stehenden Datensatz beliebig ändern, ohne dass dies Auswirkungen auf den Artikelstammsatz hat.

Um einen Schritt weiter zu gehen: Wenn Du mehrere Vorgangstypen verwaltest, dann kannst Du es so realisieren, dass Du z.B. aus einem Abgebot eine Auftragsbestätigung machst, indem Du alle Positionen des Vorgangs Angebot in einen Vorgang Auftragsbestätigung kopierst. Hier kannst Du dann z.B. nicht beauftragte Positionen löschen, abweichend gewährte Rabatte ändern, …

Nett übrigens auch eine Option nachträglich einzelne Positionen über den Artikelstamm aktualisieren zu lassen. Also wenn z.B. ein Angebot verspätet beauftragt wird, kann man sich hierüber dann die aktuellen Preise ziehen.

Gruß vom Wiz

Gruß vom Wiz

Erstmal 1000 Dank an Wiz und Franz,

das war mein erster Hilferuf ins Netz.
Daß Antworten so schnell und so kompetent erfolgen - unglaublich!
Ich bin begeistert!

Sobald ich wieder Zeit habe, versuche ich, das umzusetzen. Ggf. frage ich nochmal nach.

Und wenn’s dann geklappt hat, werde ich es gerne bestätigen

Vielen Dank
gwoehrle