Formattazione condizionale in access

di il
5 risposte

Formattazione condizionale in access

Ciao,
in un report voglio formattare un campo do un determinato record se accade una certa condizione.
Il codice sembra ok ma la formattazione inspiegabilmente prende TUTTI i record.
Questo il codice:
Private Sub Detail_Format(Cancel As Integer, FormatCount As Integer)
    Dim RecordSt As Recordset
    Dim db As Database
    Set db = CurrentDb()
    stringSQL = "SELECT Capo_Team FROM Consulenti WHERE Cognome & ' ' & Nome LIKE '*" & Replace(Me.Consulente, "'", "''") & "*';"
    Set RecordSt = db.OpenRecordset(stringSQL)
    If RecordSt("Capo_Team") = True Then
        Me.Consulente.FontWeight = 700
    End If
End Sub
Grazie

5 Risposte

  • Re: Formattazione condizionale in access

    Innanzitutto non si tratta di formattazione condizionata o condizionale. ... questa in Access è tutt'altra cosa.

    Ora non comprendo se apri un recordset perché i dati del campo Capo_Team non sono presenti nella nell'origine del Report....

    Poi quella query non va bene per quello che hai intenzione di fare.... potrebbe restituire più di un solo record visto che utilizzi like e jolly...
    Dovresti avere la certezza che il numero di record sia solo 1 e così non va bene.
  • Re: Formattazione condizionale in access

    Si ho presente cos'è la formattazione condizionale di Access e non fa al caso mio.
    Capo_Team non è presente nell'origine del report perché non mi interessa visualizzarlo per cui l'ho recuperato tramite un recordset (a tal proposito ti chiedo anche: se io includo Capo_Team nella query di origine dati del record, posso poi andarlo poi a recuperare via VBA anche se nel report non è presente fisicamente un campo associato ad esso? Oppure devo cmq creare un campo associato e poi, visto che non mi interessa visualizzarlo, metterlo come visible = false?).
    Sono sicuro che il numero di record sia 1 ritornato (o cmq posso in un secondo momento ottimizzare il codice), al momento non è quello che mi interessa. Mi interessa sapere perché il cambio di stile riguarda tutti i record della colonna e non solo quello in linea.
  • Re: Formattazione condizionale in access

    bewater ha scritto:


    Si ho presente cos'è la formattazione condizionale di Access e non fa al caso mio.
    Capo_Team non è presente nell'origine del report perché non mi interessa visualizzarlo per cui l'ho recuperato tramite un recordset (a tal proposito ti chiedo anche: se io includo Capo_Team nella query di origine dati del record, posso poi andarlo poi a recuperare via VBA anche se nel report non è presente fisicamente un campo associato ad esso? Oppure devo cmq creare un campo associato e poi, visto che non mi interessa visualizzarlo, metterlo come visible = false?).
    Prova e vedi...
    Se lo inserisci nella Query crei una TextBox la rendi INVISIBILE eviti l'uso del Recordset che rallenta inutilmente il processo...!

    bewater ha scritto:


    Sono sicuro che il numero di record sia 1 ritornato (o cmq posso in un secondo momento ottimizzare il codice), al momento non è quello che mi interessa. Mi interessa sapere perché il cambio di stile riguarda tutti i record della colonna e non solo quello in linea.
    Se eri sicuro non dovevi costruire così la Query non con il LIKE ma con =... in tutti i casi non serve a nulla... includilo nella Query e semplificati le cose...!
  • Re: Formattazione condizionale in access

    Ho fatto come consigliato e ora il codice è questo:
    Private Sub Detail_Format(Cancel As Integer, FormatCount As Integer)
            If Me.Capo_Team = True Then
                Me.Consulente.FontWeight = 700
            End If
    End Sub
    Il risultato non cambia: lo stile non viene applicato solo sul record corrente ma su tutti i record.

    Grazie
  • Re: Formattazione condizionale in access

    È evidente... la condizione If deve prevedere Else nella quale ripristini il FontWeight a 400.
Devi accedere o registrarti per scrivere nel forum
5 risposte