Probleem eenheidsprijs-verkoopprijs

Status
Niet open voor verdere reacties.

Noel Prove

Gebruiker
Lid geworden
16 jul 2006
Berichten
98
Hallo,
Als test heb ik een db gemaakt "orders", dit om later een meer uitgebreid systeem te ontwerpen.
Dit lukt vrij goed, alleen stel ik me de vraag hoe ik in de tabel produkten de eenheidsprijs kan wijzigen,
zonder dat ik alle eerdere orders ook aanpas. Dus enkel de prijswijzing toepassen voor de nieuwe records
zonder dat de oude ook worden aangepast. Ik heb een beetje rondgesnuffeld op het net en waarschijnlijk
heeft het te maken met het de velden "eenheidsprijs", "verkoopprijs" in de detail-tabel. Maar ik geraak
er niet uit. Iemand die kan helpen a.u.b. ?Relaties.JPG

Alvast bedankt.
 
Jouw opzet werkt toch? Wat is daar het probleem mee? Overigens snap ik de veldnaam [Eenheidsprijs] niet, want volgens jouw schema hoort een ‘eenheidsprijs’ bij één artikel/product. Kun je toch moeilijk van een eenheidsprijs spreken...
 
Hallo, bedankt voor de snelle reactie.

Ja, inderdaad de opzet werkt, absoluut. Ik zoek juist een oplossing voor het geval ik de eenheidsprijs
in de tabel produkten wijzig, niet alle records worden aangepast, enkel de nieuwe.
Ik heb verschillende gelijkaardige db's gezien die ook gebruik maken van een veld eenheidsprijs
in de tabel produkten en een verkoopprijs in de tabel details. Dit waarschijnlijk om bij een wijziging
niet alle records te wijzigen. Ik weet alleen niet hoe dit moet gebeuren.
Misschien heb ik de benaming verkeerd gedefinieerd, eenheidsprijs in de tabel produkten is de prijs
van 1 verpakking. In de tabel details wordt die vermenigvuldigt met het aantal om zo de verkoopprijs
te bepalen. Als ik nu een prijswijziging doorvoer dan worden alle vorige records ook aangepast en dat
kan niet de bedoeling zijn. Een oplossing is natuurlijk steeds de eenheidsprijs opnieuw manueel in de
tabel details in te voeren, maar hiervoor moeten toch betere oplossingen zijn in access ?

Groetjes.
 
Als ik nu een prijswijziging doorvoer dan worden alle vorige records ook aangepast en dat kan niet de bedoeling zijn.
Kijk, en dat snap ik dus niet, vandaar mijn opmerking dat je in essentie alles goed doet. En als je alles goed doet, dan werkt het dus :). En dan blijkt dat bij jou dus niet te werken? Misschien moet je dan even uitleggen wat je precies doet. Overigens is het veld [Verkoopprijs] dan volgens jouw theorie verkeerd benoemd; dat zou dan óók [Eenheidsprijs] moeten heten; je slaat immers de prijs op, plus het aantal bestelde artikelen. Dat vermenigvuldigd levert dan de verkoopprijs op.

Hoe je het zou moeten doen, is dus (relatief) simpel. Op het formulier Bestellingen vul je in het subformulier Details de bestelde producten in. Dat zou je moeten doen via een keuzelijst, gebaseerd op de tabel Producten met daarin de velden ProductID, ProductNaam en Prijs. Bij het kiezen van een product zet je de Prijs uit die keuzelijst in het veld [Eenheidsprijs]. Dat moet met een stukje VBA gebeuren, want het veld is gekoppeld aan het tabelveld. Het resultaat hiervan is, dat je een artikel kiest, en dat automatisch de prijs wordt ingevuld. Die prijs is de actuele prijs, en komt dus uit de tabel Producten. Als je later de prijs in Producten verandert, maakt dat helemaal niets uit voor de eerder gemaakte detailrecords. Daar is immers de prijs al ingevuld. Er is ook geen enkele koppeling met de tabel Producten.

Dus nogmaals: ik snap niet hoe het bij jou niet kan werken!
 
Hallo,

Ik heb alles uitgevoerd zoals je hebt voorgesteld en het werkt prima. Ik heb er
zelf de VBA ingezet en het werkt prima. Hartelijk dank hiervoor.
Ik heb enkel nog een vraag i.v.m. mijn subformulier bestellingen.
Ik heb dus een veld prijs en hoeveelheid, die worden met elkaar vermenigvuldigd
om de totale prijs te berekenen in het veld totaal. Maar zolang er geen waarde
in het veld hoeveelheid staat krijgt ik dus een foutmelding. Kan dit omzeild worden
met een "IIF" formule of heb jij soms een beter voorstel ?

Alvast bedankt.

frmIngaveGegevens.JPG
 
Ik zou geen formule in het veld zetten, maar een berekening laten uitvoeren met VBA op basis van de twee velden die de prijs bepalen. In beginsel zijn dat het veld [Aantal], en de keuzelijst [cboArtikel]. De keuzelijst rekent de prijs uit bij de gebeurtenis <Bij Klikken> en het tekstveld [Aantal] zou ik doen bij de gebeurtenis <Bij wijzigen>.
 
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan