23. juni 2004 - 03:21Der er
4 kommentarer og 1 løsning
Problem med DateDiff
Har problem med DateDiff i forbindelse med beregning af dage:timer:minutter - hvor regnestykket bliver forkert. Der mangler konsekvent een dag - ved store datoforskelle går det helt galt. Drift = Format((DateDiff("s", date1:=Me.GenSynkron, date2:=Me.GenAsynkron) / 60 / 60 / 24), "dd:hh:mm")
Problemet er, at datediff returnerer et TAL og ikke en dato. Du kan derfor ikke bare formatterer tallet som du ville formattere en dato. Det tal, som kommer ud af DateDiff("s", date1:=Me.GenSynkron, date2:=Me.GenAsynkron)/60/60/24 skal oversættes til dage, timer og mintter.
Heltalsdelen er svarer til dage, mens decimal-delen skal konverteres til timer og minutter.
Prøv at smide denne funktion i et modul og så kalde BeregnDatoForskel(dato1, Dato2):
Public Function BeregnDatoForskel(Tid1 As Date, Tid2 As Date) As String Dim Sek As Single Dim Min As Single Dim Tim As Single Dim Dage As Single Dage = DateDiff("s", Tid1, Tid2) / 60 / 60 / 24 Tim = (Dage - Int(Dage)) * 24 Min = (Tim - Int(Tim)) * 60 BeregnDatoForskel = Int(Dage) & ":" & Int(Tim) & ":" & Int(Min) End Function
Har prøvet den funktion du foreslår hvor DatoForskel kommer som en streng. Jeg vi imidlertid gerne regne videre på DatoForskel feks. addere ugevis, månedsvis og årsvis - dette må så gøres i forespørgsel inden inden omregning til streng. Tak for hjælpen
Synes godt om
Ny brugerNybegynder
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.