troubleshooting Question

Conditional formatting in VBA code applies to all rows of a datasheet form

Avatar of keimpe
keimpe asked on
Microsoft Access
5 Comments1 Solution1618 ViewsLast Modified:
Dear Experts,

I'm trying to re-create the conditional formatting of a field on a form (that is shown in datasheet view) in code, because I want a specific background color that can't be selected in the conditional formatting popup.

However, when I set conditional formatting in code, this field is set to this new custom background color on all the rows of the datasheet, even the ones for which the expression is false.

The attached image shows the Conditional formatting that works perfectly (but with the wrong color) and the attached code shows the conditional formatting that looks perfectly (but on all the rows).

Can you help me?

One remark: the field I'm using for conditional formatting is a drop down combobox where the text in the second column determines which background color should be used for the field. I don't know if this is important, but I thought I'd mention it just in case.

Keimpe Wiersma
Dim objFrc As FormatCondition
    Dim lngBlue As Long

    lngBlue = RGB(159, 210, 254)

    Set objFrc = Me![FieldName].FormatConditions.add(acExpression, , (FieldName.Column(1) = "SomeTextString"))
    With Me.FieldName.FormatConditions(0)
        .BackColor = lngBlue
    End With

Open in new window


Our community of experts have been thoroughly vetted for their expertise and industry experience.

Join our community to see this answer!
Unlock 1 Answer and 5 Comments.
Start Free Trial
Learn from the best

Network and collaborate with thousands of CTOs, CISOs, and IT Pros rooting for you and your success.

Andrew Hancock - VMware vExpert
See if this solution works for you by signing up for a 7 day free trial.
Unlock 1 Answer and 5 Comments.
Try for 7 days

”The time we save is the biggest benefit of E-E to our team. What could take multiple guys 2 hours or more each to find is accessed in around 15 minutes on Experts Exchange.

-Mike Kapnisakis, Warner Bros