VBA: Mostrare/nascondere campi/colonne di maschera foglio dati

di il
4 risposte

VBA: Mostrare/nascondere campi/colonne di maschera foglio dati

Ho una maschera singola Supporti con vari campi tra cui Contenuto che può avere i seguenti valori:
DettagliSupporti
Documenti
Foto
Misto

Poi ho una struttura a schede, quindi una maschera singola collegata FotoDocumenti. Qui dentro c'è un pulsante PersoneCoinvolte che apre una maschera collegata in foglio dati PersoneCoinvolte avente i seguenti campi:
IDPC
IDPersona
IndiceFoto
DettaglioFoto
RuoloDocumento
IDFD

Quando clicco sul pulsante PersoneCoinvolte vorrei che a seconda del valore contenuto in Forms!Supporti!Contenuto i controlli/campi IndiceFoto, DettaglioFoto, RuoloDocumento siano mostrati o meno in base ai seguenti codici

Private Sub PersoneCoinvolte_Click()
DoCmd.RunCommand acCmdSaveRecord
DoCmd.OpenForm "PersoneCoinvolte", acFormDS, , "[IDFD] = " & Me!IDFD, , , Forms!Supporti!Contenuto
End Sub
Private Sub Form_Load()
Select Case Me.OpenArgs
   Case "Documenti"
       Me!IndiceFoto.Visible = False
       Me!DettaglioFoto.Visible = False
       Me!RuoloDocumento.Visible = True
   Case "Foto"
       Me!IndiceFoto.Visible = True
       Me!DettaglioFoto.Visible = True
       Me!RuoloDocumento.Visible = False
   Case "Misto"
       Me!IndiceFoto.Visible = True
       Me!DettaglioFoto.Visible = True
       Me!RuoloDocumento.Visible = True
   Case Else
End Select
End Sub

Nonostante ho verificato che Me.OpenArgs recepisce il valore preso da Forms!Supporti!Contenuto, quando si apre la maschera PersoneCoinvolte vedo sempre tutti i campi.
1) Cosa c'è di sbagliato nei codici che ho postato?
2) Aprire una maschera in foglio dati (acFormDS) non consente di nascondere colonne?

4 Risposte

  • Re: VBA: Mostrare/nascondere campi/colonne di maschera foglio dati

    Ciao, essendo testo, sei sicuro che gli apici formattino nnel modo giusto il testo, cosi da essere intercettato dal select case?

  • Re: VBA: Mostrare/nascondere campi/colonne di maschera foglio dati

    Direi proprio di sì, ho già usato tante altre volte Me.OpenArgs e gli argomenti/casi di Select Case. Ho fatto un test mettendo un 

    MsgBox Me.OpenArgs

    prima dei Select Case e mi restituiva il testo corretto atteso.

    “OsvaldoLaviosa”

    Aprire una maschera in foglio dati (acFormDS) non consente di nascondere colonne

    Mi sa che c'è questo ostacolo. Ho provato a mettere Visibile: No direttamente in visualizzazione struttura maschera e in foglio dati me li mostra ugualmente.

  • Re: VBA: Mostrare/nascondere campi/colonne di maschera foglio dati

    Non vorrei dire una stupidata, ma credo che in visualizzazione foglio dati devi utilizzare la proprieta' .columnhidden e non la .visible che si usa per i controlli in maschera singola

  • Re: VBA: Mostrare/nascondere campi/colonne di maschera foglio dati

    17/01/2023 - Mailman ha scritto:


    in visualizzazione foglio dati devi utilizzare la proprieta' .columnhidden

    Con il dovuto accorgimento di invertire True e False

    Private Sub Form_Load()
    Select Case Me.OpenArgs
       Case "Documenti"
           Me!IndiceFoto.ColumnHidden = True
           Me!DettaglioFoto.ColumnHidden = True
           Me!RuoloDocumento.ColumnHidden = False
       Case "Foto"
           Me!IndiceFoto.ColumnHidden = False
           Me!DettaglioFoto.ColumnHidden = False
           Me!RuoloDocumento.ColumnHidden = True
       Case "Misto"
           Me!IndiceFoto.ColumnHidden = False
           Me!DettaglioFoto.ColumnHidden = False
           Me!RuoloDocumento.ColumnHidden = False
       Case Else
    End Select
    End Sub

    Funziona. Grazie.

Devi accedere o registrarti per scrivere nel forum
4 risposte