Avatar billede r_becker Novice
16. maj 2011 - 21:30 Der er 8 kommentarer og
1 løsning

Få dato til at hoppe frem til den næste måned

har et felt hvor jeg skal indtaste en dato som altid er til den første men skal også bruge et felt der hopper frem til den næste første dette skal jeg gøre 4 gange.

dvs at hvis jeg taster 01-07-2011 så skal jeg bruge datoene 01-08-2011  01-09-2011 01-10-2011 kan man få den til at gøre dette automatisk

/Rickie
Avatar billede Slettet bruger
16. maj 2011 - 22:10 #1
du lægger bare månedens længde til. Snuppet fra immediate vinduet:

d1=cvdate("01/08-2011")
?d1+array(31,28-(((year(d1) mod 4)=0) and ((year(d1) mod 100)<>0))-((year(d1)mod 400)=0),31,30,31,30,31,31,30,31,30,31)(month(d1)-1)
01-09-2000
Avatar billede r_becker Novice
16. maj 2011 - 22:18 #2
hmm er lidt grøn så må ærligt indrømme det ikke siger mig meget :)
Avatar billede fdata Forsker
16. maj 2011 - 22:36 #3
Du kan benytte en lille funktion:
(smid nedenstående ind i et modul)

Funktionen kan du kalde fra din formular ved at skrive kaldet i Kontrolelementkilde/Control Source, f.eks.:
  =FindNæsteFørste(Me.DitFelt,1)

----

'Test: Placer cursoren i testrutinen og tryk F5
Private Sub Test_NæsteFørste()
  Debug.Print FindNæsteFørste(Date, 1)
  Debug.Print FindNæsteFørste(Date, 2)
  Debug.Print FindNæsteFørste(Date, 3)
End Sub

Function FindNæsteFørste(Dato As Date, n As Integer) As Date
  Dim d As Date
  d = DateAdd("m", n, Dato)
  FindNæsteFørste = DateValue("01-" & Month(d) & "-" & Year(d))
End Function
Avatar billede r_becker Novice
16. maj 2011 - 23:05 #4
kigger på det i morgen kan ikke lige se hoved eller røv i det lige nu
Avatar billede hugopedersen Nybegynder
17. maj 2011 - 09:07 #5
Hvis du ved at den dato du har tastet ind altid er den 1. i måneden så er der ingen grund til at gøre det så besværligt.
Access har en indbygget funktion der hedder DateAdd

DateAdd("m", 1, "1-5-2011") giver således 1-6-2011 som resultat

På dine felter på formen burde du således kunne skrive
= DateAdd("m"; 1; [NavnetPåDitInputFelt])
= DateAdd("m"; 2; [NavnetPåDitInputFelt])
= DateAdd("m"; 3; [NavnetPåDitInputFelt])
for at få lagt 1, 2 eller 3 måneder til din indtastning.
Avatar billede r_becker Novice
17. maj 2011 - 16:46 #6
Hej hugo hvor er det lige jeg skal skrive det er det i kontrolelement eller ?
Avatar billede hugopedersen Nybegynder
18. maj 2011 - 08:47 #7
Ja
Avatar billede r_becker Novice
18. maj 2011 - 18:03 #8
hej Hugo
læg et svar det spiller bare ;)
Avatar billede hugopedersen Nybegynder
18. maj 2011 - 19:24 #9
OK - det var godt
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

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