Abilitare/Disabilitare alternativamente due caselle di controllo

Anonimo
2018-10-24T23:02:11+00:00

Buonasera,

In un db ho una casella combinata “PercezioneVoce” con i seguenti valori:

-          Senza protesi acustica

-          Con protesi acustica binaurale

-          Con protesi acustica monoaurale

e due caselle di controllo:

-          A SinistraMetri

-          A DestraMetri

Con questo codice nell’evento “Dopo aggiornamento” della casella combinata, ottengo queste funzionalità:


Private Sub PercezioneVoce_AfterUpdate()

If Me!PercezioneVoce.Text = "Senza Protesi Acustica" Then  '

    Me!SinistraMetri.Enabled = False

    Me!DestraMetri.Enabled = False 

Else

   Me!SinistraMetri.Enabled = True

   Me!DestraMetri.Enabled = True

End If

End Sub


  1. Senza protesi acustica entrambe le caselle di controllo sono disabilitate
  2. Con protesi acustica binaurale entrambe le caselle sono abilitate
  3. Con protesi acustica monoaurale entrambe le caselle sono abilitate.

E’ su questo ultimo particolare che vorrei intervenire in modo da rendere abilitata,  una sola casella  ed in particolare:

-          Non appena viene digitato un valore nella casella controllo “A SinistraMetri”, deve automaticamente disabilitarsi la casella controllo “A DestraMetri” e viceversa.

Chiedo il vostro aiuto per modificare il codice in relazione al punto 3.

Ringrazio e saluto .

Abitante

Microsoft 365 e Office | Access | Per la casa | Windows

Domanda bloccata. Questa domanda è stata eseguita dalla community del supporto tecnico Microsoft. È possibile votare se è utile, ma non è possibile aggiungere commenti o risposte o seguire la domanda.

0 commenti Nessun commento
Risposta accettata dall'autore della domanda
Anonimo
2018-10-25T05:09:06+00:00

Devi inserire i seguenti due eventi Click relativi alle caselle di controllo:

Private Sub SinistraMetri_Click()

    If Me.PercezioneVoce = "Con protesi acustica monoaurale" Then

        If Me.ActiveControl = True Then

            Me.DestraMetri.Enabled = False

        Else

            Me.DestraMetri.Enabled = True

        End If

    End If

End Sub

Private Sub DestraMetri_Click()

    If Me.PercezioneVoce = "Con protesi acustica monoaurale" Then

        If Me.ActiveControl.Value = True Then

            Me.SinistraMetri.Enabled = False

        Else

            Me.SinistraMetri.Enabled = True

        End If

    End If

End Sub

e devi modificare l'evento relativo alla casella combinata:

Private Sub PercezioneVoce_AfterUpdate()

    If Me!PercezioneVoce.Text = "Senza Protesi Acustica" Then  '

        Me!SinistraMetri.Enabled = False

        Me!SinistraMetri = False

        Me!DestraMetri.Enabled = False

        Me!DestraMetri = False

    Else

       Me!SinistraMetri.Enabled = True

       Me!DestraMetri.Enabled = True

    End If

End Sub

quest'ultima modifica è necessaria in quanto se precedentemente avessi spuntato una o entrambe le caselle di controllo e poi cambi la selezione nella casella combinata selezionando la voce "Senza protesi acustica" la spunta rimarrebbe e non potresti moficarla in quanto a quel punto le caselle di controllo sono disabilitate e qualora salvassi il record avresti un dato inserito in modo non corretto.

La risposta è stata utile?

1 persona ha trovato utile questa risposta.
0 commenti Nessun commento

6 risposte aggiuntive

Ordina per: Più utili
  1. Anonimo
    2018-10-26T12:50:40+00:00

    Ciao,

    prova con il seguente codice che utilizza l'evento su modifica :

    Private Sub DestraMetri_Change()

        If Me!PercezioneVoce = "Con protesi acustica monoaurale" Then  '

           Me!SinistraMetri.Enabled = False

        End If

    End Sub

    Private Sub PercezioneVoce_AfterUpdate()

        Me!DestraMetri = 0

        Me!SinistraMetri = 0

        If Me!PercezioneVoce = "Senza Protesi Acustica" Then  '

           Me!SinistraMetri.Enabled = False

           Me!DestraMetri.Enabled = False

        Else

           Me!SinistraMetri.Enabled = True

           Me!DestraMetri.Enabled = True

        End If

    End Sub

    Private Sub SinistraMetri_Change()

        If Me!PercezioneVoce = "Con protesi acustica monoaurale" Then  '

           Me!DestraMetri.Enabled = False

        End If

    End Sub

    Ciao Mimmo

    La risposta è stata utile?

    0 commenti Nessun commento
  2. Anonimo
    2018-10-25T23:20:23+00:00

    Scusami,

    ho erroneamente indicato "Casella controllo" destra e sinistra.

    In realtà sono caselle di testo nelle quali immetto un valore numerico riferito alla distanza di percezione della voce.

    https://1drv.ms/u/s!Am-XuWJRB_THhxfwRBA9c7OIFmg5

    Grazie.

    Abitante

    La risposta è stata utile?

    0 commenti Nessun commento
  3. Anonimo
    2018-10-25T14:30:59+00:00

    Quitrovi il file con cui verificare il funzionamento.

    La risposta è stata utile?

    0 commenti Nessun commento
  4. Anonimo
    2018-10-25T09:27:22+00:00

    Ciao Carlo,

    ho apportato le modifiche che mi hai indicato, ma non ho risolto.

    In particolare, quando inserisco nella casella combinata il testo "Con protesi acustica monoaurale" e digito un valore nella casella di controllo "SinistraMetri", la casella di controllo "DestraMetri" rimane attiva e viceversa.

    Grazie.

    Abitante

    La risposta è stata utile?

    0 commenti Nessun commento