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 dette særtema ser vi på, hvordan cloud og AI bliver fundamentet for virksomhedernes digitale forretning, og hvordan de nye muligheder for automatisering og forretningsværdi kan udnyttes uden at miste overblik, sikkerhed og menneskelig kontrol.
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.