Questo sito utilizza cookie tecnici e di terze parti. Continuando la navigazione sul nostro sito accetti l'uso dei cookie. Per saperne di più leggi l'informativa sui cookie.   


Come Gestire il Formato di una etichetta (BackColor) in un Form Access
Ultimo messaggio: 16 apr 2019 10:39 di Diego Cattaruzza [exMVP]. 4 Risposte.
Stampa gradevole
Solo gli utenti registrati possono rispondere ad una discussione.
Avatar
alip1
Messaggi: 60
Iscritto dal: 30 apr 2012 09:34
Utente
Utente

12 apr 2019 10:23

Intanto chiedo scusa se espongo il quesito in VB6 trattandosi di VBA.

Un Form di ACCESS viene in genere collegato ad una sorgente di dati i cui record vengono visualizzati nel form in seguenza, sui quali ci si sposta utilizzando il selettore di record a sx del form.

Il mio problema consiste in questo:

Ogni record ha un campo READED di tipo boolean che viene esposto con un checkbox, accanto ad adesso c'é una etichetta etReaded il cui colore di sfondo (backcolor) dovrebbe cambiare da verde (se READED é vero) a rosso (se READED é falso).

Ho provato a mettere il seguente codice nell'evento current del form:

Private Sub Form_Current()

 

 If Me.chReaded.Value <> 0 Then

      etChReaded.BackColor = vbGreen

      etChReaded.ForeColor = vbBlue

      chReaded.BorderColor = vbGreen

 Else

      etChReaded.BackColor = vbRed

      etChReaded.ForeColor = vbBlue

      chReaded.BorderColor = vbRed

 End If

 

End Sub

 

Ora il problema sta nel fatto che se il record corrente ha READED a falso tutti vengono visualizzati in ROSSO se invece é True vengo tutti visualizzati a VERDE anche se il chReaded viene spuntato correttamente.

Domanda:

E' possibile in qualche modo, per ogni record, formattare la riga corrispondente? In VB6 mi ricordo che si poteva fare… in ACCESS??

Grazie per ogni contributo.

 

P.S.: il lavoro é fatto in ACCESS per esplicita richiesta del committente…

 

    Avatar
    Filvin
    Messaggi: 58
    Iscritto dal: 16 mar 2017 17:11
    Utente
    Utente

    12 apr 2019 10:34

    Non è molto chiaro il tuo quesito, però se ho capito il tuo problema dovresti intervenire sul formato del controllo (backcolor ecc.) anche dopo l'evento afterupdate del checkbox.

    Ciao

    Filippo

      Avatar
      alip1
      Messaggi: 60
      Iscritto dal: 30 apr 2012 09:34
      Utente
      Utente

      12 apr 2019 11:16
      Inviato da Filvin su 12 apr 2019 11:34

      Non è molto chiaro il tuo quesito, però se ho capito il tuo problema dovresti intervenire sul formato del controllo (backcolor ecc.) anche dopo l'evento afterupdate del checkbox.

      Ciao

      Filippo

      Grazie no il problema é diverso…

      Il form si limitata semplicemente a visualizzare i record.. (a mo di report) i campi sono bloccati

      e i record si possono solo scorrere:



      questo é il form che presento. Il problema sta nel fatto che per ogni record (riga) il checkbox essendo collegato viene spuntato o meno a seconda che il caampo sia Vero o Falso. Ora vorrei che l'etichetta accanto venisse mostrata in Rosso se chebox non vero e verde se Vero. Invce essendo il primo non Vero me li mostra come se tutti fossero non Veri mentre il checkbox é corretto. Il problema é che usando l'evento current che si attiva quando ci si sposta da un record all'altro la procedura funziona per cui mi colora il backcolor dell'etichetta in Rosso oppure in Verde a seconda del valore booleano del campo READED, il guaio é che lo fa per tutte le etichette e non solo per quello corrente. Non so se sono riuscito a spiegarmi.


        Avatar
        Filvin
        Messaggi: 58
        Iscritto dal: 16 mar 2017 17:11
        Utente
        Utente

        15 apr 2019 09:49

        Ho capito il problema.

        Il Form è in Visualizzazione Maschere continue.

        Purtroppo non conosco la soluzione (se esiste) e non sono in grado di aiutarti.

        In bocca al lupo

        Ciao

          Avatar
          Diego Cattaruzza [exMVP]
          Messaggi: 7181
          Iscritto dal: 08 set 2012 11:22
          Team
          Team

          16 apr 2019 10:39

          Non devi usare codice, perché l'evento si applica forzatamente a tutti i record

          Devi invece, in fase di progettazione, applicare la formattazione condizionale:

          apri la maschera in struttura

          seleziona il controllo di cui vuoi gestire il colore di fondo

          imposta il suo colore di fondo predefinito

          dal menu formato, scegli 'formattazione condizionale', clicca su 'nuova regola' e imposta la condizione sul valore della casella di controllo (o sul valore contenuto nel controllo) e il colore di fondo specifico 

            Diego Cattaruzza
            ex MVP Visual Basic .Net
            blog: Uncensured
            Solo gli utenti registrati possono rispondere ad una discussione.