Aantal maanden tussen 2 data tellen

Status
Niet open voor verdere reacties.

nala987

Gebruiker
Lid geworden
29 jan 2007
Berichten
5
Ik ben al een tijdje op zoek naar een oplossing om het aantal maanden tussen 2 verschillende data te kunnen tellen binnen Access (of eventueel binnen Excel indien ik mijn gegevens exporteer).

Bijvoorbeeld:
1/02/06 - 31/7/06: 6 maanden
1/02/06 - 30/7/06: 5 maanden (want juli is geen volledige maand meer)
15/2/06 - 27/7/06: 5 maanden
15/2/06 - 14/7/06: 5 maanden
15/2/06 - 13/7/06: 4 maanden (1 dag te weinig om nog volledige maand te kunnen bijtellen)

Er moet dus rekening gehouden worden met het aantal dagen in een bepaalde maand. De dagen tellen en delen door 30 of zo geeft dus niet het juiste resultaat.
Dit moet kunnen binnen hetzelfde jaar maar ook over verschillende jaren.
Momenteel tel ik alles handmatig waarbij ik vinkjes plaats, maar dit is wel een gigantisch werk.

Bestaat hier een formule voor of een stukje programmacode in VBA of zo?
 
Ik vermoed dat de bijlage het antwoord is op je vraag / vragen.
Al moet ik er bij zeggen dat de vlieger in de gevallen van:
15/2 14/7 NIET opgaat. M.i. komt dit doordat Excel "intelligent" is en niet weet of de gebruiker "tot" of "tot en met" bedoelt......... Dit ondervang je m.i. vrij gemakkelijk door hier bij de invoer van de einddatum rekening mee te houden, m.a.w. 14/7 wordt dan 15/7.
In het bijgevoegde bestandje tevens een "meerjaren bereking".

Suc6!

ps. type binnen de Help functie van Excel eens : maanden tellen en je vindt nog verschillende "parameters" v.w.b. de wijze van tellen. (De letter M in de formule is in dit geval de parameter)
 

Bijlagen

  • Map3.zip
    1,5 KB · Weergaven: 318
Laatst bewerkt:
Bedankt voor de reactie.

Ik heb alles inmiddels uitgeprobeerd. Mits aanpassing van de einddatum lijkt dit binnen Excel wel te lukken, dus alvast bedankt. Maar nu probeer ik dit in een query binnen Access te gebruiken (maar dan via DateDiff) en daar krijg ik hier en daar een maand verschil. Als ik dezelfde gegevens naar Excel kopieer wordt de berekening met de formule in Excel wel correct uitgevoerd.

Enig idee wat binnen Access nu verkeerd loopt?
 
Hallo dit is niet zo moeilijk als dat het lijkt

Als je een query maakt moet je het volgende doen:

Maanden:Month([Datum_einde]-[Datum_start])

Maak dus een nieuw veld die Maanden heet en gebruik de ingebouwde functie Month deze gebruikt altijd de maand van de datum die je invoerd. In mijn voorbeeld heb ik dus twee velden van elkaar afgetrokken namelijk Datum_einde en Datum_start. Je kunt dit invoeren door op de build knop te drukken in de Engelse versie van Access in het Nederlands zal het wel bouw of zo heten. Dit moet lukken je kunt dit ook met jaren etc doen zie de ingebouwde functies.

Have Fun.....
 
Hallo,

je tabel noem ik even tblDatum, je eerste datumkolom EersteDatum en je tweede datumkolom TweedeDatum.

Maak een query die er in SQL weergave zo uitziet:

Code:
SELECT EersteDatum, TweedeDatum,
IIF(Day(TweedeDatum+1) - Day(EersteDatum) < 0, DateDiff("m",EersteDatum,TweedeDatum+1)-1, IIF(Day(TweedeDatum+1) - Day(EersteDatum) > 0, DateDiff("m",EersteDatum,TweedeDatum+1),
IIF(Day(TweedeDatum+1) - Day(EersteDatum) = 0, DateDiff("m",EersteDatum,TweedeDatum+1)))) As [Verschil in maanden]
FROM tblDatum;

Er zijn nog andere mogelijkheden.
Het beste schrijf je een zelfgedefineerde functie in VBA, dan kun je deze over je hele toepassing gebruiken.

Dit is hoe het werkt:

tel bij de tweede datum 1 dag op

trek vervolgens de eerste datum van de (tweede datum + 1 dag) af

als het verschil 0 is, is er een vol verschil in maanden, 1 maand optellen
anders niets optellen.

Groet,

Tardis
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan