DDE links and oncalc fields create Eccessviolations

I have been working on this all day and would appreciate any help
I have a query, with a current price field as a string
On the oncalc event I change the DDeitem  property to a dataset field so
that it retrieves the data from the DDeclientconv for that record.  To
assign the value I use the DDeclientItem text property.

To keep the information fresh from the DDe link I have a timer that
refreshes the table (This is the only way I could think of to run the
OnCalc procedure)

When sitting still in a DBgrid all works fine.  The problem occurs when
either holding the mouse down on the scrollbar or keeping the downarrow
depressed so that it scrolls through the records.  A EAccessError comes up
(seemingly randomly, I though this was due to the timer but I believe it is
not) after a period of time.  I believe it to be linked to me assigning a
value to the DDeclientitem text property because if I block this out no
error appears.

I have tried
Creating DDEclientitems in the oncalc procedure then freeing them
Using WaitStat
Checking the tables state and grids control state

If you want to help out either just reply to this in the newsgroup or email
If this isn't clear which is a high possibility then just give hints on how
I should express it