NASCONDI CAMPI MASCHERA

di il
5 risposte

NASCONDI CAMPI MASCHERA

Buingiorno a tutti,
avrei bisogno di un piccolo suggerimento per visualizzare o meno campi maschera.
La necessita: Evento dopo aggiornamento su casella combinata, deve accendere e nascondere alcuni campi.
Se carico il codice su funzione click di un pulsante funziona, mentre se lo inserisco nell'evento della casella combinata mi restituisce un errore.

Questo il codice "Pulsante Comando145"

Private Sub Comando145_Click()
' controllo linea corrispondente all'articolo
'accendi campo corrispondete
If Me.Testo144 = "PET2" Then
 B.Visible = False
 B_Etichetta.Visible = False
 C.Visible = False
 C_Etichetta.Visible = False
 A_Etichetta.Visible = True
 A.Visible = True
 A.SetFocus
 End If
 
 If Me.Testo144 = "PET3" Then
 A.Visible = False
 A_Etichetta.Visible = False
 C.Visible = False
 C_Etichetta.Visible = False
 B_Etichetta.Visible = True
 B.Visible = True
 B.SetFocus
 End If
 
 If Me.Testo144 = "PET4" Then
 A.Visible = False
 A_Etichetta.Visible = False
 B.Visible = False
 B_Etichetta.Visible = False
 C.Visible = True
 C_Etichetta.Visible = True
 C.SetFocus
  End If
End Sub 
Potete aiutarmi a capire come rielaborare il codice?
Grazie

5 Risposte

  • Re: NASCONDI CAMPI MASCHERA

    Nella casella combinata si usa DopoAggiornamento o AfterUpdate...

    P.s. se le LABEL sono associate alle textbox non serve gestirne la visibilità in quanto seguono il controllo container... la textbox.
    Oltretutto quel.codice è scritto veramente male... le condizioni siccome sono vere solo 1 ala volta devi usare IF...ELSEIF...ELSEIF
    ..ENDIF altrimenti costringi inutilmente ad elaborare tutti gli IF...

    In ogni caso se usi una logica boleana basta 1 riga per controllo.
    Esempio:
    
    Me.TextBox1.visible=Me.Testo144 = "PET2"  or Me.Testo144 = "PET3"
    
    In questo modo Non serve alcun IF...endif...
  • Re: NASCONDI CAMPI MASCHERA

    ... doppio
  • Re: NASCONDI CAMPI MASCHERA

    1. Consiglio anziché tanti If, la Select Case.
    2. Hai provato a sostituire lo stesso codice con l'evento "Dopo aggiornamento" ossia AfterUpdate della casella combinata?
    3. Altrimenti che tipo di errore ti viene mostrato?
  • Re: NASCONDI CAMPI MASCHERA

    Salve,
    Io uso un metodo tutto mio, specialmente quando i controlli da vedere/nascondere sono tanti eccolo:
    1) inserisco due controlli nella Form che chiamo uno "BussaVedi" l'altro "X" (settati a dimensioni zero altezza larghezza) non invisibi
    2) nell'azione > su Uscita del controllo > BussaVedi inserisco una "select" che contiene esempio:
    select case BussaVedi
               case 1  'la casella combinata invia la BoundColumn al controllo BussaVedi
                  NomeControllo1.visible=true
                  NomeControllo2.visible=false
                  NomeControllo1.visible=true
               Case 2   'Non solo la casella combinata ma un qualsiasi controllo può inviare il dato
                  NomeControllo1.visible=False
                  NomeControllo2.visible=true
                  NomeControllo1.visible=False   etc.....
    end select
    La CasellaCombinata:
    Colonna Zero BoundColumn
    Colonna 1,2,3, gli altri dati
    Evento dopo aggiornamento:
    Me.BussaVedi = NomeMiaCasellaCombinata
    me.BussaVedi.setfocus
    me.X.Setfocus 'all'occorenza puoi inviare il focus dove credi
    Su clic di qualunque buton :
    Me.BussaVedi = 1,2,3,4,etc
    me.BussaVedi.setfocus
    me.X.Setfocus 'all'occorenza puoi inviare il focus dove credi
    Su BussaVedi (prima di ridurlo a zero) digiti il numero e sposti il focus su un'altro controllo
    vedi immediatamente l'effetto.
    saluti
  • Re: NASCONDI CAMPI MASCHERA

    Oops!
    non mi sono accorto che Alex ed Osvaldo avevano già scritto, chiedo scusa.
Devi accedere o registrarti per scrivere nel forum
5 risposte