... rs2.CursorLocation = 3 'adUseClient rs2.CursorType = 0 'adOpenForwardOnly (default, and that's all you need) rs2.LockType = 4 'adLockBatchOptimistic (see below) ... rs2.Open "YOUR SQL STMT", conn 'conn is your active connection object ... 'do your update as needed Do While Not rs2.EOF ... rs2.Fields("country").value = rs1("Country") rs.MoveNext ... Loop ...do all the work you need to do with the new data in rs2 rs2.CancelBatch 'if you don't actually want to update the table.If you don't use BatchOptimistic as your lock type, the "Country" field on the table in RS2 will be updated as you move from record to record. Even if you do want to update the table, this method involves one trip to the SQL server for each record (pretty expensive). If you want to update it, do it in batch. After you are done updating rs2, call rs2.UpdateBatch; this is one trip to update all records. Otherwise, simply do as shown above to cancel updates to the table (note that even if you don't call cancelBatch, the update won't be made unless you call UpdateBatch; this is just a re-assurance).