But I won't be beaten easily ;-)
Here's a work-around.
Private Sub Detail_Format(Cancel As Integer, FormatCount As Integer)
Dim db As Database
Dim rst As DAO.Recordset
Dim pnt As Object
Dim i As Integer
Set db = CurrentDb
Set rst = db.OpenRecordset(Me.Controls("ChartName").RowSource)
With rst
.MoveFirst
For i = 1 To
Me.Controls("ChartName").SeriesCollection("FieldName").Points().Count
Set pnt =
Me.Controls("ChartName").SeriesCollection("FieldName").Points(i)
Select Case !FieldName
Case Is < 1
pnt.Interior.Color = vbRed
pnt.Border.Color = vbRed
Case 1 To 5
pnt.Interior.Color = vbYellow
pnt.Border.Color = vbYellow
Case Is > 5
pnt.Interior.Color = vbGreen
pnt.Border.Color = vbGreen
Case Else
End Select
.MoveNext
Next i
End With
Set rst = Nothing
Set db = Nothing
End Sub
What this is doing is opening a recordset, using the same source as the
RowSource of the chart object. Then we simply loop through the number of
points in the chart's SeriesCollection for the required field, get the value
from the recordset which we've opened, and set the interior and border color
for the current point depending on the value in the recordset (which will be
the same as the value of the point in the series).
Simple ...
HTH,
Rob