Avatar billede bbkdk Seniormester
27. november 2005 - 08:07 Der er 15 kommentarer og
5 løsninger

Minutter i decemaltal til klokkeslet

Jeg har en database, hvor flexsaldoen vises i timer og minutter, og hvor formatet er "fast", dvs. at minutterne vises som et decimaltal.
Det går jeg fordi der ellers ikke kan vises en saldo på over 24 timer.
Men hvordan får jeg saldoen vist som et klokkeslet, f.eks. skal 22,50 være 22:30.
Det skal tilføjes, at der ikke skal regnes videre på saldoen, den er udelukkende til visning på rapporter.
Avatar billede -anders- Juniormester
27. november 2005 - 09:08 #1
God morgen, prøv at åbne rapporten i designvisning, højreklik på den tekstboks, der indeholder decimaltallet, vælg egenskaber, her kan du i egenskaben Format skrive 00:00, prøv at se om dette virker
Avatar billede -anders- Juniormester
27. november 2005 - 09:18 #2
Du kan også vælge formatet Kort Klokksletsformat, dette skulle også gøre det
Avatar billede terry Ekspert
27. november 2005 - 10:19 #3
problem is when "saldoen" is more than 24,00 there is no time 24:01 !!
Avatar billede jesperfjoelner Nybegynder
27. november 2005 - 11:19 #4
som Terry siger går det galt når flex > 24.

Hvad med denne kringlede løsning :

left(flextid,2) & ":" & cint((right(flextid)/100*60))

Gad vide om det virker :-)
Avatar billede sjap Praktikant
27. november 2005 - 11:59 #5
For at lave flexsaldoen om fra decimaltal til tidsformat skal du blot dividere flexsaldoen med 24.
Avatar billede sjap Praktikant
27. november 2005 - 12:14 #6
Det løser dog ikke problemet med flexsaldo >= 24 timer, men det kan klares ved i rapporten at skrive

=Int([Flexsaldo]/24) & " " & Format([Flexsaldo]/24;"t:nn")

Medgivet - det er selvfølgelig ikke synderligt lettere end jesperhjoelner's forslag (som jeg dog ikke har testet).
Avatar billede jensen363 Forsker
28. november 2005 - 09:03 #7
Jeg ved ikke om det er nogen hjælp,  men netop den manglende mulighed for at atbejde med mere end 24 timer, omgår jeg ved at benytte beregning med CentiMinutter. Dette forudsætter at al indtastning er som decimaltal, dvs. 7,30 for 07:30.

Man kan naturligvis konvertere 07:30 til string, og herefter til decimaltal, hvis man vil dette.

Function TidTilCenti(x As Single) As Single

    Dim AntalTimer As Single
    Dim AntalMinutter As Single
   
    AntalTimer = Int(x)
    AntalMinutter = (x - Int(x)) / 60 * 100
   
    TidTilCenti = AntalTimer + AntalMinutter

End Function

Function TidFraCenti(x As Single) As Single

    Dim AntalTimer As Single
    Dim AntalMinutter As Single
   
    AntalTimer = Int(x)
    AntalMinutter = (x - Int(x)) / 100 * 60
   
    TidFraCenti = AntalTimer + AntalMinutter

End Function
Avatar billede jensen363 Forsker
28. november 2005 - 09:13 #8
Denne skulle virke til visualisering i rapport :

Fix([Resultat]) & ":" & format((abs([Resultat])-int(Abs([Resultat])))*100, "00")
Avatar billede bbkdk Seniormester
28. november 2005 - 18:02 #9
Tak for de gode forslag.

Umiddelbart må jeg sige, at sjaps løsning i 12:14:59 er bedst i mit tilfælde. Dog skal der brugs "h" i stedet for "t" i visningen, idet det ellers går galt. Og så er der en finte i den - ved "negative tider" (personen har ikke opnået dagens normtid) sættes der ved beregningen et "1" foran den i øvrigt korrekte omregning til tidsformat. Ved positive tider sættes der er "0”. Der er således altid 2 tal foran ":", hvor det første altid er 0 eller 1, medens det andet er den korrekte timeangivelse. Når der er et "1", er det i øvrigt korrekt angivet, at den opnåede tid er negativ, idet der helt foran står et "-". Og så det endelige problem: Ved mere end 24 timer lægger den ikke de overskydende timer til, dvs. at 26,70 timer giver 2:42.
Har du et bud på hvorfor?

Vedrørende JesperFjoelners forslag regnes der rigtigt i nogen situationer, medens er er fejl i andre poster. Det skal jeg have kigget på, når jeg får bedre tid.

aandersens forslag har jeg selv forsøgt på et tidligere tidspunkt, men som anført af terry, er problemet, når antallet af timer overstiger 24.

Jensen363 - dit forslag vil tage lidt tid at afprøve, så det bliver ikke lige med det første. Men hvis du vil smide et svare, har jeg tænkt mig af fordeles points således:

sjap 30; jensen363 10; aandersen 10; jesperfjoelner 10.
Avatar billede jesperfjoelner Nybegynder
28. november 2005 - 18:11 #10
et bette svar her. Vi må vende tilbage til det ellers.
Avatar billede -anders- Juniormester
28. november 2005 - 22:15 #11
bbkdk >> håber du for det til at virke, men se venligst bort fra mit svar da det langt fra er det korrekte, jeg var ikke opmærksom på det terry var inde på, så min andel af point bør gå til terry, men ellers tak :o)
Avatar billede sjap Praktikant
28. november 2005 - 22:53 #12
Når du bruger tidsformat til visning, så kan der ikke vises timer over 24, derfor er funktionen delt op i to:

=Int([Test]/24) & " " & Format([Test]/24;"t:nn")

Int([Test]/24) angiver antal døgn

Format([Test]/24;"t:nn") er så tidsformatet

Hvis jeg bruger funktionen på 26,7 så bliver resultatet 1 2:42 eller 1 døgn, 2 timer og 42 minutter.

Hvis du gerne vil have at resultatet bliver 26:42, så kan du bruge

=Int([Test]) & ":" & ([Test]-Int([Test]))*60
Avatar billede jensen363 Forsker
29. november 2005 - 08:59 #13
Mit sidste forslag skulle virke, hvis du i forvejen arbejder med tt,nn ( decimaltal ). Formlen konverterer til hele timer:minutter, og håndterer endvidere også negative timer, som jo af og til forekommer i flex-regnskaber
Avatar billede bbkdk Seniormester
30. november 2005 - 16:04 #14
Tak for hjælpen til alle - jeg arbejdet videre med de forskellige løsningsforslag.

Er det i orden, hvis jeg fordeler points således: jesperfjoelner 10, jensen363 20 og sjap 30. Terry har ikke lagt et svar, og for at være ubeskeden må jeg sige, at jeg godt kendte den problematik i forvejen.
Avatar billede bbkdk Seniormester
30. november 2005 - 18:07 #15
øh - er der noget galt med systemt, jeg synes ikke at jeg give points. Jeg har været inde på punktet "selv angive point fordelingen", men det virker ikke, når jeg trykker på accepter.
Er der nogen der har lidt hjælp?
Avatar billede bbkdk Seniormester
30. november 2005 - 18:18 #16
igen øhhhhhhhhh - jeg lavede en fejl, således at I hver fik 15 points - håber ikke at verden går under af den grund.
Avatar billede terry Ekspert
30. november 2005 - 18:30 #17
I wasnt expecting any points for my comment :o)
Avatar billede sjap Praktikant
30. november 2005 - 18:43 #18
Bare rolig. Hvis du kan læse denne besked, så går livet videre ;0)
Avatar billede jensen363 Forsker
30. november 2005 - 18:53 #19
No problemo
Avatar billede -anders- Juniormester
30. november 2005 - 19:20 #20
Tak for point anyway, forsat god arbejdslyst med projektet :o)
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