velden blokkeren na invoer

Status
Niet open voor verdere reacties.

arnoderuig

Gebruiker
Lid geworden
8 sep 2000
Berichten
577
Een bepaald record wordt in mijn database gelijdelijk opgebouwd. Vandaag worden een paar velden ingevuld; over een paar weken worden weer andere velden gemuteerd. Het opvragen van de records en al of niet aanvullen van de velden geschiedt middels een formulier. Ik zou nu graag willen dat eenmaal ingevulde velden niet meer kunnen worden gemuteerd. Ze moeten dus zijn geblokkeerd.Maar alleen dat deel van de velden moet worden geblokkeerd dat al eerder is opgeslagen. De velden die op dit moment worden ingevoerd en waarvan het record nog niet is opgeslagen mogen dus muteerbaar blijven totdat het wordt opgeslagen. Wordt dat record een volgende keer opgevraagd dan moet alle velden die tot en met nu zijn gemuteerd ook zijn geblokkeerd. Naast blokkade is het ook handig als het betreffende veld transparant wordt gekleurd.

Hoe zou ik dat kunnen aanpakken?
 
Eerst een misverstandje uit de weg ruimen: zodra je een record maakt, en naar een ander record gaat, of het formulier sluit, is het opgeslagen. Open je het formulier om het record te muteren, dan is hij dus minstens één keer opgeslagen. Of je het record muteert of niet, maakt daarbij niet uit. Je kunt op basis van niet-gemuteerde velden nog wel wat doen, maar dat is nog lastig om te checken. Wat je zou kunnen doen:
Maak een gebeurtenis <Bij Aanwijzen> van het formulier, waarin je met een loopje alle tekstcontrols doorloopt, en controleert of er wat in staat of niet. Als het veld gevuld is ((Len([Tekstveld])>0 bijvoorbeeld) dan krijgt het tekstveld de eigenschappen Enabled=False en Locked=True, en een achtergrondkleur.
Ga je naar een ander record, dan wordt de controle opnieuw uitgevoerd, en zie je dus andere velden geblokkeerd. Ga je terug naar het record dat net is gemuteerd, dan zou daar vervolgens ook een andere selectie velden moeten zijn die je nog kunt bewerken.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan