Archief - Acces: hoe zouden jullie dit oplossen ?

Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.

wecker

Legacy Member
Goeiemorgend,

ik ben voor m'n pa bezig met een database te maken die hij op zijn werk dan kan gebruiken, maar nu zit ik wat in de knoop met volgend probleem:

Om de X aantal maand zou er automatisch een rapport moeten verschijnen met de melding: machine A, B, .... moet onderhouden worden.

Bv: Machine A
Om de 3 maand
Machine B
Om de 6 maand

Ik heb al enkele dingen geprobeerd maar ik kom er maar niet uit hoe ik het zou moeten maken. Ik heb geprobeerd om met vaste waarden te werken voor de datums, ( =date() moet dan gelijk zijn aan een vooraf ingegeve waarde)maar telkens loopt er wel iets mis. ( ik ken dan ook alleen maar de basis van acces/vba ).

Daarna zou er nog eens een controlevakje moeten komen die aangeeft of de machine al dan niet onderhouden is, is dit niet het geval dan zou die machine mee overgenomen worden naar het volgende rapport. Als de machine onderhouden is zou het selectievakje dan even aangevinkt moeten worden en nadien automatisch terug uit omdat de machine om de X aantal maanden terug moet onderhoudne worden. Voor dit deel heb ik geen flauw idee van hoe het te moeten maken.

Zouden jullie mss kunnen zeggen wat de makkelijkste/meest efficiente oplossing is voor dit probleem?

Alvast bedankt!



(ik hoop dat de uitleg duidelijk is, anders vraag je maar meer uitleg)

Enygm

Legacy Member
Ik zou zeggen:
Hou in de tabel bij de machines een numeriek veld bij om de hoeveel maanden het moet onderhouden worden (vb: 1,3,5,6) en de datum waarop het de laatste keer onderhouden geweest is. (als we deze velden de volgende namen geven: maanden en LaatsteOnderhoud, dan kun je in een query de volgende berekening maken:
Te Onderhouden op: DateAdd("m";[Maanden];[laatsteOnderhoud])

Als je dan het jaartal en de maand van dit resultaat neemt en dit vergelijkt met het jaartal en de maand van de huidige datum (uw functie Date() ) en alles is gelijk, dan weet je dat het onderhouden moet worden.

Hoe kun je dan diegene opnemen die ooit vergeten geweest zijn? => je maakt een query die de machines toont die moeten onderhouden worden omdat de periode bereikt is. (zoals hierboven vermeld) en je maakt een tweede query die alle records ophaalt waar het vinkje uit staat. (als je deze 2 queries de volgende namen zou geven: qryOnderhoudOmwilleVanPeriode en qryOnderhoudOmwilleVanNietGechecked) dan kun je een 3 query maken met als SQL-statement: select * from qryOnderhoudOmwilleVanperiode UNION select * from qryOnderhouOmwilleVanNietGechecked. => Uw rapport zal dan gebaseerd zijn op het resultaat van deze query.

Verder denk ik dat je ook een macro of code zal nodighebben die nadat het rapport is afgedrukt de vinkjes terug uit zet. (De vinkjes die uitgezet zullen moeten worden zijn de vinkjes van die UNION-query die hierboven staat)

Hopelijk helpt dit je wat op weg

wecker

Legacy Member
bedankt voor de uitleg!
NOg een klein vraagje: Hoe maak je in die querry de berekening " Te Onderhouden op: DateAdd("m";[Maanden];[laatsteOnderhoud])" ? Gewoon in de SQL code plakken ?

Zhergan

Legacy Member
Query zou iets in de trend moeten zijn van:
Select * from table
where DateAdd("m";[maanden];laatsteonderhoud])<Now()
Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.
Terug
Bovenaan