Modifica di proprietà su record in SM continua

di il
6 risposte

Modifica di proprietà su record in SM continua

Nello scadenzario che sto costruendo, i record con le informazioni vengono elencati in una SM continua.
Una performance non di poco conto che vorrei dare a questa elencazione, sarebbe quella di evidenziare il testo con diverso colore quando la data della scadenza (che fa parte del mio record visualizzato), è inferiore alla data corrente del giorno ovvero se la scadenza è stata superata.
Per la verità ho già tentato di farlo con la riga di codice di prova inserita in diversi subroutine/eventi della SM, ma senza successo.
If Me!scadenza < Now() Then Me!scadenza.Visible = False
Con questa istruzione non viene discriminato il singolo record, ma l'azione viene estesa alla totalità dei record visualizzati.
Avreste una correzione da propormi?
grazie
antonio

6 Risposte

  • Re: Modifica di proprietà su record in SM continua

    Nelle maschere Continue, eventuali formattazioni grafiche e di visualizzazione devono essere gestite esclusivamente con la Formattazione Condizionale.
  • Re: Modifica di proprietà su record in SM continua

    Scusa Alex, puoi farmi un esempio di Formattazione Condizionale, non riesco a far mente locale.
    Pensavo che la mia

    If Me!scadenza < Now() Then Me!scadenza.Visible = False

    tale fosse.

    Non vorrei che questa sia una di quelle che più che chiamarle lacune, sarebbero mie voragini.
    antonio
  • Re: Modifica di proprietà su record in SM continua

    Se usi gli strumenti di Access, come la guida in linea e digiti formattazione condizionale ti si apre l'Help con le istruzioni per l'uso...
  • Re: Modifica di proprietà su record in SM continua

    E' stata una lettura sicuramente interessante anche se resto ancora molto fuori da certe logiche così raffinate.
    Purtroppo l'esito sperato non è stato raggiunto in quanto nella SM continua, il confronto fra il campo "scadenza" e Now(), la routine applicata a Form_current me lo fa una sola volta per tutti i record per cui anche se soltanto nel record di testa la scadenza è minore di oggi, mi colora tutto di giallo o viceversa.

    Dim Red, Black, Yellow, White As Long

    Red = RGB(255, 0, 0) Black = RGB(0, 0, 0) Yellow = RGB(255, 255, 0)
    White = RGB(255, 255, 255)

    If Me!scadenza.Value < Now() Then
    Me!scadenza.BorderColor = Red
    Me!scadenza.ForeColor = Red
    Me!scadenza.BackColor = Yellow
    Else
    Me!scadenza.BorderColor = Black
    Me!scadenza.ForeColor = Black
    Me!scadenza.BackColor = White
    End If
    Ho fatto qualcosa che non va o di incompleto?
  • Re: Modifica di proprietà su record in SM continua

    Cosa non è chiaro, o cosa puoi fraintendere, quando dico che con maschere continue DEVI usare solo la formattazione condizionale...?
    Mi sembrava di essere stato chiarissimo....!!!

    Non puoi usare codice per condizionare effetti grafici in quanto verrebbero applicati a tutti i controlli visualizzati usando come unico criterio valido quello del record attivo.

    Con la formattazione si fa tutto, anche quello che devi fare tu.
    Certo se è ancora prematura ti suggerisco di studiarla meglio e capirne bene la tecnica di utilizzo.

    P.s. ti ricordo che per i colori base non serve memorizzare il valore RGB, basta usare le costanti di sistema...
    ROSSO=VBA.ColorConstants.vbRed
    BIANCO=VBA.ColorConstants.vbWhite
  • Re: Modifica di proprietà su record in SM continua

    Anche questa è fatta Alex.
    Sinceramente non mi ero mai accorto che ci fose un menu "Formato" e poi Formattzione Condizionale.
    Andavo nell'help e sistematicamente mi riportava al codice.
    bene: grazie.
    ciao antonio
Devi accedere o registrarti per scrivere nel forum
6 risposte