10/03/2023 - lucavalentino ha scritto:
Vorrei attivare dei controlli con determinati tag, ma ricevo l'errore 438
I controlli sono di vario tipo : etichetta, casella di testo, casella di controllo, pulsanti.
So che alcuni controlli non supportano tale funzione quindi??
Function campi_attivare()
Dim ctl As Access.Control
For Each ctl In Me.Controls
If Not IsNull(Me.data) Then
If ctl.Tag = "attiva" Then
ctl.Enabled = True
End If
End If
Next ctl
End Function
Innanzitutto se hai un controllo con la Label Associata, è sufficiente gestire il controllo… quindi se hai TextBox+Label se rendi Enabled=False la TextBox automaticamente lo diventa la Label, questo accade per tutti i controlli equivalenti di tipo Bound con possibilità di aggregazione della Label.
Detto questo, io farei cosi:
Function campi_attivare(Value as String)
Dim ctl As Access.Control
If IsNull(Me.data) Then Exit Function
For Each ctl In Me.Controls
Select case ctl.Type
Case is Access.AcControlType.acComboBox, Access.AcControlType.acTextBox, ecc...
ctl.Enabled = ctl.Tag=Value
End Select
Next ctl
End Function
Poi la richiami così:
Call campi_attivare("Attiva")