Ich merke gerade, dass mein Access-Kurs nun doch schon einige Jahre zurückliegt. Ich finde nämlich einfach keine Lösung…
Ich habe eine Tabelle mit Artikeln. Manche davon haben einen fest definierten Preis, andere wiederum nicht, da sie pauschal im Einzelfall festgelegt werden.
In einer Tabelle „Rechnung“ habe ich ein Dropdown-Feld mit den o.g. Artikeln. Nun möchte ich, dass
der Preis (wenn vorhanden) in ein weiteres Feld der Tabelle „Rechnung“ übernommen wird,
dieser dann aber noch änderbar ist.
Wie kriege ich das hin?
Ich habe dazu momentan einfach eine Beziehung von „Artikel-Nr.“ zu „Rechnung_Artikel1“ und von „Artikel_Preis“ zu „Rechnung_Artikel1_Preis“ gesetzt. Das klappt aber nicht.
Nun gut… ich habe meinen ersten logischen Fehler eingesehen… ;o)
Ich habe für die Rechnungen nun zwei Tabellen. Einmal den „Rechnungskopf“ und einmal die „Rechnungszeilen“. Das hatte ich vorher nicht.
Meine Beziehungen sehen nun so aus: Screenshot.
Ich möchte nun in einem Formular für die Rechnungszeilen im Feld REZ_Preis den jeweiligen Wert aus Art_Nettopreis als Standardwert setzen.
Das versuche ich momentan mittels
=DomWert(„Art_Nettopreis“;„Artikel“)
Dann nimmt er allerdings immer den Nettopreis von Artikel-Nr. 1.
Wie kann ich es erreichen, dass er nach Auswahl der Artikel-Nr. im Formular „Rechnungszeilen“ immer den jeweiligen „Art_Nettopreis“ als Standardwert in das Feld „REZ_Preis“ übernimmt, so dass ich dieses bei Bedarf noch verändern kann?
Besser wäre aber ein Kombifeld mit Basis zu Artiekl einzubauen, das die Auswahl des Artikels erlaubt und dann die Preis an das (Formular)-Preisfeld übergibt:
Sub Rez_Artikel-Nr_Afterpdate()
Me![REZ_Preis] = Me![REZ_Artikel-Nr}.Column(1)
End Sub
Mit Datensatzherkunft für das Kombi:
Select [Art_Artikel-Nr],[Art_Nettopreis] from Artikel
BTW: Auf Sonderzeichen (hier „-“ ) in den Namen DRINGEND verzcihten!
schon mal danke!! jetzt aber eine anfängerfrage: wo packe ich
das hin?
Im VBA-Editor in die Ereignisprozedur des „Nach Aktualisieren“-Ereignisses des Kombifeldes.
Sub Rez_Artikel-Nr_Afterpdate()
Me![REZ_Preis] = Me![REZ_Artikel-Nr}.Column(1)
End Sub
und falls jemand zeit hat, hätte ich auch gerne erklärt was da
passiert. will ja schließlich lernen… ;o)
Na, Du hast ja auch nicht nach einem Einführungkurs gefragt…
Du brauchst doch nur den Code zu lesen…
Sobald das Nach-Akualisierung-Ereignis eintritt, wird dem Feld „Me![REZ_Preis]“ der Wert aus der 2.(!, Zählung beginnt bei 0 ) Spalte der Kombifeld-Liste zugewiesen.