Formattazione campi con evento AfterUpdate

di il
2 risposte

Formattazione campi con evento AfterUpdate

Buongiorno,
ho scritto una funzione che inserita in eventi AfterUpdate di alcuni controllidovrebbe formattarli in maniera da evidenzioare all'utente i campi da compilare. Si tratta di textbox, listbox e combobox:
Public Function format_campo(ctrl As Access.Control)
Dim i As Integer
With ctrl
    Select Case .ControlType
           Case acListBox, acComboBox
                list_empty ctrl
                For i = 0 To ctrl.ListCount - 1
                    If .Selected(i) = True Then
                        list_noempty ctrl
                        Exit For
                    End If
                Next
            Case acTextBox
                If Len(.Text & vbNullString) = 0 Then
                    txt_empty ctrl
                Else
                    txt_noempty ctrl
                End If
    End Select
End With
End Function
dove al loro volta le funzioni richiamate sono:
Public Function txt_empty(ctrl As Access.TextBox)
With ctrl
            .SpecialEffect = 0 ' aspetto bordo: piatto 0,rilievo 1, incassato 2
            .BorderWidth = 1 ' spessore bordo
            .BorderColor = rosso ' colore bordo
            .ForeColor = rosso
End With
change_color = True

End Function
Public Function txt_noempty(ctrl As Access.TextBox)
With ctrl
            .SpecialEffect = 2 ' aspetto bordo: piatto 0,rilievo 1, incassato 2
            .BorderWidth = 1 ' spessore bordo
            .BorderColor = g_chiaro ' colore bordo
            .ForeColor = vbBlack
End With
change_color = False
End Function

Public Function list_empty(ctrl As Access.Control)
With ctrl
    Select Case .ControlType
        Case acListBox, acComboBox
            .SpecialEffect = 0 ' aspetto bordo: piatto 0,rilievo 1, incassato 2
            .BorderWidth = 1 ' spessore bordo
            .BorderColor = rosso ' colore bordo
    End Select
End With
End Function

Public Function list_noempty(ctrl As Access.Control)
With ctrl
    Select Case .ControlType
        Case acListBox, acComboBox
            .SpecialEffect = 2 ' aspetto bordo: piatto 0,rilievo 1, incassato 2
            .BorderWidth = 1 ' spessore bordo
            .BorderColor = g_chiaro ' colore bordo
    End Select
End With
End Function
poi vengono richiamate invocando la funzione format_campo me.nomecontrollo negli eventi AfterUpdate.

il comportamento però è un pò anomalo per i controlli listbox e combobox, nel senso che la proprietà dei campi non varia se cè o meno al sezione di un campo nelle listbox o combobox.
Grazie.

2 Risposte

Devi accedere o registrarti per scrivere nel forum
2 risposte