Nascondere sottomaschera su condizione di un valore nella form

di il
3 risposte

Nascondere sottomaschera su condizione di un valore nella form

Ciao, cerco di spiegarmi meglio rispetto al titolo del post.
In generale:
In una maschera singola con sottomaschere vorrei che in determinate condizioni di valori di campi della maschera, le sottomaschere fossero visibili/nascoste.
Per ora ragiono su maschera e una sottomaschera e un campo (per semplificare)
Io ho tentato di capire il metodo corretto e spero di aver intuito che devo impostare una condizione sull'evento After_update del campo che deve andare a modificare la proprietà Visible della Sottomaschera.
In Vba quindi ci andrebbe una IF then else ma probabilmente mi manca qualcosa perchè non succede nulla (o forse sbaglio metodo, il che è probabile).

In pratica:
Form "Persona"
Subform : "Sottomaschera_Query_FIGLI"
Campo (nella form Persona) : Ch_1 (I figli eventuali naturali del record corrente) - il campo contiene testo ed è "Naturali" o vuoto

Private Sub Ch_1_AfterUpdate()
If Me.Ch_1 = "Naturali" Then
Me.Sottomaschera_Query_FIGLI.Visible = True
Else
Me.Sottomaschera_Query_FIGLI.Visible = False
End If
End Sub
Devo aggiungere qualche controllo anche sulla maschera?
O semplicemente... dove sbaglio?

Grazie mille, ciao
J

3 Risposte

  • Re: Nascondere sottomaschera su condizione di un valore nella form

    Le cose da considerare sono poche ed il tuo codice apparentemente sembra corretto.
    Le uniche cosa da capire sono 3:
    1) NON va confuso l'oggetto SubForm dell'oggetto Form usato come SubForm... sembra un giochino ma l'oggetto SubForm è il contenitore rettangolare esterno alla Form usata come SubForm...
    Quindi attenzione ai NOMI che siano quelli corretti che si riferiscono al Container e non alla Form.

    2)se la SubForm(container) ha il focus non puoi renderla non visibile senza prima aver spostato il focus(non credo sia il tuo caso)

    3) oltre che a gestire l'evento AfteeUpdate devi gestire anche l'evento Current di Maschera perché se passi da un record ad un'altro devi di applicare la visibilità condizionata.
  • Re: Nascondere sottomaschera su condizione di un valore nella form

    Ciao, verificherò l'ipotesi 1.
    Ma nell'evento on_current della maschera cosa dovrei inserire per gestire correttamente la visibilità anche nel passaggio tra i record?
    Riportare il ciclo if then else?
    Grazie
    Ciao
    J
  • Re: Nascondere sottomaschera su condizione di un valore nella form

    Ok ha funzionato.
    Effettivamente era il nome della SubForm a non corrispondere... (Maledette cornici )
    In più ho aggiunto l'iterazione anche nell'evento current della Form e funziona correttamente
    Grazie mille!
    RISOLTO (non so come modificare il titolo al therad principale
Devi accedere o registrarti per scrivere nel forum
3 risposte