1) Il recordset dentro al loop non devi chiamarsi Rs visto che sei già dentro ad un recordset con quel nome. Cambiagli nome quindi.
2) La prima query estrae tutto, la seconda dentro al loop recupera il valore più basso ma non è detto che sia associato al valore di concorrente, anzi non c'entra proprio niente! E' il più basso e basta.

Roby