07. september 2011 - 18:21Der er
15 kommentarer og 1 løsning
DatoForskel ???
Hej igen
Hvad skal jeg skrive vis jeg også vil ha at antal dage også kommer med i denne kode
Function DatoForskel(D1 As Date, D2 As Date) As String Dim MånederIalt As Long Dim AntalMåneder As Long Dim AntalÅr As Long
MånederIalt = DateDiff("m", D1, D2) AntalÅr = Int(MånederIalt / 12) AntalMåneder = MånederIalt - (AntalÅr * 12) DatoForskel = AntalÅr & " år og " & AntalMåneder & " måneder" End Function
Dit udtryk bliver så meget enklere:
If Not Me.NewRecord Then Iif IsNull(Me.udmeldelsesdato) Then Me.Feltnavn=DatoForskel(Me.Indmeldt,Date) Else Me.Feltnavn=DatoForskel(Me.Indmeldt,Me.Udmeldelsesdato) End If EndIf
Mød TrackMan og Veo på Computerworld Cloud & AI Festival og hør, hvordan tech ændrer måden, vi træner og udvikler talent – fra skolebold til The Masters.
dette burde kunne gøre det - og den skriver ikke år hvis det er 0
Function DatoForskel(D1 As Date, D2 As Date) As String Dim MånederIalt As Long Dim AntalMåneder As Long Dim AntalÅr As Long Dim AntalDage As Long Dim Res As String
if AntalMåneder>0 then if AntalÅr>0 then Res = Res & " og " Res = AntalMåneder & " måneder" end if
if AntalDage >0 then if AntalÅr>0 or AntalMåneder>0 then Res = Res & " og " Res = AntalDage & " dage" end if
DatoForskel = Res & "." End Function
If Not Me.NewRecord Then Iif IsNull(Me.udmeldelsesdato) Then Me.Feltnavn=DatoForskel(Me.Indmeldt,Date) Else Me.Feltnavn=DatoForskel(Me.Indmeldt,Me.Udmeldelsesdato) End If End If
Synes godt om
Slettet bruger
07. september 2011 - 20:44#2
den skal skriv det som denne linie 12 år 2 månder 215 dage
hvordan 215 dage? det kan da maks være det antal dage, der er tilbage når år og måneder er fratrukket (dvs maks 30 på måneder med 31 dage). alternativt, så kan du få det samlede antal dage (altså inkl de 12 år og 2 mdr) hvilket så ville være over 4440 dage.
Synes godt om
Slettet bruger
08. september 2011 - 13:38#4
det er også det jeg gerne ville ha at den viste min i mit felt
det skulle min kode da også gøre - men hvis en bruger nu kun er med kort tid, så springer den '0 år' over, og skriver kun fx '1 måned og 5 dage' - hvis det er over 1 år, så kommer året med.
der er to fejl mere (mindst) Res = AntalMåneder & " måneder" skal også være Res = Res & AntalMåneder & " måneder" og så skal der rettes i D2 = DateAdd("d", 0-MånederIalt, D2) det er ikke dage, der skal tælles ned, men antal måneder D2 = DateAdd("m", 0-MånederIalt, D2)
Synes godt om
Slettet bruger
12. september 2011 - 22:09#12
jeg har en der er indmeldt d. 19/9-81 men den skriver at han har været med i 30 år i dag og det er ikke rigtigt da det ikke er den 19/9-11 i nu.
kan men sætte en kode ind i denne så man kan få den til at skifte farve i tekst feltet vis der er gået mere ind 3 år
If Not Me.NewRecord Then Iif IsNull(Me.udmeldelsesdato) Then Me.Feltnavn=DatoForskel(Me.Indmeldt,Date) Else Me.Feltnavn=DatoForskel(Me.Indmeldt,Me.Udmeldelsesdato) End If EndIf hilsen CB
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.