jaartal uit datums

Status
Niet open voor verdere reacties.

patje8

Gebruiker
Lid geworden
31 jul 2005
Berichten
428
Hallo,

printscreen.jpgIk heb een tabel "Datums" met de velden "datum" en "dag", "maand" en "jaar".
Het veld met de datums is reeds ingevuld.

Nu wil ik via een update query de velden dag, maand en jaar (numeriek) berekenen en in de tabel datums weergeven. Helaas lukt me dit niet.
Ik gebruik de code Year([datum]) maar dan krijg ik helemaal geen jaartal.
Wat doe ik verkeerd?

Ik gebruik access 2013.
 
En waarom zou je dat in hemelsnaam willen? Al die gegevens zijn te berekenen via (al dan niet hele simpele) functies. Dit soort te bereken gegevens sla je NOOIT op in een tabel. Nergens voor nodig, en maakt je db alleen maar kwetsbaar en groot. Niet doen dus.
 
Op dezelfde manier als je die query zou maken :).
Ik zal eerst uitleggen waarom je vooral die tabel niet zo moet maken. De reden is heel simpel: de verschillende velden in één record hebben namelijk niks met elkaar te maken. Je kunt, en dan hou ik even jouw velden aan, probleemloos dit invullen in één record:
Datum: 26 april 2016 (=vandaag, dinsdag)
Dagnr: 15
Weekdagnr: 4
Maandnr: 9
Jaar: 2014
..
Maandnaam: Maart

Niemand houdt je tegen als je het eerste record zo invult. Terwijl er dus geen ene jota van klopt, uitgaande van 26-4-2016 zou je dit moeten zien:
Datum: 26 april 2016 (=vandaag, dinsdag)
Weekdagnr: 3 (hangt trouwens af van op welke dag je begint. Kan dus ook 2 zijn of een andere waarde)
Dagnr: 26
Maandnr: 4
Jaar: 2016
..
Maandnaam: April

Dat kun je alleen bereiken door de resultaten in een query te maken en aan te roepen als je de waarde nodig hebt. Dan krijg je iets als:
Code:
Veld:[Faktuurdatum]
Jaar: Year([Faktuurdatum])
Maand: Month([Faktuurdatum])
Dag: Day([Faktuurdatum])
Weeknr: DatePart("ww";[Faktuurdatum];2;2)
Dagnaam: Format([Faktuurdatum];"dddd")
Maandnaam: Format([Faktuurdatum];"MMMM")
Etc.
Dit voorbeeld bepaalt a.d.h. van het veld [Factuurdatum] dus exact de gegevens die je wilt kunnen zien.
 
Ok, begrijp ik maar waar moet ik deze code dan plaatsen in de query?
 
Zoals ik het heb neergezet kun je de velden letterlijk zo overnemen. Links van de : staat de zichtbare Veldnaam, rechts de functie met het datumveld. Dat veld moet je uiteraard wel aanpassen naar je eigen veld.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan