Ora è chiaro, ed ovviamente scontato che in maschere continue NON sia da fare in quel modo.
Quindi se il tuo Controllo MASTER CONDIZIONANTE è [GradingUnico] dovrai usare la Formattazione Condizionale che tuttavia NON è applicabile sulle CheckBox, quindi da trovare una soluzione differente…
In realtà la risposta giusta sarebbe “NON SI PUO' FARE”, tuttavia non è vero, solo che la soluzione è decisamente ben più articolata e tecnica, pertanto richiede qualche conoscenza avanzata come logica non serve essere mostri.
Provo a spiegartelo ma consapevole potrebbe non essere alla portata.
Serve usare delle TextBox con Tipo Carattere “Wingdings 2” che è un carattere simil grafico, che se ben usato replica nel tuo caso lil FLAG se visualizzi la “P”, con Origine Controllo una funzione calcolata che gestisce il valore del Controllo Associato che renderai NON VISIBILE.
Quindi avrai una CheckBox [GradingUnico0] associata al campo [GradingUnico0] non visibile, ed una TextBox che chiamiamo [tGradingUnico0] con Font “Wingdings 2” ed origine Controllo così:
=IIF([GradingUnico0];"P";"")
Questo farà si che se la ChekBox è Flaggata la TextBox visualizzi il Flag e viceversa.
Nella TextBox [tGradingUnico0] applicherai una Formattazione Condizionale vincolata al Controllo MASTER [GradingUnico] ed imposterai lo stato di ATTIVO condizionato dal valore del controllo detto prima.
Ora sei a metà… perchè così non solo non puoi Cliccare le CheckBox [GradingUnico0÷5] che sono INVISIBILI, ma l'effetto delle TextBox va preservato… quindi devi posizionare sopra le 6 TextBox che Simulano le CheckBox un Pulsante(CommandButton) renderlo trasparente in modo che non si veda posizionarlo in PRIORITA' di visualizzazione o Primo Piano rispetto alle TextBox.
Ora devi gestire il Click sul Button in modo da EMULARE le CheckBox… ma devi usare l'Evento MOUSEUP quindi sapendo la posizione delle TextBox se il MouseUp è sopra alla TextBox [tGradingUnico0] vai a fare il TOGGLE sul controllo nascosto [GradingUnico0] una cosa simile
Sapendo le posizioni delle TextBox… (attenzione che devono essere RELATIVE al CommandButton, quindi per fare il calcolo devi prendere il Left della TextBox e sottrarre il Left del CommandButton, quindi…)
Private Sub cmdButton_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)
If Button = acLeftButton Then
Select Case x
Case >10 AND <300 ' corriponde alla posizione relativa al Button della [tGradingUnico0]
Me!GradingUnico0=Not GradingUnico0
Case >300 AND <600 ' corriponde alla posizione relativa al Button della [tGradingUnico1]
Me!GradingUnico1=Not GradingUnico1
Case >600 AND <900 ' corriponde alla posizione relativa al Button della [tGradingUnico2]
Me!GradingUnico2=Not GradingUnico2
etc...
End Select
end if
End Sub
Se vuoi inserire il riconoscimento da codice della posizione:
Case > (Me!GradingUnico0.Left-Me!cmdButton.Left) And <(Me!GradingUnico0.Left-Me!cmdButton.Left)+Me!GradingUnico0.Width
etc...
Questo farà variare le CheckBox non Visibili e conseguentemente le TextBox visibili che hanno l'origine Controllo come indicato sopra.
Questa tecnica, non molto conosciuta, è purtroppo una delle poche cose funzionali fattibili… ;-) io la uso da molti anni con ottimi risultati.
Ora vedi tu.