1.7k Aufrufe
Gefragt in Datenbanken von
Hallo, ich bin das erste mal hier und vielleicht kann mir da ja jemand helfen

In einem Access 2007 Formular wird eine Bestellung mit den zur Zeit gültigen Preisen erfasst. Wie kann man diesen Preis in die Bestelltabelle zurückschreiben damit er bei einer eventuellen Preisänderung nicht wieder neu berewchnet wird und dadurch die Bilanz verfälscht.
vielen Dank im voraus

4 Antworten

0 Punkte
Beantwortet von ralfh Mitglied (227 Punkte)
Guten Morgen,
im relationellen Datenbankdesign werden solche Vorgänge wie zum Beispiel Verkäufe in einer N zu M Relation festgehalten.
Aber Du kannst dennoch, wenn Du es möchtest in der Tabelle speichern, siehe dazu: HIER Punkt 4.11
Gruß Ralf
0 Punkte
Beantwortet von
Danke für die Antwort
leider komme ich damit nicht zu dem gewünschten ergebnis.
Um es zu präzisieren: In einer Tabelle (Artikel) wird der EK (Einkaufspreis ) und die prozentuellen Aufschläge eingegeben. Danach wird daraus in einer Abfrage (Kalkulation) der VK (Verkaufspreis) errechnet. Dann gibt es eine Tabelle Bestellkopf aus der ein Formular generiert wird. Als Unterformular soll eine Tabelle für Bestellzeilen dienen. Da ich aber nun dieses Unterformular aus der Abfrage (Kalkulation) erstellt habe weil nur dort der momentan gültige VK existiert mit dem dann im Formular Summen gebildet werden weiss ich nicht wie dieser momentan gültige VK in die Tabelle der Bestellzeilen kommt. Man könnte das ohne Speichern immer wieder Neu berechnen aber da es doch öfter zu Preisänderungen kommt würde das die Umsatzzahlen verfälschen
lg
Karl
0 Punkte
Beantwortet von ralfh Mitglied (227 Punkte)
wie gesagt, eigentlich n zu m Beziehung. Schau mal Hier.
Gruß Ralf
0 Punkte
Beantwortet von
Hallo,

wie dieser momentan gültige VK in die Tabelle der
Bestellzeilen kommt


Dazu kann man die UPDATE-Anweisung (wie oben schon angeregt)
nehmen und zwar aus dem Unterformular heraus "beim Anzeigen":
Private Sub Form_Current()
On Error GoTo Err_Form_Current

sql$ = "UPDATE [Bestellzeilentabelle ] " + _
"SET VK " = " + Me!VK+ _
"WHERE ((ArtNr='" + Me!ArtikelNr + "'));"
Debug.Print sql$
CurrentDb.Execute sql$, adLockOptimistic
Exit_Form_Current:
Exit Sub

Err_Form_Current:
MsgBox Err.Description
Resume Exit_ Form_Current
End Sub

Der Code soll jetzt nicht die exakte Lösung, sondern nur eine
Anregung sein.
Zur Update-Anweisung gibts hier noch was zu lesen:
http://www.sql-und-xml.de/sql-tutorial/update-aktualisieren-der-
zeilen.html

Gruß
lorf
...