Per preservare i dati in una maschera ho scritto questa funzione che usa il classico metodo del ciclare tra i
controlli per cambiarne le proprietà, nello specifico vengono bloccati (Locked) i campi o disabilitati
(Enabled) alcuni pulsanti quando viene trovata nel loro Tag la dicitura rispettivamente "lock" o "disable". Tutto funziona correttamente nella maschera principale, dove richiamo questa funzione con un pulsante.
Il problema è che ho la necessità di disabilitare alcuni pulsanti in una sottomaschera. Per i campi non ci sono problemi in quanto ho il Tag "lock" nel controllo che la contiene, ma questo funzione non mi intercetta con il Tag "disable" i pulsanti contenuti
nella sottomaschera e non riesco a trovare il modo di individuarli dalla funzione.
Come posso fare?
Public Function DisabilitaMask(mask, prompt As Boolean)
Dim risposta, valore As Boolean
Dim ctl As Object
If prompt = True Then
risposta = MsgBox("Vuoi uscire dalla modalità modifica dati?", vbExclamation + vbYesNo, "Modifica")
Select Case risposta
Case vbNo
Exit Function
Case vbYes
End Select
End If
For Each ctl In Forms(mask).Controls
If ctl.Tag = "lock" Then ctl.Locked = True
Next ctl
For Each ctl In Forms(mask).Controls
If ctl.Tag = "disable" Then ctl.Enabled = True
Next ctl
End Function
Massimo.
PS: non posso diabilitare il controllo sottomaschera ma solo bloccarlo, per permettere le ricerche ed il copia/incolla dei dati.