I wouldn't reach down into a child object, pull out its data source, apply a bunch of logic, and then stuff that data source back into the child...
Rather, the child object should expose a method, like...
Forms!frmDetail!ItemDetail.Form.AddItem ID, Path
The object that owns the data should also...