Avatar billede ogodt Nybegynder
02. maj 2007 - 11:40 Der er 10 kommentarer og
2 løsninger

runde op i en beregning

Hej,

Jeg har en forespørgsel med nogle data angående: "forbrug","lager","Disponibel" osv.

jeg har så lavet nogle udtryk som hedder:

"Antal Ruller: [Mangler på lager]/[Meter pr rulle]" feks. 80000/14.400 =5,5555555
"Bestilles: [Antal Ruller]*[Meter pr rulle]" bliver så 5,5555*14.400=79.999,2

Mine problemer er så følgende:

1. jeg vil gerne have rundet antal ruller op til næste heltal så 5,5555 bliver til 6 (jeg kan ikke bestille 5,5 og så har jeg lidt ekstra på lager).
2. Resultatet af MANGLER skulle gerne se sådan her ud: 6*14.400=86.400 og ikke 79.999,2

Så for at gøre det kort :-) hvordan runder jeg op.

Ole
Avatar billede rosco Novice
02. maj 2007 - 11:46 #1
Avatar billede ogodt Nybegynder
02. maj 2007 - 12:02 #2
nu har jeg testes således: Antalruller2: Round([Antal Ruller];0)

og det runder den jo fint NED, hvordan hulen runder jeg op??
Avatar billede Slettet bruger
02. maj 2007 - 12:06 #3
Avatar billede ogodt Nybegynder
02. maj 2007 - 12:21 #4
ja, det er godt jeg er newbie ellers ville jeg jo blive flov :-)

men dit link giver mig ikke nogen idé til hvordan jeg løser problemet, jeg vil jo have rundet op uanset om der står 1,001 (2) 1,212 (2) 1,999999 (2)
Avatar billede Slettet bruger
02. maj 2007 - 12:33 #5
Prøv!~)

me.MiFeltMedAfrundetTal=RoundToNearest(me.MitOprindeligeTalFelt, 1, "up")-1
Avatar billede ogodt Nybegynder
02. maj 2007 - 12:53 #6
jeg har afprøvet den med et ubundet felt som hedder tester og gået i vba og skrevet følgende: [me].[TESTER]=RoundToNearest([me].[Antal Ruller];1;"up")-1
Den fejler ikke, men skriver heller ikke noget??
Avatar billede Slettet bruger
02. maj 2007 - 12:59 #7
private function NavnPåTestKnap_click()
me.TESTER=RoundToNearest(me.Antal_Ruller;1;"up")-1
end function
Avatar billede rosco Novice
02. maj 2007 - 13:20 #8
Public Function Afrundtal(Tal As Single, Optional Nærmeste As Single = 1, Optional RundOp As Boolean = False)
    If Nærmeste = 1 Then
        Afrundtal = Int(Tal + IIf(RundOp = True, 1, 0.5))
    Else
        Afrundtal = Int(Tal / Nærmeste + IIf(RundOp = True, 1, 0.5)) * Nærmeste
    End If
End Function

Hvis du gemmer funktionen i et modul, kan du bare skrive:

=Afrundtal([Dit felt];1;True)

Fandt den her.
http://www.eksperten.dk/spm/539228
Avatar billede Slettet bruger
02. maj 2007 - 13:26 #9
Det er rigtigt, i et tekstfelt kan du sætte:

=RoundToNearest(me.Antal_Ruller;1;"up")-1

som controlsource!~)
Avatar billede ogodt Nybegynder
02. maj 2007 - 13:36 #10
Det blev den her der løste det:

Public Function Afrundtal(Tal As Single, Optional Nærmeste As Single = 1, Optional RundOp As Boolean = False)
    If Nærmeste = 1 Then
        Afrundtal = Int(Tal + IIf(RundOp = True, 1, 0.5))
    Else
        Afrundtal = Int(Tal / Nærmeste + IIf(RundOp = True, 1, 0.5)) * Nærmeste
    End If
End Function

Eks:

Afrundtal(543.3,1,True)

resultat: 544


spg og rosco i kommer til at dele pointene da i begge var til stor hjælp.

TAKKER
Avatar billede rosco Novice
02. maj 2007 - 13:51 #11
Helt fint, du fik løst dit problem.
Avatar billede Slettet bruger
02. maj 2007 - 13:59 #12
!~)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Dyk ned i databasernes verden på et af vores praksisnære Access-kurser

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester

IT-JOB

Forsvarsministeriets Materiel- og Indkøbsstyrelse

Ingeniør til Satellitkommunikation

Nextway Software A/S

Software Architect

Politiets Efterretningstjeneste

Configuration Manager til PET's IT-afdeling