Invoer formulier (datum tijd)

Status
Niet open voor verdere reacties.

Bosmeester

Nieuwe gebruiker
Lid geworden
5 jan 2013
Berichten
2
Goedemiddag,

Voor sommige een vrij simpele oplossing, voor momenteel een issue.

Ik ben op zoek naar een vrij eenvoudig formulier met de volgende inhoud.

Invoerveld: Datum en tijd (notatie: dd-mm-jj h:m:s)
Antwoordveld rest dagen: antwoord zoals onderstaande uitleg
Antwoordveld rest uren: antwoord zoals onderstaande uitleg

Op basis van deze invoer moet er een berekening gemaakt worden.

Op basis van de invoer moet er 5 dagen bij de invoer opgeteld worden (X genoemd). De uitkomst hiervan moet vergeleken worden de huidige datum (Y genoemd).
Indien de uitkomst X jonger is dan Y dan moet het antwoord in de velden dagen en uren beide 0 zijn.
Indien de uitkomst X ouder is dan Y dan moet het antwoord de nog resterende dagen en resterende uren zijn.

Voorbeeld:
Invoer: 02-01-2013 10:00:00
Achtergrond wordt de invoer vermeerderd met 5 dagen een veld mag deze waarde getoond worden (niet wijzigbaar): 07-01-2013 10:00:00
Huidige Datum: 05-01-2013 14:00:00

Antwoord veld resterende dagen: 1
Antwoord veld resterende uren: 19 (afgerond naar beneden op een heel getal)
 
Laatst bewerkt:
Hoe je aan 19 uur komt is mij een raadsel, want bij mij gaan er 24 uren in een dag. En van 10 naar 14 uur is 4 uur verschil, dus 24-4=20 en geen 19.
Je invoer al moet minstens uit 2 tekstvakken bestaan, want je kunt niet zomaar een datum en een tijd invoeren, tenzij je een informatief gebruikt. Maar dan kun je geen DatePicker gebruiken kom de datum te selecteren. En dat zou zonde zijn. Dus een tekstvak voor de datum, en een tekstvak voor de tijd, zou ik zeggen. Die combineer je dan naar een derde vak, waar je de berekeningen verder mee uitvoert.
Die bekering is overigens niet zo moeilijk; met DateAdd kun je simpel 5 dagen optellen bij de gevormde datum. Die is vervolgens simpel met de huidige datum/tijd te vergelijken. Met een IIF formule bepal je dan de uitkomst in de doel tekstvakken.
 
Die 19 uur zijn eenvoudig te berekenen.

Je moet de resterende tijd berekenen vanuit 05-01-2013 14:00:00 naar 07-01-2013 10:00:00.
14 uur plus 10 uur = 24 uur
24 uur plus 9 uur = 9:00:00 uur (afgerond naar boven zou dat 10:00:00) zijn.
19 uur plus 05-01-2013 14:00:00 = 06-01-2013 9:00:00 plus 1 gehele dag.

Tot mijn spijt moet ik je zeggen dat het voor mij 15 jr geleden is dat ik iets met Access gedaan heb, binnen Excel heb ik deze formule en bewerking wel kunnen realiseren. Echter zou ik het prettig vinden als ik dit in een formulier of in een invul venster heb. De date picker is niet van belang, de input (datum en tijd) wordt namelijk gekopieerd vanuit een ander programma. In de bijlage is het dus de bedoeling dat in cel A4 een datum tijd getypt of geplakt wordt. De rode cellen zijn berekeningen om aan de waardes gegeven in de blauwe cellen te komen.

Wat ik graag zou willen gebruiken is dus alleen de invoer cel en de 2 blauwe uitkomsten in een soort van formulier/venster.

 
Ik blijf je berekening een beetje vreemd vinden, maar dat maakt voor de oplossing niet zo heel veel uit, want die zal hetzelfde blijven. Wel heb ik problemen met de manier waarop je datums beschrijft:
Op basis van de invoer moet er 5 dagen bij de invoer opgeteld worden (X genoemd). De uitkomst hiervan moet vergeleken worden de huidige datum (Y genoemd).
Indien de uitkomst X jonger is dan Y dan moet het antwoord in de velden dagen en uren beide 0 zijn.
Indien de uitkomst X ouder is dan Y dan moet het antwoord de nog resterende dagen en resterende uren zijn.
Voorbeeld:
Invoer: 02-01-2013 10:00:00
Achtergrond wordt de invoer vermeerderd met 5 dagen een veld mag deze waarde getoond worden (niet wijzigbaar): 07-01-2013 10:00:00
Huidige Datum: 05-01-2013 14:00:00
Antwoord veld resterende dagen: 1
Antwoord veld resterende uren: 19 (afgerond naar beneden op een heel getal)
Wat is een 'jongere datum', en een 'oudere datum'? Datums zijn getallen, en een getal is groter dan een ander getal (datum) of kleiner. In jouw voorbeeld gebeurt naar mijn gevoel precies het omgekeerde van wat je wilt: Datum y is 07-01-2013 10:00:00, en datum x is 05-01-2013 14:00:00. Volgens jouw verhaal moet er een berekening gemaakt worden, want jij vind y ouder dan x. Maar y ligt verder in de toekomst, en is dus 'jonger'.
Maar goed, de berekeningen:
Voor de dagen, kun je deze formule gebruiken.
Code:
=IIf(TimeSerial(Hour([Datum+Tijd]);Minute([Datum+Tijd]);Second([Datum+Tijd]))<TimeSerial(Hour(Now());Minute(Now());Second(Now()));
DateDiff("d";Now();DateAdd("d";5;[Datum+Tijd]))-1;
DateDiff("d";Now();DateAdd("d";5;[Datum+Tijd])))
En voor het aantal uren:
Code:
=(([Estimate Value]-[txtDagen])*24*10)\10
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan