Learn Microsoft Access Advanced Programming Techniques, Tips and Tricks.

Wednesday, February 29, 2012

Changing Font Color Conditional Formatting

Introduction.

With the conditional formatting feature of Microsoft Access, we can apply up to three colors to the font or background of a Textbox, because only three sets of conditions can be set on a field at one time.  If we need more than that then what?  Well, we can do that job ourselves by checking for the specific condition and applying whatever color we want to the font.

The Color Table.

For example, we have a Category Code Combo Box Field on the Form having values ranging from A to F. When the user selects one of these codes from the Combo box the item Description Field’s Font Color should change as per the following color table:

Color Table
Category Color Decimal Hex
A GREEN 32768 #008000
B BLUE 10485760 #000080
C LIGHT BLUE 16711680 #0000FF
D LIGHT GREEN 65280 #00FF00
E RED 128 #800000
F LIGHT RED 255 #FF0000

Design a Form.

Let us try this out on a sample Form.

  1. Open a new Form in Design View.

  2. Click on the Control Wizards button on the Toolbox to enable it.

  3. Select the Combo box Tool and draw a Combo box in the Detail Section of the Form.

  4. Select the Radio Button with the Caption: I will Type in the Values that I want then Click Next.

  5. Type A, B, C, D, E & F in separate rows under Col1 and Click on Finish Command Button.

  6. While the Combo box is still in the selected state display the Property Sheet (F4).

  7. Click on the Other tab of the Property Sheet.

  8. Change the Name Property Value to cboCat.

  9. Select the Event Tab on the Property Sheet.

  10. Select [Event Procedure] from the After Update Event Property.

  11. Click on the Build (. . .) button at the right edge of the After Update Event property to open the VBA Module of the Form.

    Form Module Code.

  12. Copy and paste the following Code overwriting the empty lines of the After Update Event Procedure:

    Private Sub cboCat_AfterUpdate()
    Dim strtxt, num As Integer
    Dim colr As Long
    
    strtxt = Nz(Me![cboCat], "")
    If Len(strtxt) > 0 Then
      num = Asc(strtxt) - 64
    
      colr = Choose(num, 32768, 10485760, 16711680, 65280, 128, 255)
      With Me!Desc
         .ForeColor = colr
      End With
      
    End If
    End Sub
  13. Close the VBA Editing Window to come back to the Form Design.

  14. Create a Textbox to the right of the Combobox.

  15. Display its Property Sheet (F4) and select the Other Tab.

  16. Change the Name Property Value to Desc.

  17. Save and Close the Form with the name Sample.

    Try out the Form.

  18. Open the Sample Form in Normal View.

  19. Type your name in the Text box.

  20. Try out our creation by selecting the Category Code (A, B, C, D, E, F) one after the other or in random order, and watch the color of your name change.

Technorati Tags:

Earlier Post Link References:

1 comment:

  1. Actually with Access 2010 up to 50 conditions(and hence 50 colours) can be applied at the same time

    ReplyDelete

Comments subject to moderation before publishing.

Powered by Blogger.