Why don't you just have the unbound subform bound to the table but display it in single form view. This will be the form where the user's enter/edit items. Keep the other subform that displays the list of items that have been entered. Basically, that's what you're doing anyway.
In the "OnCurrent" event of the list form, you could set a hidden text box on the main form to ID of the item selected in the list form. Then you could bind the "edit" subform to that text box. When the user selects a line item, that line item will automatically appear in your edit subform so they can edit it.
The code you'll need in the OnCurrent event is:
Me.Parent.txtboxcontrol = Me.lineitemid
You'll have to set the Master/Child Link fields for the "edit" subform object manually.
QED. And MUCH better than writing code to manually add/update records. Plus it has that nice little added feature that you don't have to write much code to allow the users to edit the line item.
BTW, you are correct about changing the RowSource based on selections in other fields in a record. If you change it for the control, it changes for all records showing. And this means that the other records will only display data if they would use the same RowSource.
Randall J Weers
Membership Vice President
Pacific NorthWest Access Developers Group
http://www.pnwadg.org