Datumberekening

Status
Niet open voor verdere reacties.

Dingeman

Gebruiker
Lid geworden
30 sep 2000
Berichten
503
Hoi,

Ik kom uit het volgende niet uit:

Ik heb in Access een veld Aankoopdatum. Vervolgens een veld Garantietijd. Als laatste zou ik dan willen dat in veld EindeGarantiedatum de uitkomst van de eerste twee staat, bv;

Aankoopdatum = 01-01-2004
Garantietijd= 2
Eindegarantiedatum, is dus een berekend veld =01-01-2006

Ik dacht met de volgen formule dit te doen, maar mooi niet dus! =[Aankoopdatum]+[Garantietijd]

Wie begrijpt deze en kan mij helpen?????

b v d,

Dingeman Schellings
 
Probeer eens het volgende:

eindegarantiedatum = DateSerial(year(aankoopdatum) + 2, month(aankoopdatum), day(aankoopdatum).

of anders deze:

eindegarantiedatum = DateAdd("yyyy",2,aankoopdatum)

Veel geluk

Scarie
 
Hoi Scarie,

Alvast bedankt voor je moeite!!!

Doch die formules kloppen ook niet want Garantietijd kan natuurlijk telkens veranderen bij een ander record!
 
Aankoopdatum = 01-01-2004
Garantietijd= 2
Eindegarantiedatum, is dus een berekend veld =01-01-2006

Ik dacht met de volgen formule dit te doen, maar mooi niet dus! =[Aankoopdatum]+[Garantietijd]

aanpassing=> Garantietijd=730
uitleg (365dgn * 2 = 730)

je telt dan gewoon 730 dagen erbij op
zou moeten werken

succes Gostdog :thumb:
 
Hoi Gostdog,

Ook jij bedankt voor het meedenken maar wanneer er een schrikkeljaar in zit werkt deze ook niet. Het scheelt maar en dag maar toch...
 
maak je een check in welk jaar je zit via een if then else constructie. volgens mij was een schrikkeljaar toch delen door 4 of zo
 
Ik zou als ik u was, een checkbox gebruiken. Daar kan je dan alle kanten mee uit. VB. een garantie van 3 maand, 6 maand enz....

Ik zou de optie van scarie veranderen in maanden. Je hebt dan geen probleem met schrikkeljaren.

VB (via een checkbox)

If (Forms!uw formulier!uw naam van de checkbox = 1) Then
Forms!uw formulier!Eindegarantiedatum = DateAdd("mm",uw aantal maanden,aankoopdatum)
End If

Je kan dit natuurlijk ook met 'select case' -> zelfde procedure.
 
Nog een poging,

Dim d as variant
d = me.garantietijd
me.eindegarantiedatum = DateSerial(year(aankoopdatum) , + d , month(aankoopdatum), day(aankoopdatum).

Deze berekening laat je uitvoeren bv na het verlaten van het veld aankoopdatum, maar je moet wel zorgen dat de garantietijd al ingevuld is.
 
een komma vergeten sorry,

Moet zijn:

me.eindegarantiedatum = DateSerial(year(aankoopdatum) , + d , month(aankoopdatum), day(aankoopdatum)).

scarie:o
 
En er bestaat toch zo'n mooie functie voor dit soort berekeningen....
In jouw geval:

DateAdd("yyyy", 2, "01-01-2004")

Door dit soort functies te gebruiken kun je rekenen met datums terwijl rekening gehouden wordt met schrikkeljaren etc.
 
Allemaal bedankt, dank zij jullie weer een probleem opgelost!!!!
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan