Io ti rispondo con una macro, poi puoi sempre tradurla in Visual Basic.
1) Apri una nuova macro in visualizzazione struttura e apri la colonna Condizioni
2) Nel primo rigo, colonna Condizioni scrivi:
[Maschere]![NomeMaschera]![NomeCasellaControllo]=Vero
colonna Azioni: ImpostaValore, e sotto
Elemento: [Maschere]![NomeMaschera]![NomePulsante].[Enabled]
Espressione: Vero
3) Nel secondo rigo, colonna Condizioni scrivi tre puntini (...) che significa idem come sopra
colonna Azioni: ArrestaMacro
4) Nel terzo rigo, colonna Condizioni scrivi:
[Maschere]![NomeMaschera]![NomeCasellaControllo]=Falso
colonna Azioni: ImpostaValore, e sotto
Elemento: [Maschere]![NomeMaschera]![NomePulsante].[Enabled]
Espressione: Falso
5) Salva la macro con nome "AbilitaPulsante"
6) Vai in visualizzazione struttura maschera e associa all'evento "Su corrente" della maschera la macro AbilitaPulsante. Devi anche associare all'evento "Dopo aggiornamento" della "casella di controllo" la stessa macro, in modo che il pulsante ti si abilita/disabilita anche al cambio di valore quando sei posizionato su un singolo record.
L'ho testato e funziona.
P.S.: ti consiglio di cancellare il post "Pulsante du"