Bonjour,
J'ai répondu à la question telle qu'elle a été exposée, avec les exemples donnés 'GARD1 à n', c'est juste une méthode parmi d'autres. A vous de l'étudier et de tenter de l'adapter.
Piste :
1 - remplacer la boucle for i = 1 to 4 par une boucle qui ira chercher les noms de chaque service dans votre liste.
2 - remplacer la partie suivante Replace(SQL_GARD, "????", "GARD" & i)
de la ligne
Replace(Replace(SQL_GARD, "????", "GARD" & i), "@@@@", Adresse)
Par : Replace(SQL_GARD, "????", NOM_SERVICE)
Où NOM_SERVICE est une variable contenant le nom du service.
3 - créer un test qui remplacera If i > 2 Then
puisque les noms ne seront plus indéxés (PROD, FACT, ETUD) et adapter les actions en conséquences.
4 - après la ligne rst.Open SQL, cnx
rajouter un test pour savoir si la requête a renvoyé quelque chose (si oui créer le tableau, si non, passer au suivant) If rst.RecordCount >0 then....Else....Endif
Dans votre dernier exemple, il n'y a aucune données pour les trois services rajoutés !
Cordialement