A quick and eazy way to do color changes based on some criteria would be to create a field in the report query that calculates the aging days and alias (name) it something meaningful to the end user. enter this calculation in the query DaysPastDue: Datediff("d",Now(),[YourFieldName])+45
What this will do is calculate the days over or under the 45 day cut-off
Positive values indicate days before the pastdue date and negative numbers indicate the number of days pastdue or past that 45 day period.
In the report add this text box next to the date control and set it's control source to this calculated field. In this control's format property use something like the following "Current";[Red]"Past Due","Current"
What this will do is on positive values it will display "Current" (or some other text you might want next to the date field. Negative values will show the red text and zeros will show the third value. Using the format property makes sure only that textbox gets the color change.
A bit verbose but this will work in all versions of Access.
Place this code into the On Format event for the Detail section of your report (OR for the report section that is home for your DT_LAST_PAY date field):
If DateAdd("y",Me.DT_LAST_PAY,Now()) > 45 Then
'Change the Font color to Red.
Me.DT_LAST_PAY.ForeColor = vbRed
'Change the Font Weight to Bold.
Me.DT_LAST_PAY.FoontWeight = 700
'Change the Font color back to Black.
Me.CDT_LAST_PAY.ForeColor = vbBlack
'Change the Font Weight to Normal.
Me.DT_LAST_PAY.FontWeight = 400