Welkom op het forum van startpagina!

Dit forum staat op alleen-lezen. Je kan hier informatie zoeken en oude berichten terugvinden, maar geen nieuwe berichten plaatsen.

Naar overzicht van alle forums

DateAdd in rapport

  • Linda

    Hallo access kenners,

    Ik heb d.m.v. van wizards een database voor de cursusadministratie gebouwd. Dat is aardig gelukt, maar ik heb nog een paar probleempjes, die voor de professionals onder jullie waarschijnlijk een fluitje van een cent zijn. Een ervan is dat ik in een ‘presentielijst’ 20 hokjes heb gezet (voor twintig weken) om de presentie van de cursisten op af te vinken. Boven die hokjes wil ik vanaf de startdatum elke keer de datum (van een week verder) automatisch invullen. Ik heb begrepen dat ik dat met de functie DateAdd kan doen, maar weet niet precies hoe. Kan iemand mij dat duidelijk maken?

    Alvast hartstikke bedankt,

    Groet,

    Linda

  • Database Service Nederland

    Even een simpele methode, maar het werkt wel!

    Voeg een veldje toe aan je rapportquery; reken: 7

    Zet dit veldje verborgen (zichtbaar NEE) op je rapport en zet lopen totaal op JA

    Maak nu een rekenveldje op je rapport met formule:

    =DateAdd(“d”;;)

    Succes!

  • Linda

    Het werkt, dat wel, maar dan voor één week na de startdatum. En het gaat om meerdere weken achter elkaar, dus stel, een cursus duurt 18 weken, er staan op de presentielijst dus 18 hokjes die ingevuld moeten worden met een datum, steeds een week verder. Hoe los ik dat op? Ik hoop dat je me daar ook een oplossing voor kan bieden. In elk geval vast bedankt voor de moeite tot nu toe.

    Groet,

    Linda

  • LS

    Noem je eerste veld , je tweede veld , je derde veld , enz.

    Zet de notatie op datumnotatie van al deze velden. Maak van de besturingselementbron:

    = +7

    = +7

    enz,enz

    is een onafhankelijk-veld

    Als je dan de startdatum in invoert worden de volgende data automatisch met 7 dagen/1 week verhoogd.

    Succes!

  • Linda

    Dank voor de reacties. Ik heb er veel aangehad. Het is me gelukt in elk opvolgend veld een datum te zetten. Ik heb gebruik gemaakt van de formule

    =DateAdd(“d”;;) en voor elke volgende week heb ik +7 + 14 enz. toegevoegd : =DateAdd(“d”;;+7) Het is inderdaad een eenvoudige oplossing en het werkt.

    Het enige dat ik nu nog zou willen is dat ook de einddatum een begrenzing vormt voor het aantal velden dat wordt ingevuld. Een cursus heeft namelijk niet altijd dezelfde einddatum. Zoals ik het nu heb oplost zijn dus alle velden vanaf de begindatum tot het eind (32 velden) ingevuld met een datum .

    Kan iemand mij nog vertellen hoe ik dat kan oplossen?

    Groet,

    Linda

  • RV2

    Dat wordt een stukje lastiger, je moet daarvoor met VBA aan de slag.

    Als je dit netjes aan wilt pakken, heb je een aantal tabellen nodig:

    tblKursus met kolommen KursusID, kursusnaam, duur (=aantal kursusdagen)

    tblSchema met kolommen SchemaID, KursusID (vreemde sleutel naar KursusID in tblKursus), startdatum,

    tblKursusdag met kolommen KursusdagID, SchemaID (vreemde sleutel naar SchemaID in tblSchema), Dag (dag van de week waarop de kursus voor het bijbehorende schema wordt gegeven)

    Tussen deze tabellen zou je de volgende relaties moeten leggen:

    - 1 op veel tussen tblKursus en tblSchema over kolommen KursusID

    - 1 op veel tussen tblSchema en tblKursusdag over kolommen SchemaID

    In VBA zou je code moeten gebruiken die automatisch een tblKursusrooster invult met kursusdagen op basis van startdatum, duur en kursusdagen.

    Kortom, niet zo eenvoudig, zeker niet als je niet bekend bent met VBA.

    De vraag aan jou is, ben je bekend met VBA, zo nee, wil je je daarin verdiepen.

    Andere opties zijn om handmatig je kursusroosters in te vullen of de datums die je nu aanmaakt te checken tegen de einddatum van en kursus en alle datums die na de einddatum vallen via een verwiijderquery uit je tabel te gooien (aannemende dat je de datums in een tabel opslaat).

    RV2