Bijwerkquerie

  • Onderwerp starter Onderwerp starter Y2K
  • Startdatum Startdatum
Status
Niet open voor verdere reacties.

Y2K

Gebruiker
Lid geworden
22 okt 2005
Berichten
19
Beste mensen ben met een database begonnen.

Alleen ik kom ergens niet uit.



Zoals jullie kunnen zien op bovenstaande afbeelding heb ik 3 velden rood gemarkeerd.

- Inkoopprijs
- Marge
- Verkoopprijs

Wat ik wil realiseren is dat wanneer ik een waarde invoer in verkoopprijs en daarna het percentage marge. Dat dan automatisch de verkoopprijs berekent wordt.

Alvast bedankt,

Y2K
 
Dat is relatief simpel op te lossen met een Gebeurtenis op één van de twee tekstvakken met inputwaarden (Inkoopprijs of Marge), of allebei.
Je moet namelijk een formule maken die de verkoopprijs berekent a.d.h. van (denk ik) de formule Verkoopprijs=[Inkoopprijs] * [Marge]
Je gaat naar de <Eigenschappen> van het veld [Verkoopprijs], en dan naar het tabblad <Gebeurtenissen>, en dan in de regel <Na bijwerken> klikken. Vervolgens klik je op de knop met de drie puntjes, en typ je de formule Me.Verkoopprijs=[Inkoopprijs] * [Marge].
Ik ga er even van uit, dat de Namen van de tekstvakken (nog) niet is veranderd...
Hetzelfde doe je bij het tekstveld [Marge]. Daar komt dus dezelfde formule. Hier bereik je mee, dat de waarde van de verkoopprijs altijd opnieuw wordt berekend, als je in één van de twee een andere waarde typt.
 
Bedankt voor je reactie Octafish ik zal het eens proberen moet er voor de expressie Me. komen te staan? omdat je dit een keer wel aangeeft en een keer niet?

Alvast bedankt
 
Me is een handigheidje als je in code op een formulier wilt verwijzen naar een object op dat formulier. Door de statement te beginnen met Me. geeft Access vervolgens een lijst met alle beschikbare objecten. Met doortypen van de eerste letters van het object dat je zoekt, wordt die vanzelf geselecteerd. Je maakt dus minder snel een typefout als je met Me werkt. In essentie is de code Me.txtPlaats.Value dus hetzelfde als txtPlaats.Value.
 
Hmm ik krijg een foutmelding.

Moet het marge veld een tekstveld zijn

aangezien het nu een valuta veld met als notatie %

alvast bedankt.
 
Het veld is altijd een tekstveld, want Access kent niks anders.... Je kunt weliswaar een Opmaak aan zo'n tekstveld toekennen, maar als je de waarde inleest in VBA dan wordt het dus nog steeds als tekst gezien. Je kunt er dus nog wat checks bij inbouwen, zoals:
If Not IsNumeric([Marge]) Then .....
etc. Zelf ken ik bij berekenen toch meestal (daarom) de waarden uit een tekstveld toe aan een getalvariabele, zodat je zeker weet dat de berekening klopt. Je krijgt dan iets als:
Code:
Dim iMarge as Double
If Not IsNumeric([Marge]) Then 
     iMarge=0
Else
     iMarge=CDbl(Me.[Marge].Value)
End If
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan