Théoriquement, la solution initiale devrait marcher aussi bien que la seconde solution.
Je crois que le problème, dans les deux solutions vient de l'absence des guillemets obligatoires autour du mot "espèce". Je devine qu'ils n'ont pas été mis, car sinon VBA considèrerait que la chaine de la requête se termine avec le premier guillemet devant "espèce". Mais on contourne facilement ce problème, en utilisant des apostrophes, car c'est une syntaxe qui est acceptée quand on écrit une requête dans du VBA. Cela donnerait donc :
Set resultat = base.OpenRecordset("SELECT [tab especes complète].[nomVernaculaire] FROM [tab especes complète] WHERE ((([tab especes complète].code)='espèce'));" )
|
ou
Set objReq = CurrentDb.CreateQueryDef("", "SELECT [tab especes complète].[nomVernaculaire] FROM [tab especes complète] WHERE ((([tab especes complète].code)='espèce'));" )
|
N.B. Il faut aussi éviter le plus possible d'utiliser des lettres accentuées et des espaces pour les noms des champs et des variables, mais la table semble déjà créée, donc c'est un peu tard maintenant.
Message édité par olivthill le 15-04-2010 à 09:44:50