16. maj 2011 - 21:30Der 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
At arbejde i skyen er en hårfin balancegang mellem sikkerhed, fleksibilitet og omkostninger.
26. august 2024
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
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
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.
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.