ik wil steeds een maandag in een veld hebben

Status
Niet open voor verdere reacties.

JEPEDEWE

Terugkerende gebruiker
Lid geworden
14 jun 2006
Berichten
1.697
Hallo allemaal,

Graag een handje voor volgend "probleem".

Stel, je hebt 2 velden.
Als je in het ene veld een datum invult dan moet je in het andere veld steeds de datum van de maandag hebben van de week waarin de ingegeven datum valt...
bvb
je geeft de datum van vandaag in 30/07/2015 en het andere veld geeft je 27/07/2015
zo ook bvb 02/08/2015 dan krijg je ook 27/07/2015
geef je een maandag in dan dan krijg je in het andere veld dezelfde datum

Wie weet een oplossing?
Bedankt alvast

JP
 
Kun je met DateAdd en Weekday uitrekenen:
Code:
Expr1: DateAdd("d";-(Weekday([Datum];1)-2);[Datum])
 
Bedankt voor de oplossing...
Echter..

Ik paste de code als volgt aan:

Code:
   Me!ActiveXBestEl21 = DateAdd("d", -(Weekday([Me!ActiveXBestEl7], 1) - 2), [Me!ActiveXBestEl7])

het bizarre is dat ik fouten kreeg als ik in jouw code de ; liet staan. Verving ik dat door een , dan kreeg ik geen programmeringsfout.

Ik kreeg ook volgende foutmelding:

Kan het veld |1 niet vinden waarnaar verwezen wordt in de expressie
fout 2465

Wat gaat hier fout?

JP:(
 
het bizarre is dat ik fouten kreeg als ik in jouw code de ; liet staan. Verving ik dat door een , dan kreeg ik geen programmeringsfout.
Is niet zo bizar; mijn voorbeeldje kwam uit een query (waarom zou je het met VBA doen?). In een query gebruik je de puntkomma als scheidingsteken, in SQL en VBA wordt die 'vertaald' naar een komma. In VBA moet je dus altijd komma's gebruiken. Omgekeerd: als je een code vanuit VBA naar het queryvenster kopieert, moet je de omgekeerde weg bewandelen. Dat doe ik overigens meestal via de luie methode: ik laat Access de fout 'opsporen' door de query of code uit te voeren. Hij stopt dan vanzelf bij de komma (in een query) of de puntkomma (bij VBA). En ik typ dan het juiste teken tot de code netjes doorloopt.
 
Oh ja, je fout :).
Die is ook logisch: als je naar een formulierobject verwijst is dat geen veld. Dus moet je dat ook niet aanroepen als een veld. En leer jezelf eens aan om met IntelliSense te werken i.p.v. met objectverwijzingen. Gaat je zoveel tijd schelen, en typfouten!
Code:
Me.ActiveXBestEl21 = DateAdd("d", -(Weekday(Me.ActiveXBestEl7, 1) - 2), Me.ActiveXBestEl7)
 
er klopt blijkbaar iets niet..
Als ik bvb 26/07 kies krijg ik 27/07 in het "berekende" veld
 
Heb je 'm al in de onderliggende query getest?
 
Ik neem aan dat je de code op een formulier wilt zien. Dan heb je daar denk ik een tabel of query onder hangen. Ik zou de berekening in dat geval altijd in de query zetten.
 
op het formulier staan 2 velden:
een einddatum en een begindatum
Ik vul de einddatum in en op basis hiervan wordt de begindatum (een maandag) default ingevuld (in de eigenschap "bij verlaten")
pas nadien gebruik ik beide data in een query.
Het gaat alleen mis als de einddatum een zondag is, dan wordt in het veld met de begindatum de VOLGENDE maandag ingevuld en niet de VORIG.
Op andere dagen werkt het dan weer wel perfect

Hopelijk ben ik nu wat duidelijker....

Bedankt alvast
 
Dan maak je er een IIF van die controleert of je einddatum een zondag is. In dat geval krijg je de berekening + 1, anders de berekening zoals je hem nu hebt.
 
OK, die benadering werkt....
Probleem opgelost
Bedankt Michel!:thumb:
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan