It seems very useful.
Thanks for the sample project.

I would be even better if the objects of the main thread could be used, something like SyncCallback.Marshall(SomeRecordset).MoveFirst...
But perhaps it's too difficult to do (or am I saying nonsense?).