afronden

Status
Niet open voor verdere reacties.

frankie59

Gebruiker
Lid geworden
25 sep 2008
Berichten
154
Ik heb een database waarbij een formulier de gegevens laat zien uit een query. Ik zou graag een veld "verkoopprijs"willen afronden op hele getallen. En dan bij voorkeur bij het openen van het formulier. Weet iemand de vba. Ik heb round geprobeert, maar kom daar niet verder mee. wie weet raad alvast bedankt.
 
de INT() functie kapt alles achter de komma af.

Wil je een echte afronding dan kom je op:

INT(getal + .5)

AANPASSING: toch snap ik bij nader inzien het probleem niet helemaal, omdat de ROUND() functie dit toch ook zou moeten kunnen. Ook als het een query is in de database.
 
Laatst bewerkt:
Ja dacht ik ook.
Maar kan ik dit dan ook bij het openen van het formulier doen, of gaat dit anders.
bijvoorbeeld: me.verkoopprijs = round(,2) . waar zou ik de vba moeten plaatsen, of kan ik hem ook in de query zetten, want dan zou het ook lukken.

alvast bedankt. frank
 
Ik zou de afronding laten doen in de query, zodat je op het formulier alleen de uitkomst van deafronding hoeft te laten zien. Op een formulier kun je uiteraard wel een afrondingsberekening maken, maar dat gaat niet zonder VBA, omdat je het Besturingselementbron al hebt gekoppeld aan je veld. Je zult dan op een andere manier de waarde moeten inlezen. Maar nogmaals, ik zie zelf het voordeel niet van het berekenen op het formulier, ook al omdat je de berekening dan niet opslaat. Is er een reden om de berekening op het formulier te willen?
 
Ik zou de afronding laten doen in de query, zodat je op het formulier alleen de uitkomst van deafronding hoeft te laten zien. Op een formulier kun je uiteraard wel een afrondingsberekening maken, maar dat gaat niet zonder VBA, omdat je het Besturingselementbron al hebt gekoppeld aan je veld. Je zult dan op een andere manier de waarde moeten inlezen. Maar nogmaals, ik zie zelf het voordeel niet van het berekenen op het formulier, ook al omdat je de berekening dan niet opslaat. Is er een reden om de berekening op het formulier te willen?


Octafish heeft gelijk in deze. Het past in de query (ik heb 't ergens gezien). Misschien is er een ervaren meelezer die even een voorbeeldje kan maken
 
Sterker nog: in een query kun je de functie Round gewoon gebruiken, bijvoorbeeld met de functie Opbouwen. Of je typt hem gewoon in: AfrondWaarde:Round ([Veld]; 0) als je wilt afronden op 1 cijfer.
 
Laatst bewerkt:
Bedenk ook dat de Round functie in VBA Access afrondt op een andere manier dan je gewend bent.
Als je volgens Europese normen af wilt ronden zul je zelf een functie moeten schrijven.
Deze kun je dan in je query gebruiken om af te ronden.

Kijk voor een zelfgedefinieerde functie bijvoorbeeld hier:

http://www.mvps.org/access/modules/mdl0054.htm

Tardis
 
Ja, klopt . In het formulier laat ik alles exporteren naar een excel bestand. Daarna word het in de juiste opmaak gekoppeld.
Het is gruwelijk omslachting, maar het werkt. Ik had het ook liever in en query gehad. dat ga ik toch nog proberen.
Ik heb wel iets gevonden wat op het formulier werkt.
'We maken een afrondingsfunctie
Code:
Function roundit(value As Double, precision As Double) As Double
    roundit = Int(value / precision + 0.5) * precision
End Function


Code:
Private Sub Knop4_Click()
    afgrondGetal = CStr(roundit(CDbl(getal), 1))
    Me.Tekst5 = Me.afgrondGetal

Bedankt voor de tips. Ik kan er weer meer verder.
MVG Frank
 
Laatst bewerkt door een moderator:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan