idx is just a counter. If there are 50 records you will update the same record 50 times because the update values never change (as far as I can see). Why use an ADO connection with a DAO recordset? Shouldn't that be CurrentDb.Execute?
In truth you probably should SET a variable to the CurrentDb (outside the loop) rather than loop over CurrentDb. A variable means the db object reference is only created once.
Ideally you should start your own thread, not just because this is known as thread hijacking but the way some people search for threads your question might not be seen. I know, it's about 4 years old already and probably not much chance that the OP will come back, but still...
The more we hear silence, the more we begin to think about our value in this universe.
Paraphrase of Professor Brian Cox.