Je suis en train de reprendre des macros qui ont été développées par un collègue. Ces macros permettent de gérer des échanges entre une interface Excel et une base access.
Ces macros étaient rédigées avec les noms des tables, requètes...etc en dur.
Pour tout un tas de raisons (et en particulier celle de vouloir faire quelque chose de plus propre), je suis en train de réécrire la partie import des données en mettant les noms de la base et de la requête de sortie en variables.
Mon import de données est basé sur au minimum 2 critères (XXX et YYY1) mais peut l'être également sur 3 critères (XXX, YYY1, YYY2).
Sur 2 critères, cela fonctionne parfaitement.
Sur 3 critères, j'ai un message d'erreur : "Erreur d'exécution '13' : Incompatibilité de type"
Si je fais une sélection avec les critères XXX et YYY2, ça fonctionne parfaitement.
Je suppose qu'il y a un problème de syntaxe mais je n'arrive pas à voir où.
1 - La virgule est en trop, elle crée une deuxième valeur pour le Array, la première étant "SELECT *"
2 - Il manque sans doute une espace avant le WHERE
3 - Ne vous encombrez pas de CHR(13) et CHR(10) qui ne servent à rien
Quelque chose comme : .CommandText = Array( _
"SELECT * FROM `" & myBDD & "`." & myReqSortieINT & " WHERE (" & myselection & ");" _
)
Ou comme ça :
.CommandText = "SELECT * FROM `" & myBDD & "`." & myReqSortieINT & " WHERE (" & myselection & ");"
Il est toujours préférable d'ajouter un point-virgule (';') en fin de requête