Berekening maken inkoopprijs - vreemde valuta

Status
Niet open voor verdere reacties.

HJD1986

Gebruiker
Lid geworden
28 mrt 2017
Berichten
61
Ik heb een tabel met artikelen met inkoopprijs is Britse ponden, Euro's en dollars. Daarnaast voor iedere valuta een standaard valutakoers bijv. 1 GBP = 1,3 Eur.
In de artikelkaart heb ik een veld met inkoopprijs GBP, inkoopprijs USD & inkoopprijs Eur.
Ik wil het veld "inkoopprijs euro" automatisch laten vullen met omgerekende prijs als ik een waarde heb ingevuld in USD of GBP. Echter als USD of GBP leeg zijn, dan wil ik de waarde in "inkoopprijs Euro" zelf in kunnen vullen, aangezien er ook alleen sprake kan zijn van inkoopprijs in Euro.

Hoe kan ik dit het beste realiseren? En kan iemand mij op weg helpen met de berekening danwel code om dit te realiseren?

Ideaal zou zijn als de bepaalde valuta gekoppeld is aan de leverancier. Maar dit is voor mij nog te ingewikkeld ;-).

Alvast bedankt.
 
Valuta koppelen aan een leverancier? Dat is toch gewoon de dagwaarde o.i.d.? Of reken je op dezelfde dag voor de ene leverancier € 1,35, voor een ander € 1,29 en de derde € 1,385? Omslachtige manier van werken in ieder geval :). De berekening die je wilt doen kun je doen op basis van een gebeurtenis op het tekstveld [Inkoopprijs GBP] of het tekstveld [Inkoopprijs USD]. Twee opties: de gebeurtenis <Bij wijzigen>, of de gebeurtenis <Na wijzigen>. De eerste rekent 'live' de andere velden bij op basis van wat je intypt, de tweede doet dat als je het complete bedrag hebt ingevuld en naar een ander object gaat (tab, muisklikt etc).
In jouw geval heb je dus de 3 tekstvelden gekoppeld aan de drie tabelvelden, zodat je de geplaatste waarden altijd kunt overschrijven door er iets anders in te tikken.
 
Je moet het zo zien:

we hebben een aantal leveranciers die leveren met verschillende valuta.
Dus leverancier A levert in GBP
Leverancier B in USD enz.

We werken met een standaard systeem koers. bijvoorbeeld 1 GBP = 1,50,

Ik dacht dat het makkelijk zou zijn dat in de artikelkaart alleen die valuta naar bovenkomt van de betreffende leverancier waar het artikel vandaan komt.
We gebruiken namelijk niet meerdere leveranciers voor een zelfde artikel.

Kan ik dus betreffende berekening bij <na wijzigen> zetten? En hoe zorg ik ervoor dat het resultaat in het tekstveld "verkoopprijs" komt te staan?
 
Ik dacht dat het makkelijk zou zijn dat in de artikelkaart alleen die valuta naar bovenkomt van de betreffende leverancier waar het artikel vandaan komt.
Dat is geen enkel probleem, lijkt mij. Je slaat het Valutatype dus op in je Leveranciers tabel, en op het moment dat je een bestelling maakt voor die leverancier, weet je dus het valutatype. Dat neem je dan mee in het subformulier waarin je de artikelen kiest. Zodra je een artikel kiest, vul je vanuit de keuzelijst gelijk de koers, en die verreken je dan zodra je een bedrag invult. De berekening die ik net aangaf (Bij wijzigen, of Na wijzigen) pakt dan het bedrag uit de koers op, en vermenigvuldigt dat met het ingevoerde bedrag. Is allemaal redelijk standaard te maken met een minimale hoeveelheid code. Ik schat één regeltje :).
 
Bedankt Octafish. Ik ga het morgen proberen en zal posten of het gelukt is of niet.
 
Zo niet: maak anders even een voorbeeldje, dat werkt wat makkelijker :).
 
Tip: als je met standaardkoersen werkt worden die hoogstwaarschijnlijk periodiek herzien (maandelijks, 3-maandelijks, …). Dus neem het veld HuidigeKoers op in je tabel met bestellingen zodat je achteraf, als de standaardkoers gewisseld is, in je tabel bestellingen toch nog steeds de juiste koers op het moment van de bestelling hebt.
 
Zo niet: maak anders even een voorbeeldje, dat werkt wat makkelijker :).

Het is gelukt Octafish. Het veld wordt echter niet "live" bijgewerkt <bij wijzigen>. Moet ik ergens nog een requery aanroepen?

Ik heb gelijk het veld "verkoopprijs" laten vullen op basis van de inkoopprijs euro / marge in %. Het zou mooi zijn als ik de live bijwerk functie kan gebruiken.

Verder zit ik te denken hoe ik het tekstvak koers die bij de leverancier hoort (bijv alleen USD bij leverancier X) alleen weer kan geven, zonder dat ik de andere velden zie. Volgens mij moet ik het veld koers dan bij de leverancierstabel opnemen en niet in de artikelkaart. Klopt dat?
 
Tip: als je met standaardkoersen werkt worden die hoogstwaarschijnlijk periodiek herzien (maandelijks, 3-maandelijks, …). Dus neem het veld HuidigeKoers op in je tabel met bestellingen zodat je achteraf, als de standaardkoers gewisseld is, in je tabel bestellingen toch nog steeds de juiste koers op het moment van de bestelling hebt.

Bedankt voor de tip! Had ik nog niet aan gedacht.
 
Je kunt er ook een aparte tabel voor gebruiken hoor, waarin je de mutaties vastlegt. Werkt ook prima, en scheelt data. :).
 
Hoi Octafish,

Ik heb de prijzen bijna helemaal werkend, echter het probleem doet zich voor dat de gegevens na het wijzigen niet worden geupdate. dit geldt zowel voor de inkoopprijs in Euro als de verkoopprijs (na het invoeren van de opslag).
De opslagfactor is bijv 0,7 (inkoopprijs euro / opslagfactor).

Ik heb al e.e.a. geprobeerd met Requery enz. maar krijg het niet voor elkaar. Wellicht zie ik iets simpels over het hoofd?

Voor de volledigheid heb ik het bestandje bijgesloten.

Kun je me verder helpen?
 

Bijlagen

Probeer het eens met deze codes:
Code:
Private Sub Inkoopprijs_AfterUpdate()
    Me.Inkoopprijs_EUR = Me.Inkoopprijs * Me.Systeemkoers
    Me.Recalc
End Sub

Code:
Private Sub Opslag_percentage_Change()
    If CDbl(Me.Opslag_percentage.Text) > 0 Then Me.Verkoopprijs.Value = Me.Inkoopprijs_EUR.Value / CDbl(Me.Opslag_percentage.Text)
End Sub

Code:
Private Sub Tekst37_AfterUpdate()
    Me.Inkoopprijs_EUR = Me.Inkoopprijs * Me.Systeemkoers
    Me.Recalc
End Sub
 
Super, Dit werkt goed Octafish!
1 klein dingetje. In krijg een foutmelding als ik het veld opslag percentage leegmaak. Heb je nog een idee hoe ik dit kan tackelen? :rolleyes:

Mag ik vragen waarom je de functie CDbl gebruikt? Ik las dat deze functie het veld forceert naar een bepaald gegevenstype?

Ik heb zelf geprobeerd om ook het veld inkoopprijs "live" te maken (zelfde als jij hebt gerealiseerd voor het opslagpercentage/verkoopprijs). Maar ik krijg dit niet voor elkaar. op zicht geen ramp hoor. Wil ook niet in alle details blijven hangen, maar dit is door het uiteindelijk zelf te proberen super leerzaam.

Groet,


HugoFoutmelding.JPG
 
Ik ben nog even aan het puzzelen, maar het lukt nog niet helemaal. Wél om de berekeningen goed te krijgen, maar niet om de opmaak van het tekstvak te laten kloppen. Dan zie je dus de juiste bedragen, maar het invoerveld laat dan 0,00 zien. En dat is uiteraard niet de bedoeling. De opmaak die jij had gemaakt £ #,##) is niet zo’n hele handige, omdat het hekje de voorloopnullen weglaat. En dan zie je dus ,85 staan i.p.v. 0,85.
Dus nog even sleutelen :).
 
En die had ik uiteraard al geprobeerd :).
 
Nee, dat is niet de bedoeling. Ik had een foutje in de code gemaakt, waardoor het niet werkte. Had dus achteraf niet zoveel met de opmaak te maken.
 
Hi Octafish,

ik ben nog aan het puzzelen geweest de afgelopen dagen, maar helaas zonder resultaat.
Je schrijft dat je een foutje had in de code. Begrijp ik dat het je gelukt is? Zo ja, wil je de oplossing met me delen?
 
Ik heb het (semi) opgelost door een extra niet-gebonden tekstveld te gebruiken dat zijn waarde wegzet in het Inkoop veld. Maar dat werkt nog niet geweldig, omdat je dat veld eigenlijk niet wilt zien.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan