gegevens uit bron niet kunnen wijzigen

Status
Niet open voor verdere reacties.

frankie59

Gebruiker
Lid geworden
25 sep 2008
Berichten
154
Beste mensen. ik heb een vraagje, waar ik zo niet uitkom. Ik heb een prijslijst waar artikelen en prijzen in staan. Deze worden met een query op prijsvolgorde gezet. vervolgens in een subformulier weergegeven. men kan dan op dit artikel klikken en het wordt dan verder verwerktin een order . Men moet hier de prijs aan kunnen passen,. maar dat moet echter niet in de bron gebeuren. Als ik hier de prijs aanpas, dan staat de aangepaste prijs ook in het bronbestand. Vergrendelen kan niet omdat het formulier dan niet werkt. Hoe doe ik zoiets. Kan iemand mij een richting in sturen?

Alvast bedankt.

MVG Frank
 
Veld oude of nieuwe prijs

Ik vermoed het volgende:
je hebt een tabel artikelen en/of prijslijst. Dit is de enige tabel waar prijzen instaan.
Kortom als je prijzen wijzigt dan zullen oude verwerkte orders ook in prijs toenemen/afnemen. Terwijl deze al betaald zijn voor een lager/hoger bedrag.

Je wilt dus een apart prijs veld in de tabel orders. Misschien is dit al zo dan is mn vermoeden onjuist. En 1 van de 2 volgende opties:
1)Wil je ook je gecalculeerde prijzen (zonder korting oid) opslaan dan moet hier ook een veld voor komen in de tabel orders.
2)Of je kunt een nieuw veld aanmaken, waarin alleen de nieuwe gewijzigde prijzen in staan.

Ikzelf zou kiezen voor optie 1 dan heb je altijd 1 veld (prijs) die leidend is. Het veld (gecalculeerde prijs) is dan bedoeld om weer te geven wat de prijs van de order was zonder korting.

Als je een geschiedenis wilt opslaan van wijzigingen, dan zul je een nieuwe tabel moeten maken (zoiets als GeschNr, OrderNr, Datum, Prijs oid). Maar dit is vast niet wat je zoekt.
 
Even recapituleren: je hebt een tabel met o.a. artikelprijzen, die getoond worden in een formulier. Deze informatie komt uit een prijslijst. Bij het maken van orders moeten de artikelprijzen wel op het formulier getoond worden, en ze mogen ook worden aangepast, maar ze mogen niet worden veranderd in de brontabel.
Mag ik aannemen, dat de prijs wèl moet worden opgeslagen bij de orders?
Dat zou namelijk de meest logische oplossing zijn: het formulier zou moeten dienen als basis om nieuwe orders op te slaan, niet om de prijslijstgegevens te muteren.
Op het moment dat het formulier als basis dient voor orders, is het ook mogelijk om het veld met de prijzen los te koppelen. Nu staat de bron van het formulierveld ingesteld op de prijslijst, met als gevolg dat elke wijziging direct in de prijslijst wordt doorgevoerd. Het formulierveld moet daarom ontkoppeld worden, door de inhoud van de veldeigenschap <Besturingselementbron> leeg te maken.
Dat werpt wel weer een nieuw probleem op: hoe vul je het veld met de standaardprijs? Dat kun je doen door een keuzelijst te gebruiken voor het Artikelnummer. Hiervoor moet je dan een query als bron gebruiken, met daarin het ArtikelID, de ArtikelNaam, en de ArtikelPrijs. Vermoedelijk staan al deze velden wel in de tabel Prijslijst. Door de eerste kolom een breedte van 0 cm te geven, zie je het artikelID niet, en kun je selecteren op artikelnaam.
Voor het veld Prijs moet een normaal tekstveld worden gebruikt, geen keuzelijst. De prijs van het artikel zit a.h.w. in de keuzelijst Artikel, en kan met de gebeurtenis <Na Bijwerken> op het tekstveld worden gezet.
Dat ziet er in code ongeveer zo uit:

Me.txtArtikelPrijs = [cboArtikel].[Column](2)

Hierbij ga ik er vanuit, dat de keuzelijst uit de hierboven aangegeven 3 velden bestaat. De opdracht Column telt namelijk vanaf 0.

Doordat het tekstveld ArtikelPrijs nu niet meer gebonden is aan een bron, kun je het probleemloos aanpassen, je zult geen wijzigingen meer doorvoeren in de tabel Prijslijst. Wel moet de informatie worden opgeslagen in de tabel Orders, zoals ik zelf zou doen. Ik zou dus het formulier baseren op de tabel Orders, en het veld ArtikelPrijs uiteraard ook.

Michel
 
Greenery80 en Octafish, bedankt voor de reactie.Octafish wat jij aangeeft is exact wat de bedoeling is. ik ga dit uitproberen. ik laat nog weten of het lukt.
mvg Frank
 
'Beste Greenery80 en Octafish. Het is helemaal gelukt. Ik heb het verder in andere gedeelte van de database ook toegepast. Erg bedankt!
mvg Frank
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan