Avatar billede visto Professor
Oprettet i går kl. 17:21 Der er 3 kommentarer

Tilpasset decimalvisning

Jeg har et indtastningsfelt, hvor det indtastede tal kan være på op til 14 decimaler. Det har jeg sørget for er tilfældet i bagvedliggende forespørgsel og tabel, så celler der bruger tallet fra indtastningsfeltet kan udregne med dette antal decimaler.
Jeg ønsker at visningen i indtastningsfeltet skal være med det samme antal decimaler, som de indtastede, når der indtastes fra 0 til 6 decimaler. Hvis jeg indtaster flere end 6 decimaler, ønsker jeg at der kun skal vises 6 decimaler.
Hvordan gør jeg det?
Avatar billede visto Professor
Skrevet i går kl. 17:51 #1
Jeg bruger den danske version af Office 2013.
Avatar billede Gustav Ekspert
Skrevet i går kl. 19:54 #2
Det tror jeg kun du kan med dynamisk formattering - altså ved formularens OnCurrent event at justere tekstboksen Format egenskab.
Det er forholdsvis nemt at finde tallets mantissa og dermed dennes længde og dermed det antal decimaler, der skal vises:
' Returns the mantissa of a decimal number as
' a string to preserve leading zeroes.
'
' Examples:
'  Mantissa(1234.56789)            -> "56789"
'  Mantissa(-1234.56789)          -> "56789"
'  Mantissa(1234.056789)          -> "056789"
'  Mantissa(-1234.056789)          -> "056789"
'  Mantissa(123456789)            -> ""
'  Mantissa(CDec(1) / CDec(11))    -> "0909090909090909090909090909"
'
' 2024-03-23. Gustav Brock, Cactus Data ApS, CPH.
'
Public Function Mantissa( _
    ByVal Number As Variant) _
    As String

    Dim Result      As String
    Dim Fraction    As Variant
   
    If IsNumeric(Number) Then
        Fraction = CDec(Number) - CDec(Fix(Number))
       
        If Fraction <> 0 Then
            ' Strip leading space and dot.
            Result = Mid(Str(Abs(Fraction)), 3)
        End If
    End If
   
    Mantissa = Result
   
End Function
En særlig delikat hændelse er den, hvor tallet er et heltal, og der dermed hverken skal vises decimaler eller decimalkomma.
Avatar billede visto Professor
Skrevet i går kl. 20:11 #3
Uha - det var en af de efter min smag indviklede løsninger. Min fantasi - som kan være forkert - er at der kunne være en enklere løsning uden brug af VBA. Så jeg afventer, om der kan komme en sådan.
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