Nascondere campi e pulsanti in una maschera

di
Anonimizzato8798
il
15 risposte

Nascondere campi e pulsanti in una maschera

Un tempo non troppo lontano sapevo smanettare un po' ma purtroppo, causa inutilizzo non ricordo più nulla ahime.
di seguito il mio problema:

maschera un campo alimentabile con "obbligatorio/opzionale/non richiesto".
al fianco di questo campi ho messo un pulsante (per aprire altre maschere).
Vorrei che però il pulsante sia visibile solo se il campo è alimentato con "obbligatorio ed opzionale", e non compaia se nel campo c'è "non richiesto...
come si scrive il codice?

Please: non date per scontato nulla, vi prego di considerarmi un neofita.... quindi molta pazienza con me.
Grazie infinite

15 Risposte

  • Re: Nascondere campi e pulsanti in una maschera

    Parli di una Maschera in visualizzazione SINGOLA vero...? SI altrimenti non puoi.

    Su evento Current di Maschera, condiziona lo stato VISIBLE o ENABLE, a seconda di come preferisci... in base allo stato del tuo campo Tristate(obbligatorio/opzionale/non richiesto)...
    Ad esempio
    
    Private Sub Form_Current()
       Me!NomeControlloTristate.SetFocus
       Me!NomeButton.Visibile=(Me!NomeControlloTristate.Value="Obbligatorio") OR (Me!NomeControlloTristate.Value="Opzionale")
    End Sub
  • Re: Nascondere campi e pulsanti in una maschera

    @Alex ha scritto:


    Parli di una Maschera in visualizzazione SINGOLA vero...? SI altrimenti non puoi.
    Anche "maschera continua" può avere controlli (pulsanti ecc...) governabili con macro o codici VBA. Perchè no?
  • Re: Nascondere campi e pulsanti in una maschera

    Scusami per l'ignoranza... ma nn ci riesco...
    la casella in questione si chiama Employers Liability e il bottone si chiama Comando 60....
    potresti scrivermelo in modo che io faccia un banalissimo copia/incolla....
    Grazie per il supporto pressocchè istantaneo....
  • Re: Nascondere campi e pulsanti in una maschera

    Nel codice devi sostituire:
    NomeControlloTristate con [Employers Liability]
    NomeButton con [Comando 60]
    usa sempre le parentesi quadre quando nel testo ci sono gli spazi.
    Per ottenere l'evento Current, devi andare tra le proprietà della maschera, scheda Eventi, Su corrente. Seleziona [Routine evento] e clicca sul piccolissimo pulsante a destra con 3 puntini per vedere aprirsi una finestra con un codice avente soltanto la prima e l'ultima riga del codice che Alex ti ha proposto.
  • Re: Nascondere campi e pulsanti in una maschera

    Private Sub Form_Current()
    Me!Employers_liability.SetFocus
    Me!Comando60.Visibile = (Me!Employers_liability.Value = "Mandatory") Or (Me!Employers_liability.Value = "Optional")
    End Sub
    ??????
    questo significa che sen campo Employers liability c'è scritto "Patronal", il maledetto pulsante dovrebbe sparire corretto? e invece è sempre lì


    c'è qualcosa che non funziona.....
  • Re: Nascondere campi e pulsanti in una maschera

    Io corrent non lo trovo fra gli eventi......
    c' è clic ( routin evento)
    doppia clic
    pulsante mouse giù
    pulsante mouse su
    rigenerazione
  • Re: Nascondere campi e pulsanti in una maschera

    L'evento si chiama "Su corrente" ed è una proprietà soltanto della Maschera, non lo puoi trovare fra gli eventi di pulsante, casella di testo e tutti gli altri...
    Prova a sostituire
    (Me!Employers_liability.Value = "Mandatory") Or (Me!Employers_liability.Value = "Optional")
    con
    (Me![Employers liability].Value <> "non richiesto")
    oppure
    (Me![Employers liability].Value Not Like "non richiesto")

    Attento, non devi mettere il sottotrattino. Devi lasciare lo spazio e mettere le parentesi quadre.
  • Re: Nascondere campi e pulsanti in una maschera

    Una notizia buona... l'ho trovato (Corrente)

    una cattiva continua a non funzionare
    ma cosa è che sbaglio?????

    Private Sub Form_Current()
    Me![Employers liability].SetFocus
    Me![Comando 60].Visibile = (Me![Employers liability].Value <> "Not required")
    End Sub
  • Re: Nascondere campi e pulsanti in una maschera

    Prova a modificare <> con Not Like
  • Re: Nascondere campi e pulsanti in una maschera

    Purtroppo non cambia nulla.....
  • Re: Nascondere campi e pulsanti in una maschera

    Prova a sostituire <> con Is Not Like.

    Io non so molto altro di più in VBA. Posso suggerirti però una soluzione alternativa con una macro.
    1. Apri una macro in visualizzazione struttura e apri la colonna Condizioni
    2. Nel primo rigo della colonna Condizioni, scrivi:
    [Maschere]![Nome della tua maschera]![Employers liability] = "Not required"
    3. Accanto, nella colonna Azioni, devi impostare
    ImpostaValore (se non lo trovi subito, devi cliccare in alto su un tasto dove dice "Altre azioni")
    Elemento: [Maschere]![Nome della tua maschera]![Comando 60].[Visible]
    Espressione: Falso
    4. Salva la macro con nome X
    5. Ritorna in visualizzazione struttura maschera e all'evento Su corrente, seleziona la macro X.
    6. Salva tutto
  • Re: Nascondere campi e pulsanti in una maschera

    Vien fuori ....impossibile eseguire la macro "SETvalue" in modalità disattivazione....
    a questo punto penso di rinunciare .....
  • Re: Nascondere campi e pulsanti in una maschera

    Aspetta...bisogna saper interpretare ogni singolo comportamento della maschera. Forse Alex ci aveva visto giusto con il SetFocus che non so bene cosa significa e che io avrei omesso.
    Talvolta bisogna integrare le azioni con altri controlli...in VBA esiste la possibilità di gestire gli errori, con le macro no, ma si possono trovare altri stratagemmi.
    Prova ad andare in visualizzazione struttura macro e clicca in alto sul pulsante "Passo a passo". Apri la tua maschera e esegui un po' di operazioni e vedi quando si inceppa esattamente la macro.
  • Re: Nascondere campi e pulsanti in una maschera

    OsvaldoLaviosa ha scritto:


    @Alex ha scritto:


    Parli di una Maschera in visualizzazione SINGOLA vero...? SI altrimenti non puoi.
    Anche "maschera continua" può avere controlli (pulsanti ecc...) governabili con macro o codici VBA. Perchè no?
    La mia affermazione si basa sull'idea che i controlli da gestire siano nel corpo. .. quindi replicati n volte in base al numero di records.
    Se hai dubbi su questa impostazione, prima prova e poi capisci il motivo della mia affermazione.

    Ciao
Devi accedere o registrarti per scrivere nel forum
15 risposte