Formattazione condizionale su record corrente

di eddy1973 il
15 risposte
Buongiorno,
credo la cosa sia banale, ma vorrei applicare una formattazione condizionale su record corrente di una maschera continua ma non attraverso vba, come già spiegato in un vecchio 3D.
Ho inserito una textbox, txt_IDass, nella maschera e l'ho associata ad un campo [ID_Assegnazione] con chiave primaria. Poi da formattazione condizionale, attraverso il generatore d'espressione, ho eguagliato [ID_Assegnazione] a txt_IDass della maschera.
Non succede nulla. Probabilmente c'è qualcosa da impostare nell'evento Form_Current, ma non trovo la quadra. Come posso procedere?
Grazie.

15 Risposte

  • Ovviamente su current devi valorizzare nel controllo [txt_idass] con il valore del controllo associato alla pk... ma in realtà basterebbe mettere bel.controlsource del.controllo txt_idass il controllo associato alla Pk.. senza codice.
  • Scusa ma non ho capito. cosa vuol dire senza codice?
  • Ho scritto quella cosa del controlsource... cosa non è chiaro...?
  • Ho impostato in evento Form_Current della sottomaschera:
    Me.txtID_ass.ControlSource = [ID_Assegnazione]
    intendi questo?
  • No... il controllo TextBox ha una proprietà chiamata OrigineControllo=Controlsource che, per il controlli associati è valorizzata con il nome del Campo... le trovi nella maschera delle proprietà.
    Tu devi valorizzare la proprietà OrigineControllo del controllo txyId_ass non con un camp ma con il controllo associato a quel campo...
    ORIGINECONTROLLO=[ID_Assegnazione]
    oppure altra possibilità:
    
    Me.txtID_ass.Value= [ID_Assegnazione]
    
  • Me.txtID_ass.Value= [ID_Assegnazione]
    è la prima cosa cui ho pensato di inserire in Form_Current, ma non funziona forse dipende dalla formula che ho inserito nella formattazione condizionale?
    Ho inserito:
    [ID_Assegnazione]=[Maschere]![SM_Attività]![txtID_ass]
  • 
    [ID_Assegnazione]=[txtID_ass]
    
  • Anche questa. Non funziona.
  • Impossible.
    Ma dove hai messo il controllo txtId_ass...?
    Va nell'intestazione maschera... ovviamente.
  • Certo. La cosa curiosa che applicando la formattazione attraverso vba funziona con le stesse condizioni.
  • Cosa intendi quando dici di applicare la F.C. da vba...?
  • Questo codice in form_Current:
    Dim ctl As Control
        For Each ctl In Me.Controls
            Select Case ctl.ControlType
                Case acTextBox
                    With ctl
                        .FormatConditions.Delete
                        .FormatConditions(0).Enabled = False
                        .FormatConditions.add acExpression, acEqual, "ID_Assegnazione = " & Me.txtID_ass
                        .FormatConditions(0).BackColor = RGB(127, 167, 227)
                        .FormatConditions(0).ForeColor = RGB(255, 255, 255)
                        .FormatConditions(0).FontBold = True
                        .FormatConditions(0).Enabled = False
                        .FormatConditions(0).FontName = "Calibri"
                    End With
            End Select
        Next ctl
  • Questo funziona 1 volta sola... perche non passi una formula o un valore dinamico ma un valore STATICO come confronto... quindi per funzionare devi eseguirlo ogni volta su current cosa ERRATA nel.modo più assoluto.

    Io credo tu commetta un errore banale... ma non ho modo di vederlo a meno che tu non riesca a pubblicare un mini esempio.
  • Sono d'accordo con te. E' per questo che non vorrei utilizzare questo codice. Ma la formattazione condizionale. E' molto probabile che ci sia un errore banale. Indagherò. Ti faccio sapere. Grazie.
Devi accedere o registrarti per scrivere nel forum
15 risposte