18. januar 2008 - 19:47Der er
9 kommentarer og 1 løsning
Hjælp til dette
Hej.....
Det jeg skal kunne er når 1 person bliver meldt ind bliver der skrivet en dato i feltet [Indmeldt] og ud fra den dato udregnes det antal år som personen har været medlem til D.D. og bliver vist i Tekst felt.
Når så person melder sig ud, skal jeg skrive en ny dato i feltet [Udmeldelsesdato] og så skal Tekst feltet vise datediff mellem [indmeldt] og [udmeldelsesdato] og ikke som før.
i formularens VBA skriver du i hændelsen VedAktuel/OnCurrent:
If Not Me.NewRecord Then Iif IsNull(Me.udmeldelsesdato) Then Me.Feltnavn=DateDiff("yyyy";[Indmeldt];Now())+Int(Format(Now();"mmdd")<Format([Indmeldt];"mmdd")) Else Me.Feltnavn=DateDiff("yyyy";[Indmeldt];[udmeldelsesdato])+Int([udmeldelsesdato];"mmdd")<Format([Indmeldt];"mmdd")) End If EndIf
Husk at rette Me.Feltnavn til navnet på dit beregnede felt.
.. og så skal du vel også beregne feltet, når du har indtastet i Udmeldelsesdato. Det kan du gøre ved at lægge koden i Udmeldelsesdatos EfterOpdatering/AfterUpdate hændelse.
Synes godt om
Slettet bruger
20. januar 2008 - 10:31#2
tak for hjælpen
men kan jeg også for vist månder i samme kode
Synes godt om
Slettet bruger
21. januar 2008 - 21:02#3
der er 20 point til den som kan sige mig om jeg også kan få vist Månder i samme kode
Det bliver nok mere overskueligt med en lille funktion i stil med:
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
- Opret et nyt modul, paste funktionens kode ind og gem modulet (navnet er ligegyldigt) - I formularens VedAktuel/OnCurrent hændelse skriver anden halvdel af koden (altså fra "If Not Me.NewRecord ...")
Der er ikke mere i det. Ellers må du prøve at forklare nærmere. (Du har allerede accepteret spm; men du skal jo have valuta for dine point)
Synes godt om
Slettet bruger
22. februar 2009 - 23:37#9
Kan denne ikke også skrive Månder + år
If Not Me.NewRecord Then Iif IsNull(Me.udmeldelsesdato) Then Me.Feltnavn=DateDiff("yyyy";[Indmeldt];Now())+Int(Format(Now();"mmdd")<Format([Indmeldt];"mmdd")) Else Me.Feltnavn=DateDiff("yyyy";[Indmeldt];[udmeldelsesdato])+Int([udmeldelsesdato];"mmdd")<Format([Indmeldt];"mmdd")) End If EndIf
Husk at rette Me.Feltnavn til navnet på dit beregnede felt.
.. og så skal du vel også beregne feltet, når du har indtastet i Udmeldelsesdato. Det kan du gøre ved at lægge koden i Udmeldelsesdatos EfterOpdatering/AfterUpdate hændelse
Synes godt om
Slettet bruger
07. september 2011 - 18:14#10
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
MVH 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.