formule voor query als dag is donderdag na 12:00u dan date()+1

Status
Niet open voor verdere reacties.

Peer44

Gebruiker
Lid geworden
25 jan 2008
Berichten
224
Hallo, ik wil een aan een query een formule toevoegen:

Normaal staat er een filter Date()
Alleen op donderdag na 12:00uur moet ik deze aanpassen naar Date()+1

kan ik dit met een formule oplossen? (er mag gebruik worden gemaakt van de systeem tijd)

in excel kan ik deze oplossing wel maken maar hoe moet de formule in access worden gemaakt?

en waar kan ik dit ingeven?

hopelijk heeft iemand de oplossing hiervoor.
 
Met een aparte vergelijking kom je een heel eind. Je moet een nieuw veld maken, met deze formule (wel de veldnaam in de IIF aanpassen, als jouw veld niet [Datum] heet)
Code:
IIf(Weekday(Date();2)>=4;IIf(Now()>=Date()+TimeSerial(11;0;0);[Datum]>=Date()+1;[Datum]=Date());[Datum]=Date())
Als criterium zet je bij dit veld: <>Onwaar
Je hoeft het veld niet zichtbaar te maken, want er staat toch alleen maar 0 of -1.
 
Met een aparte vergelijking kom je een heel eind. Je moet een nieuw veld maken, met deze formule (wel de veldnaam in de IIF aanpassen, als jouw veld niet [Datum] heet)
Code:
IIf(Weekday(Date();2)>=4;IIf(Now()>=Date()+TimeSerial(11;0;0);[Datum]>=Date()+1;[Datum]=Date());[Datum]=Date())
Als criterium zet je bij dit veld: <>Onwaar
Je hoeft het veld niet zichtbaar te maken, want er staat toch alleen maar 0 of -1.

heb deze formule ingegeven in een nieuwveld,

alleen nu zie ik geen regels meer staan in de query, wat dien ik aan te passen in jou formule?

ik wil altijd alle regels zien waarvan de datum gelijk is aan vandaag
alleen op donderdag wil ik vanaf 12:00uur ook de regels van de vrijdag erna zien.
op donderdag om 12:00 moeten er dus de regels van vandaag in staan en van morgen.
 
Bij mij doet-ie het anders perfect, dus het ligt niet aan de formule. Je probleem zou dus kunnen liggen in je datumveld. Is dat wel een datumveld bijvoorbeeld? En weet je zeker dat er alleen maar een datum in staat, en niet een datum+tijd? Ik zou niet graag de mensen de kost geven die een datum willen opslaan, maar daar niet de functie Date() voor gebruiken, maar de functie Now().

P.S. Een berichtje quooten is een beetje zinloos, en neemt alleen maar ruimte in beslag.
 
Okee dat heeft geholpen,

het veld waarin de datum staat heet ProductieDatum
het veld "ProductieDatum" heeft als notatie eigenschap: dd-mm-yyyy

ik heb in de query een nieuwe kolom ingevoegd in die kolom heb ik in Veld: onderstaande formule ingevoerd
Code:
Expr1: IIf(Weekday(Date();2)>=4;IIf(Now()>=Date()+TimeSerial(11;0;0);[ProductieDatum]>=Date()+1;[ProductieDatum]=Date());[ProductieDatum]=Date())

bij criteria heb ik ingegeven <>onwaar

in de kolom ProductieDatum stond bij criteria: Date() als ik dit verwijder krijg ik nu alle regels te zien die groter zijn dan de huidige datum.

Maar nu is het vrijdag, dus wil ik alleen alle regels zien die gelijk zijn aan de datum van vandaag?
 
Dan moet je [ProductieDatum]>=Date()+1 vervangen door [ProductieDatum]=Date()+1.
Overigens heeft je opmaak niets te maken met de opgeslagen waarde. Als je Now() als standaardwaarde gebruikt voor een datumveld, dan slaat hij altijd datum+tijd op, ongeacht dus welke opmaak je er aan geeft. Dat bepaalt alleen maar hoe je de waarde ziet.
Die twee zaken moet je dus wel degelijk goed uit elkaar houden!
 
ben er bijna,

Code:
Expr1: IIf(Weekday(Date();2)=4;IIf(Now()>=Date()+TimeSerial(11;0;0);[ProductieDatum]=Date()+1;[ProductieDatum]=Date());[ProductieDatum]=Date())

het groter dan teken weggehaald bij de vergelijking of het donderdag is: Expr1:
Code:
IIf(Weekday(Date();2)=4

als ik nu de systeemdatum op donderdag zet zie ik alle regels van vrijdag maar niet meer van donderdag.
dit heeft uiteraard te maken met de eerste truevalue = DATE()+1 dus alles van de dag na vandaag.

maar hoe kan ik nu de regels ook zien van DATE() heb geprobeerd de formule aan te passen met "date()+1 & date()"
alleen dat werkt niet.....
 
Octafish bedankt voor al je hulp volgens mij is het nu gelukt:

heb een 2e veld aangemaakt met daarin:
Code:
Expr2: IIf(Weekday(Date();2)=4;[ProductieDatum]=Date();[ProductieDatum]=Date())
criteria <>onwaar

in het 1e veld staat nu:
Code:
Expr1: IIf(Weekday(Date();2)=4;IIf(Now()>=Date()+TimeSerial(12;0;0);[ProductieDatum]=Date()+1;[ProductieDatum]=Date());[ProductieDatum]=Date())
criteria <>onwaar

nu als ik de datum op donderdag zet tijd 11:00 zie ik alle regels van donderdag.
datum donderdag tijd 12:05 alle regels van donderdag + vrijdag

op een willekeurige andere dag alleen de regels van die dag.

Super bedankt!
 
Ik snap je eerste code niet; die doet namelijk hetzelfde bij zowel waar als onwaar! Dus als de weekdag donderdag is, doet hij hetzelfde als bij de overige dagen! Mag je even uitleggen wat daar het nut van is :)
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan