Votre échantillon avec GetFooF4 ne peut être optimisé ni par Sql Server, ni par Access. Et rouvrir ce rs tout le temps est très inefficace. En règle générale, évitez d'utiliser des fonctions ou du code spécifiques à Access dans vos requêtes. Cela empêche Access d'envoyer la requête "telle quelle" au serveur SQL. Il doit plutôt télécharger l'ensemble des données et les traiter localement, ce qui signifie plus de trafic et moins de vitesse.
Voir http://msdn.microsoft.com/en-us/library/bb188204(v=sql.90).aspx#optaccsql_topic2