Nascondere sottomaschera con condizione

di il
16 risposte

Nascondere sottomaschera con condizione

Buonasera a tutti, ho una maschera in cui ho inserito 3 sottomaschere e un pulsante di comando,qualdo il pulsante e attivo una delle 3 sottomaschere vorrei fosse non visibile. Ho provato con questo ma chiaramente non funziona. Grazie

Private Sub Form_Current()
If Forms!maschera1!Comando12 = Enabled Then
Sottomaschera_tab3.Visible = True
Else
Sottomaschera_tab3.Visible = False
End If
End Sub

16 Risposte

  • Re: Nascondere sottomaschera con condizione

    Che cosa vuol dire “quando il pulsante e attivo”?

  • Re: Nascondere sottomaschera con condizione

    Non ritengo congrua questa procedura. Normalmente si impone una condizione che imposta la proprietà enabled di un pulsante al valore true o false. A cosa dovrebbe servire quello che intendi fare?

  • Re: Nascondere sottomaschera con condizione

    Sottomaschera_tab3.Visible = (Forms!maschera1!Comando12 = Enabled)

    Ma quando e dove il pulsante va abilitato o disabilitato?

    In alternativa, quando abiliti il pulsante imposti la sottomaschera a visibile e viceversa.

  • Re: Nascondere sottomaschera con condizione

    Grazie per le risposte a tutti, per chiarire la prima sottomaschera non viene toccata serve per leggere alcuni dati ed è sempre visibile, la seconda e la terza fondamentalmente hanno gli stessi dati ma vengono aggiornate in modo diverso. La seconda sottomaschera all'apertura della maschera viene aggiornata automaticamente, la terza viene aggiornata con altre query al clik del pulsante.Praticamente quando apro la maschera la seconda sottomaschera è visibile mentre la terza no perche il pulsante di comando è abilitato (pulsante di comando attivo) quando clicco sul pulsante questo diventa inabilitato la seconda sottomaschera diventa non visibile la terza sottomaschera diventa visibile. E chiaro che quando ricomincio a gestire il nuovo anno devo riportare tutto allo stato di partenza.

  • Re: Nascondere sottomaschera con condizione

    Ok, cosa non funziona?

  • Re: Nascondere sottomaschera con condizione

    Non riesco a rendere invisibili le maschere attraverso l'enabled pulsante, avevo gia provato come hai fatto nell'esempio ma non funziona.

  • Re: Nascondere sottomaschera con condizione

    Ri_buongiorno a tutti, ritornando al problema di cui sopra ho fatto alcune prove con questo codice:

    Private Sub Form_Load()
    If Me.Comando12.Enabled = False Then
        Me.Sottomaschera_tab_Epreventivospese1.Form.Visible = True
    Else
        Me.Sottomaschera_tab_Epreventivospese1.Form.Visible = False
    End If
    If Me.Comando12.Enabled = False Then
        Me.Sottomaschera_E_preventivospese.Form.Visible = False
    Else
        Me.Sottomaschera_E_preventivospese.Form.Visible = True
    End If

    All'apertura ho spostato il focus sulla prima maschera che non viene toccata,poi su caricamento ho messo il codice sopra descritto e quando apro la maschera la sottomaschera “tab_Epreventivospese1” non è visibile mentre il “comando12” è abilitato,  e fin qui tutto bene.Quando clicco sul “comando12” il pulsante di “comando12” diventa inabilitato,ed è ok" la sottomaschera “tab_Epreventivospese1”resta sempre invisibile,mentre dovrebbe comparire, invece la sottomaschera “tab_Epreventivospese”,che dovrebbe sparire resta visibile.Infine se chiudo e apro la maschera ritorna come all'inizio:" tab_Epreventivospese1" invisibile - “Comando12” abilitato - "tab_Epreventivospese" visibile invece dovrebbe rimanere cosi : “tab_Epreventivospese1” visibile - "Comando12" inabilitato - "tab_Epreventivospese" invisibile. Non sò cosa fare.

  • Re: Nascondere sottomaschera con condizione

    Forse se posti un file di esempio si riesce a capire qualche cosa e poi aiutarti.

  • Re: Nascondere sottomaschera con condizione

    25/11/2023 - nerofumo ha scritto:


    Ri_buongiorno a tutti, ritornando al problema di cui sopra ho fatto alcune prove con questo codice:

    Private Sub Form_Load()
    If Me.Comando12.Enabled = False Then
        Me.Sottomaschera_tab_Epreventivospese1.Form.Visible = True
    Else
        Me.Sottomaschera_tab_Epreventivospese1.Form.Visible = False
    End If
    If Me.Comando12.Enabled = False Then
        Me.Sottomaschera_E_preventivospese.Form.Visible = False
    Else
        Me.Sottomaschera_E_preventivospese.Form.Visible = True
    End If

    Intanto questo codice può essere notevolmente semplificato :

    Me.Sottomaschera_tab_Epreventivospese1.Form.Visible = Not Me.Comando12.Enabled
    Me.Sottomaschera_E_preventivospese.Form.Visible = Me.Comando12.Enabled

    Ti consiglio di partire in questo modo (ho usato dei nomi di controlli generici, adattali al tuo uso) :

    • a livello di disegno rendi visibile SM1, SM2 e rendi NON visibile SM3
    • sull'evento Form_Load ribadisci i criteri di visibilità/non visibilità delle SM
    • nell'evento Cmd_Click (quello riferito al Command che deve agire sulla visibilità) inverti la visibilità su SM2 e SM3. Per ora concentrati solo sull'ottenere l'effetto visibilità che desideri senza preoccuparti di rendere non visibile (o disabilitato) il Command.
     Private Cmd_Click()
     Me.SM2.Visible = Not Me.SM2.Visible 
     Me.SM3.Visible = Not Me.SM2.Visible 
     End Sub

    Ogni volta che clicchi su Cmd inverti la visibilità tra SM2 e SM3 …

    Se, come credo, questo giochino funziona poi ti concentri su come disabilitare Cmd1 (spostando anche il focus su un allo controllo).

  • Re: Nascondere sottomaschera con condizione

    Intanto ecco il link per l'esempio. 

    https://drive.google.com/file/d/1tVc4dgA_j6X_uNM27cBAJQeJxy9kTTGt/view?usp=sharing

    grazie max.riservo provo e poi ti dico

  • Re: Nascondere sottomaschera con condizione

    Qui puoi vedere un'esempio, comunque spero che la struttura del database non sia quella mostrata in quanto ci sono problemi nei campi delle tabelle, normalizzazione e relazioni.

  • Re: Nascondere sottomaschera con condizione

    Stifone ti ringrazio, ora penso di aver capito provo ad integrare ciò che hai fatto.

  • Re: Nascondere sottomaschera con condizione

    Mi spiace ma non sono riuscito a risolvere il mio problema, ho risolto aprendo e chiudendo manualmente non in automatico con dei pulsanti le maschere in questione.

    Grazie a tutti

  • Re: Nascondere sottomaschera con condizione

    Andando con ordine:

    All'apertura o di default la situazione è 

    Checkbox selezionata

    Masxhera A visibile e maschera B invisibile

    Procedimento:

    All'apertura imposto una boolean a false, nascondi B e mostri A e mposti la check a true  poi Boolean=true

    nella check se boolean=true esegui il codice.

    All'apertura sarà false e non esegue il codice.

    Codice della check (onchange) non al click!

    Se (bolean)

      Maschera A visibile = (check.checked)

      Maschera B visibile = not (check.checked)

    Fai quello che devi fare e alla conferma (quando finisci tutto) aggiungi

    Check.checked=true

    Fine.

    Al load avrai sempre la check a true.

Devi accedere o registrarti per scrivere nel forum
16 risposte