Disabilitare casella combinata in maschera continua in base valore di un campo.

di il
4 risposte

Disabilitare casella combinata in maschera continua in base valore di un campo.

Buona sera a tutti,
sono giorni che non riesco a risolvere un problema con una casella combinata.
Ho una maschera continua con la quale visualizzo le fatture pervenute. La tabella "ArchFatt" contiene i seguenti campi:
- "Stato" (casella combinata) con la quale indico lo stato della fattura (es: inviata al Reparto, restituita ecc...);
- "PagSN" di tipo Sì/No che indica se la fattura è stata pagata oppure no. Il campo viene popolato da un'altra maschera;
Avrei la necessità di impedire/bloccare la selezione della casella combinata se il valore del campo "PagSN" è uguale a Sì.
Ho provato con il seguente codice:
if len(me.PagSN. value & vbNullString) <> 0 then
me.Stato.enabled = False
end if
ho provato a mettere il codice su click della casella combinata ma, la casella funziona normalmente e aggiorna il campo. lo stesso succede se lo inserisco su Dopo aggiornamento. Ho provato anche su caricamento della maschera ma anche in questo caso senza risultato.
Qualcuno può aiutarmi? Grazie.

4 Risposte

  • Re: Disabilitare casella combinata in maschera continua in base valore di un campo.

    M_Prince ha scritto:


    ...
    Ho una maschera continua con la quale visualizzo le fatture pervenute. La tabella "ArchFatt" contiene i seguenti campi:
    - "Stato" (casella combinata) con la quale indico lo stato della fattura (es: inviata al Reparto, restituita ecc...);
    - "PagSN" di tipo Sì/No che indica se la fattura è stata pagata oppure no. Il campo viene popolato da un'altra maschera;
    Avrei la necessità di impedire/bloccare la selezione della casella combinata se il valore del campo "PagSN" è uguale a Sì.
    Ho provato con il seguente codice:
    if len(me.PagSN. value & vbNullString) <> 0 then
    me.Stato.enabled = False
    end if
    ...
    Salve,
    il codice corretto è questo:
    If Me.PgSN = True Then Me.NomeControllo.Enabled = False Else Me.NomeControllo.Enabled = True
    L'errore non sta nell'evento sul quale scateni il codice ma nel contare i caratteri di un campo booleano che genera sempre
    un numero di caratteri <> da zero.
    Un campo booleano genera "0" oppure "-1" quindi il risultato del tuo codice dava come risultato 1 oppure 2 quindi diverso da zero sempre.
    Spero essere stato chiaro.
    Saluti
  • Re: Disabilitare casella combinata in maschera continua in base valore di un campo.

    Grazie Gianni,
    sicuramente non sono stato chiaro nell'esporre il quesito. Il problema non è sul riconoscimento del campo booleano "PagSN" bensì sulla funzione enabled della casella combinata "Stato". Mi pare di aver letto, infatti, che detta funzione non sia applicabile su una maschera continua. Mi serviva in realtà un suggerimento per aggirare l'ostacolo.
    Grazie e buona giornata.
  • Re: Disabilitare casella combinata in maschera continua in base valore di un campo.

    In maschere continue, lo eviterei... la modifica delle proprietà non è specifica per RECORD, ma per Oggetto nel corpo, quindi visibile su tutti i Records...
    Quindi se di Combo si parla, la soluzione è Formattazione Condizionale, che consente di gestire ENABLED.
  • Re: Disabilitare casella combinata in maschera continua in base valore di un campo.

    @Alex ha scritto:


    In maschere continue, lo eviterei... la modifica delle proprietà non è specifica per RECORD, ma per Oggetto nel corpo, quindi visibile su tutti i Records...
    Quindi se di Combo si parla, la soluzione è Formattazione Condizionale, che consente di gestire ENABLED.
    Esatto, ho visto lo svarione sul true/false ma non ho testato...alle ore 04 e 29
    prendo atto che dopo un certa urge riposo
Devi accedere o registrarti per scrivere nel forum
4 risposte