Soort Wisselknop

Status
Niet open voor verdere reacties.

Henk Benter

Gebruiker
Lid geworden
13 mei 2010
Berichten
154
Op mijn werk heb ik een toepassing lopen. Middels een doorlopend formulier leggen wij vast voor welke disciplines wij werkzaamheden moeten gaan verrichten (Elektra / Warmte / Water). Per discipline geven wij middels een ja/nee veld aan of het WVB eigen of WVB Derden is. Betreft het WVB eigen, dan verschijnt er een keuzeknop WVB eigen. Wordt WVB gedaan door derden, dan verschijnt de knop WVB Derden. Het probleem waar ik tegenaan loop is dat wanneer ik in het veld WVB eigen "ja" intoets in het doorlopende formulier de knop voor alle records de knop WVB Eigen verschijnt terwijl per record dit variabel moet zijn. Hoop dat ik hiermee het probleem helder heb neergezet. Heb even een voorbeeld bijgevoegd.
 

Bijlagen

  • Voorbeeld.zip
    31,2 KB · Weergaven: 17
Voor het antwoord op deze vraag hoef ik de zip gelukkig niet uit te pakken, laat staan de db te openen. De 'oplossing' is namelijk even simpel als geniaal als onvermijdelijk :). Om de oorzaak van het probleem te zien, hoef je het formulier alleen maar in Ontwerpweergave te openen. Als je dat gedaan hebt, mag je deze vraag beantwoorden: Hoeveel knoppen zie je? Laat ik, zonder de db te openen, maar gelijk het antwoord geven: 1. Open het formulier nu in de Formulierweergave, en beantwoord dan dezelfde vraag. Tien tegen één dat het antwoord dan is: 10, 15, 20.... Elke waarde is goed, en bevat het aantal records dat je kan zien in het formulier.

De volgende vraag is wat essentiëler: Zie je 10, 15, 20 aparte, zelfstandige knoppen, of zie je 10, 15, 20 exemplaren van dezelfde knop? Als je dit antwoord goed hebt, dan weet je ook waarom je alle exemplaren van de knop ziet veranderen afhankelijk van je ingevoerde waarde. En dan weet je ook dat hier totaal niets aan te veranderen is, want je hebt immers maar (spoiler alert :) ) maar één knop. En die verandert.
Dit 'probleem' speelt uiteraard óók bij enkelvoudige formulieren, maar daar zie je het probleem niet, omdat je dan maar één exemplaar van de knop op het scherm hebt staan.

Wat kun je er aan doen? Niets. Ja, de knop niet in een doorlopend formulier zetten. Dat hoeft overigens ook niet, want je kunt de knop ook in de koptekst zetten (één exemplaar), of een veld gebruiken om de actie uit te voeren. Overigens gebruik ik voor dit soort zaken altijd maar één knop, waarvan ik de Caption verander, en de actie dus laat bepalen door de tekst op de knop. Scheelt een hoop knoppen.
 
Ik was hier al een beetje bang voor. Een knop is maar een item welke je in het formulier zet, zonder dat deze is gerelateerd aan de record. Heb dit nooit eerder bij de kop gehad. Sinds kort verschuiven er werkzaamheden in de keten. Dit houdt in dat van verschillende opdrachtgevers wij de ene keer zelf de Werkvoorbereiding doen en op een ander moment de opdrachtgever ons de complete informatie verstrekt. Met behulp van deze knop wil ik een keuze kunnen maken. Dit betekent dus voor mij dat ik 1 knop moet gaan gebruiken. Daarnaast moet ik dus via code, afhankelijk van de waarde van het veld WVB Eigen (Ja/Nee), de caption laten wijzigen. Op basis van de waarde van de caption (bij klikken) wordt daarna bepaald welk formulier er moet worden geopend (If…then...else of iets dergelijks). Er zal vast al veel over zijn geschreven als ik jouw tekst zo lees en een oplossing, VBA code, zal vast ergens staan. Ik zal eens op onderzoek uitgaan. Eventueel kom ik hierop later terug. Mocht jij aanvullende informatie hebben dan dank alvast. Fijn weekend.
 
Nogmaals: je kunt het probleem behoorlijk ondervangen door de knop op het hoofdformulier te zetten, dan heb je altijd maar één exemplaar. Het wordt een klein beetje lastiger om vanuit het subformulier dan de knop(pen) aan te passen, omdat je dan de Parent moet aanspreken, maar dat is best nog wel te doen, zeker als je die aan een variabele toewijst. Ik zou op die knop dan het idee uitleven vanuit het hoofdformulier, en daarvoor kun je het beste een (eventueel onzichtbaar) tekstvak maken dat je vult met het ID van het subformulier. Eigenlijk de code die je nu dus ook meegeeft bij het openen van het formulier. Dan weet je ook altijd dat je het actieve record uit het subformulier opent.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan