Therein lies the rub. There is NO concept of "previous" in a relational database. "previous" exists (although not expressly) in a report but only because a report is a sequential process. That allows you to compare the value in the current record with the value in the previous record. Then save current to previous. HOWEVER, this won't help you because the "previous" record is already gone and you can't go back and colorize it.
However, if the dCount() counts the value in the current record, that should solve the problem because all rows of each set of duplicates should return a count >0. So if you have three instances of "123" in a row. The first will return a count of 3 so you color it. The second will return a count of 3 so you color it, and so will the third. This is probably your solutionOf course if immediately following that you have two instances of "124", those also get colored and you have a block of 5 colored but they are actually two different sets of duplicates. So, the reality is, there is no true solution that isn't based on a recordset manipulated with VBA.