I second June7's comment. You shouldn't have fields with names like "Quantity" because this is something that always changes relative to a calculation of fields that already exist within your table. The result is you have a need to write compex code to UPDATE your table with the calculation.
Aside from that issue. Addressing ONLY the title of the thread and how to loop through two recordsets similtaneaously, here is an example. I use it to give the user to edit information they already produced.
The user is viewing a form and the form displays a result of their actions. The user ticks the check box to be removed from their selection. The code grabs the form's recordset and loops through. When it finds a record the user chose to edit the code then loops through the second recordset to do the necesary editing.
Code:
Dim lngPrime As Long
Dim rcdClone As Recordset
Set rcdClone = frm.RecordsetClone
Dim db As DAO.Database
Dim rcdFind As DAO.Recordset
Set db = CurrentDb
Set rcdFind = db.OpenRecordset("qryShipOut")
'Find a key for the DAO to select items for editing"
rcdClone.FindFirst "[In] = -1"
lngPrime = rcdClone![Prime] 'Here is the prime key
If Not rcdClone.NoMatch Then
Do Until rcdClone.NoMatch
rcdFind.MoveLast 'Populate the recordset
rcdFind.FindFirst "[Prime] = " & lngPrime
rcdFind.Edit
rcdFind![Hold] = 0
rcdFind![Out] = 0
rcdFind![OutDate] = Null
rcdFind![ShipOrder] = ""
rcdFind![OutID] = 0
rcdFind![FillerDest] = gintFillerDest
rcdFind.Update
rcdClone.FindNext "[In] = -1"
lngPrime = rcdClone![Prime]
Loop
Else
MsgBox "Please select at least one item to be removed from the Outbound BOL", vbInformation, "No Item Selected"
End If
rcdFind.Close
Set rcdFind = Nothing
rcdClone.Close
Set rcdClone = Nothing
IMO it is much easier to calculate quantities in a report or form. I usually use two loops when I need to get information from one place to another. Like one list from an Email to a list in my DB or An order recived from a customer to a data recordset within my DB.