Come nascondere/far apparire il testo col pulsante Si/No

di il
6 risposte

Come nascondere/far apparire il testo col pulsante Si/No

Buone feste fatte e buon anno !

In un piccolo database ho una tabella con:
ID
Nome
Si/No
Nome1
Nome2

In una maschera registro i dati: ID, Nome, Nome1 e Nome2
In un'altra maschera visualizzo: ID, Nome, Si/No e se clicco su Si (inserisco il flag) devono comparire i valori di Nome1 e Nome2; se clicco su No (cioè non c'è il flag)
i campi devono scomparire.
In entrambe le maschere i campi Nome1 e Nome2 sono quelli della tabella e non caselle di testo.

Ho creato questo codice, ma va migliorato in modo che la comparsa o scomparsa dei campi riguardi il singolo record e non tutti i record.

Private Sub scegli_Click()
    If scegli = True Then
        nome1.Visible = True
        nome2.Visible = True
    Else
        nome1.Visible = False
        nome2.Visible = False 
    End If
End Sub
Come posso completare il tutto ?

6 Risposte

  • Re: Come nascondere/far apparire il testo col pulsante Si/No

    ProgrammD ha scritto:


    ...
    Ho creato questo codice, ma va migliorato in modo che la comparsa o scomparsa dei campi riguardi il singolo record e non tutti i record.
    ...
    Dal comportamento mi sembra di intuire che le maschere sono in visualizzazione Foglio Dati o maschera continua. Confermi? Se è così non si può fare quello che chiedi. Altrimenti devi spiegarti meglio.

    ProgrammD ha scritto:


    In entrambe le maschere i campi Nome1 e Nome2 sono quelli della tabella e non caselle di testo.
    Anche questo è strano (e mi ha portato a pensare alla visualizzazione Foglio Dati). Sei in una maschera dove ci sono caselle di testo, associate ma pur sempre caselle di testo (basta guardare la maschera in visualizzazione Struttura). Ho inquadrato male la situazione?
  • Re: Come nascondere/far apparire il testo col pulsante Si/No

    Vedi se ti aiuta questa discussione "simile"
    https://answers.microsoft.com/it-it/msoffice/forum/msoffice_access-mso_winother/attivare-e-rendere-visibile-un-campo-nella/61e0279e-8f63-4913-a606-11d6d39f30c7
    A quanto pare c'è un primo dilemma da chiarire: "maschera singola" o "maschera continua"/"foglio dati".
    Poi, anche a me era venuta l'idea della "formattazione condizionale", ma a quanto pare non contempla la possibilità di impostare Visibile (al massimo Abilita).
  • Re: Come nascondere/far apparire il testo col pulsante Si/No

    Philcattivocarattere ha scritto:


    ProgrammD ha scritto:


    ...
    Ho creato questo codice, ma va migliorato in modo che la comparsa o scomparsa dei campi riguardi il singolo record e non tutti i record.
    ...
    Dal comportamento mi sembra di intuire che le maschere sono in visualizzazione Foglio Dati o maschera continua. Confermi? Se è così non si può fare quello che chiedi. Altrimenti devi spiegarti meglio.

    ProgrammD ha scritto:


    In entrambe le maschere i campi Nome1 e Nome2 sono quelli della tabella e non caselle di testo.
    Anche questo è strano (e mi ha portato a pensare alla visualizzazione Foglio Dati). Sei in una maschera dove ci sono caselle di testo, associate ma pur sempre caselle di testo (basta guardare la maschera in visualizzazione Struttura). Ho inquadrato male la situazione?

    La maschera in cui inserisco i dati è di tipo singola, e non ci sono caselle di testo.
    La maschera in cui devo scegliere se fleggare o meno sul campo Si/No è di tipo singola e non ci sono caselle di testo.
  • Re: Come nascondere/far apparire il testo col pulsante Si/No

    Allora io ci vedrei l'evento "Su corrente" della maschera in cui scrivi questo
    Private Sub Form_Current()
    Me!Nome1.Visible = Me!X
    Me!Nome2.Visible = Me!X
    End Sub
    X è il campo Sì/No

    Ho notato però che non succede nulla se metti o togli la spunta da X. Allora dovresti scrivere la stessa cosa sull'evento "Dopo aggiornamento" del campo X.
  • Re: Come nascondere/far apparire il testo col pulsante Si/No

    OsvaldoLaviosa ha scritto:


    Ho notato però che non succede nulla se metti o togli la spunta da X. Allora dovresti scrivere la stessa cosa sull'evento "Dopo aggiornamento" del campo X.
    In corrispondenza degli Eventi del campo Si/No, su clic, c'è il codice che postato prima:
    
    Private Sub scegli_Click()
        If scegli = True Then
            nome1.Visible = True
            nome2.Visible = True
        Else
            nome1.Visible = False
            nome2.Visible = False 
        End If
    End Sub
    
    Comunque, ho notato che inserendo il tuo codice, record dopo record, il flag su Si e No, funziona.
  • Re: Come nascondere/far apparire il testo col pulsante Si/No

    Mi pare abbastanza migliorabile...
    
    Private Sub scegli_Click()
            Me!nome1.Visible = Me!scegli.Value
            Me!nome2.Visible = Me!scegli.Value
    End Sub
    Volendo, se devi attivarlo in più Eventi... puoi fare così:
    
    Private Sub scegli_Click()
    	call SetState(Me!schegli.Value)
    End Sub
    
    Private Sub Form_Current()
    	call SetState(Me!schegli.Value)
    End Sub
    
    Private SetState(Value As Bolean)
            Me!nome1.Visible = Value 
            Me!nome2.Visible = Value 
    End Sub
    Ovviamente in Maschere continue NON FUNZIONA...!
Devi accedere o registrarti per scrivere nel forum
6 risposte