Een formulier updaten via controle in subform

Status
Niet open voor verdere reacties.

Jamma54

Gebruiker
Lid geworden
31 okt 2018
Berichten
8
Hé beste helper,
Ik heb een formulier gecreëerd uit een hoofdtabel.
Hierin staat een yes/no vakje "afgewerkt"
Aan deze tabel/Formulier is een andere tabel gekoppeld, met een subformulier.
In de gekoppelde tabel heb ik voor de taken het vakje staan met yes/no.... "uitgevoerd"
Is het mogelijk om het vakje afgewerkt in het hoofdformulier automatisch te laten aanvinken wanneer in het subformulier alle vinkjes zijn gezet bij uitgevoerd?
een voorbeeldje hieronder, dus als de onderste gele vakjes allemaal afgevinkt zijn zou ik automatisch het bovenste vakje willen aangevinkt zien.

Bekijk bijlage voorbeeld form.pdf
 
Laatst bewerkt:
Je vraag is simpel te beantwoorden (ja, dat kan), de oplossing is wat lastiger omdat je dat moet gaan programmeren.
 
Je vraag is simpel te beantwoorden (ja, dat kan), de oplossing is wat lastiger omdat je dat moet gaan programmeren.

Net wat ik dacht, en daar ben ik niet ver genoeg in gevorderd.
Ik probeerde alle andere manieren reeds....
 
Wonderlijk hoe je de grote blauwe knop <reageer op bericht> hebt gemist en (per ongeluk, neem ik maar aan) de Quote knop hebt aangeklikt :). Volgende keer iets beter opletten ;) .
Ben ik a) wel benieuwd welke andere manieren er überhaupt zijn (ik ken ze niet namelijk) en b) waarom je dat veld sowieso denkt nodig te hebben, want het is een simpel afgeleid gegeven wat je wilt zien (alle veldjes aangevinkt checken is simpel te doen) dus wat voegt dat extra veldje toe, behalve verwarring?
 
Het is namelijk zo, mensen die toezicht houden vullen de gegevens bij de taken in, de jobs afmelden gebeurt enkel wanneer alles is uitgevoerd en een job heeft soms wel 200 taken.
Daarom wou ik selecteren op het gegeven afgewerkt in tabel 1.
Op dit moment moeten ze in het formulier ook het vinkje zetten bij afgewerkt en dat wordt wel eens vergeten.
Dat is de reden dat ik aan het zoeken was naar een gegeven dat wordt aangepast in tabel 1 wanneer alle taken zijn uitgevoerd.

sorry voor de verkeerde knop juist...
 
Op dit moment moeten ze in het formulier ook het vinkje zetten bij afgewerkt en dat wordt wel eens vergeten.
Kijk, en dát is nou precies waar een goed databaseontwerp je had kunnen helpen! Dat hele vinkje moet namelijk gewoon weg, omdat het niks toevoegt behalve ellende (mensen die het vergeten? In een goede db zou de vraag niet eens gesteld worden!)
Wat je je bij het ontwerp van de database had moeten afvragen, is hoe je het proces goed kunt bewaken. En dat proces is: kijken naar taken die afgehandeld zijn. En hoe weet je of een taak is afgehandeld? Als alle taken zijn aangevinkt. En niet als iemand op een andere plek een vinkje heeft gezet! Nou is de check heel simpel, want je hebt een aantal jobs (= records) en elke job heeft een vinkje. En al die vinkjes hebben de waarde TRUE of FALSE (-1 of 0). En die velden kun je bij elkaar optellen, en het aantal records (=jobs) kun je ook opvragen. Ergo: als de SOM van [Uitgevoerd] = <Aantal Records>, dan staan alle vinkjes op TRUE. Is de som kleiner, dan staan er nog minstens één niet afgevinkt, en open.

En op die manier bouw je dus dynamische databases, waarin gebruikers geen overbodige vinkjes hoeven aan te vinken die ook nog eens foutief kunnen worden aangeklikt.
 
Dat is juist, ik ga het eens bekijken en eventueel opzoeken hoe ik dit voor elkaar krijg.
Ik ben namelijk een leek in acces maar vind het een ferm programma.
Het zal wel zoekwerk worden maar veronderstel dat zoiets misschien kan met expressies?

Merci toch voor je uitleg en de informatie. ;)
 
Expressies heb je inderdaad nodig voor zo’n klusje. De waarde van de selectievakjes kun je in de voettekst in een tekstvak optellen met de formule =ABS(SUM([Uitgevoerd])). In een ander tekstveld gebruik je de functie DCOUNT om het aantal records te tellen (op een taakID als criterium). Die twee getallen trek je van elkaar af en alsmede uitkomst 0 is, heb je alles voltooid. Op je hoofdformulier kun je de berekening terug laten komen en bijvoorbeeld met een IIF formule op een selectieveld zetten om het vinkje te switchen. Om maar een voorbeeldje te geven van hoe je het kan aanpakken zonder te programmeren.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan