Eerste en einde van kwartaal en eerste en einde van het jaar

Status
Niet open voor verdere reacties.

janalleman123

Gebruiker
Lid geworden
19 mei 2011
Berichten
37
Hallo,

Ik wil de eerste en het einde van het kwartaal weten. en zo ok voor jaar. Maar dan wil ik niet de standaard functies gebruiken hiervoor maar met values werken

Expr1: IIf(DateSerial(Year(Now());Month(1 Or 4 Or 7 Or 10);Day(Now())<5) And [Tabel]![Veld]="Begin";"ok";

IIf(DateSerial(Year(Now());Month(1 Or 4 Or 7 Or 10);Day(Now())>26) And [Tabel]![Veld]="Eind";"ok";"niet ok"))="ok";)

1= Januari Kwartaal 1
4= April Kwartaal 2
7= Juli kwartaal 3
10= Oktober kwartaal 4

Alleen dit schijnt Access niet te slikken. Ik krijg geen expression error dus de haakjes zitten goed. maak ik een fout in de expressie zelf?
 
Als ik jouw formule gebruik, en dan alleen het DateSerial deel (Expr7: DateSerial(Year(Date());Month(1 Or 4 Or 7 Or 10);Day(Date()))) , dan is dit de datum die je er mee krijgt: 4-12-2012. En dat is vast niet wat je zoekt. Er is een hele simpele manier om te kijken of de maand de eerste maand is van een kwartaal: deel het maandgetal door het kwartaalgetal, en controleer of dat een geheel getal is. Zo ja: eerste maand van het kwartaal! Voorbeeldje? Maand 8 is in het derde kwartaal. 8/3 = 2,66, en dat is geen geheel getal. Augustus is dus niet de eerste maand van het kwartaal. Juni daarentegen is de 6e maand, en 6/3=2. Juni is dus de eerste maand. In een formule ziet dat er zo uit:

Code:
Expr6: Month(Date())=(((Val(Format(Date();"q"))-1)*3)+1);

Die vergelijking kun je verder toepassen in je IIF verhaal met de check op het veld "Begin".
 
Laatst bewerkt:
Hallo octoo,
Dank voor je reactie.

Januari is begin van kwartaal 1
Dus als Date (nu) maand gelijk is aan januari en de dag kleiner is dan 5 dan is het begin van het kwartaal.
En als de date(nu) maand gelijk is aan maart en de dag groter is dan 26 dan is het t einde van het kwartaal.

Dat wil ik meer gewoon een code waar ik if statement achter kan zetten en kan vergelijken.

CInt(Month([Datum])/Val(Format([Datum];"q")))=(Month([Datum])/Val(Format([Datum];"q")))

Deze code heb ik nooit gebruikt en weet ook niet hoe het in elkaar steekt.

Kan het echt niet via dat datepart gebeuren of via VBA.

In mijn andere code voor de maand heb ik namelijk t weer wel gedaan. Maar dan heb je niet 2 datums wat je moet berekenen maar alleen Day(now) = < 10 etc

Alleen nu moet ik ook de maand weten en de dag van de maand en of die gelijk is aan de waarde begin of einde van kwartaal
 
Laatst bewerkt:
slechte code

zo hoort t:IIf(Month(Date())=(((Val(Format(Date();"q"))-1)*3)+1);IIf(Day(Date())<5 And [Veld]="Begin";"OK";"");IIf(Month(Date())=(Val(Format(Date();"q"))*3);IIf(Day(Date())>25 And [Veld]="Eind";"OK";"Niet OK")))

Ja zo kan het dus ook hé
 
Laatst bewerkt:
Of zo:
Code:
Expr1: IIf(Month(Date())=(((Val(Format(Date();"q"))-1)*3)+1);IIf(Day(Date())<5 And [Veld]="Begin";"OK";"");IIf(Month(Date())=(Val(Format(Date();"q"))*3);IIf(Day(Date())>25 And [Veld]="Eind";"OK";"Niet OK")))
Drie keer raden aan elke variant ik de voorkeur geef :)
 
Of zo:
Code:
Expr1: IIf(Month(Date())=(((Val(Format(Date();"q"))-1)*3)+1);IIf(Day(Date())<5 And [Veld]="Begin";"OK";"");IIf(Month(Date())=(Val(Format(Date();"q"))*3);IIf(Day(Date())>25 And [Veld]="Eind";"OK";"Niet OK")))
Drie keer raden aan elke variant ik de voorkeur geef :)

Ja die van jou is makkelijker hé en denk ook stabieler.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan