Here is my code, which is a little lengthy. I have a different index setting for the form than the recordset since there are additional labels on the form. If I don't reset the color each time then once it is set it stays set for all the rows. If I reset the color then the reset color stays for all the rows. So, I was going to try a different twist and add a variable to my recordset which I would add as the first field in the row and flag if any columns had differnces but it won't let me update the variable.<br><br> Dim mKey As Integer, RSMT As DAO.Recordset<br> Dim indx As Integer, indx2 As Integer<br> Dim comp1 As Variant, comp2 As Variant<br> Dim ctl As Controls<br> indx2 = 0<br> Set RSMT = Me.RecordsetClone<br> <br> RSMT.MoveFirst<br> Set ctl = Me.Controls ' 3 label fields so starts at 3<br> <br> For indx2 = 0 To (RSMT.RecordCount - 1)<br> <br> For indx = 0 To 16 'Match first 17 to second 17 fields<br> ctl.Item(indx + 4).BackColor = -2147483643 '---- initialize colors for the row<br> ctl.Item(indx + 21).BackColor = -2147483643<br> <br> comp1 = RSMT.Fields(indx).Value<br> comp2 = RSMT.Fields(indx + 17).Value<br> If (Nz(comp1, 0)) <> (Nz(comp2, 0)) Then<br> ' -- Value is different then set color ---------<br> '''' Me.Bookmark = RSMT.Bookmark<br> ctl.Item(indx + 4).BackColor = 4227200<br> ctl.Item(indx + 20).BackColor = 16711680<br> End If<br> Next '-- loop thru the fields<br> <br> RSMT.MoveNext<br> Next '-- loop thru records<br> <br> RSMT.Close<br>