Check of een jaar langer dan 15 jaar geleden was.

Status
Niet open voor verdere reacties.

MDVerbeek

Gebruiker
Lid geworden
17 jan 2013
Berichten
5
Hoi,

Voor school moet ik een applicatie maken (met een fictieve casus) waarin ik moet checken of een auto ouder dan 15 jaar is. De autogegevens staan in een subform op het form van de klantgegevens. Nu zat ik te denken aan een vergelijking met de functie DatePart(), alleen ik weet niet waar ik de code moet neerzetten. Misschien bij 'Na Bijwerken'? Of moet ik dit als constraint vastleggen in de database?

Groeten,
Marjolein
 
Kun je niet beter datediff gebruiken als je het in VBA gaat implementeren? Qua uitwerking, dat is nogal afhankelijk wat er met het antwoord moet gebeuren. Dat is niet helemaal helder (beetje conflict tussen SQL / access en VBA termen / oplossingen)
 
Hoi Wampier

DateDiff klinkt inderdaad als een beter plan :)

Ik heb een screenshot van het formulier:
l93B2.png

Het is dus de bedoeling dat bouwjaar niet langer dan 15 jaar geleden mag zijn.
Ik weet niet waar ik die vba code neer zou moeten zetten, omdat hij zichzelf vaak opslaat als je naar de volgende record gaat.
Ik begrijp dat de vraag een beetje vaag is.. Als ik het nog kan verduidelijken let me know!
 
Je kunt de code laten lopen nadat je subform ingelezen is en een aparte status zetten. Je kunt ook auto's filteren op die manier en zelfs niet tonen. Als alternatief kun je voordat informatie opgeslagen wordt dit onderscheppen.

Maar in dit voorbeeld wat verwacht je dat er gebeurt? er staat een auto in ouder dan 15 jaar. mag er nu niet opgeslagen worden? moet de auto gedelete worden uit de database? een waarschuwing op het scherm?

Als het bouwjaar in de subform geen exacte datum is, maar een getal kun je beter een statische functie gebruiken. De definitie is dan namelijk anders. Je kunt dan veel makkelijker Jaar(nu)-bouwjaar doen dan datediff ombouwen. Datediff is veel exacter, maar is mogelijk onnodig complex in deze situatie
 
De auto mag dan niet opgeslagen worden. Er moet een MsgBox tevoorschijn komen die zegt "De auto is ouder dan 15 jaar en mag niet toegevoegd worden." Ik heb er nog niet over nagedacht wat er dan met de informatie die verder al is ingevoerd moet gebeuren, maar het lijkt me dat die verwijderd kan worden. Een auto heeft niet plots een ander bouwjaar dus je hebt ook niets aan de rest van de gegevens.

Ik zou dit graag willen onderscheppen voordat informatie opgeslagen wordt, maar omdat de informatie opgeslagen wordt op meerdere manieren en niet enkel als er op de opslaanknop geklikt wordt weet ik niet zo goed hoe ik dit moet inbouwen.
 
In principe zou elke manier van opslaan moeten triggeren. Maar zoals ik aangaf, je kunt ook gewoon "illegale" auto's niet tonen in de lijst. Maar je komt nu meer in de specieke "access" hoek en niet VBA en daar heb ik zelf minder verstand van.
 
Ze mogen echt niet opgeslagen worden, dat is een specifieke eis van school uit. :)
Elke manier van opslaan zou moeten triggeren, dat begrijp ik, maar waar zou ik die code dan moeten zetten die getriggerd moet worden?
Iemand een idee?
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan