Il tuo campione con GetFooF4 non può essere ottimizzato né da Sql Server, né da Access. E riaprire questo rs tutto il tempo è molto inefficiente. Come regola generale, evita di utilizzare funzioni o codice specifici di Access nelle tue query. Ciò impedisce ad Access di inviare la query "così com'è" al server SQL. Deve invece scaricare l'intero gruppo di dati ed elaborarlo localmente, il che significa più traffico e meno velocità.
Vedi http://msdn.microsoft.com/en-us/library/bb188204(v=sql.90).aspx#optaccsql_topic2