Changer le code d'une requête SQL d'une base access via un code VBA Excel

Résolu/Fermé
Piloux_0613 Messages postés 3 Date d'inscription mercredi 29 avril 2020 Statut Membre Dernière intervention 29 avril 2020 - 29 avril 2020 à 12:38
Piloux_0613 Messages postés 3 Date d'inscription mercredi 29 avril 2020 Statut Membre Dernière intervention 29 avril 2020 - 29 avril 2020 à 19:11
Bonjour

Je voudrais juste savoir si on pouvait changer le code SQL d'une requete access via un code VBA executé depuis Excel.
La requête est une union entre tout les tableaux et pour aléger le nombres de données à transférer, je voudrais pouvoir changer la requête à la source afin de selectionner les données tableau par tableau
J'ai activé les Acess et les DAO Object Lybrary

SELECT *
FROM [S15_2020]
UNION SELECT *
FROM [S16_2020]
UNION SELECT *
FROM [S17_2020]
A voir également:

3 réponses

yg_be Messages postés 22713 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 22 avril 2024 1 474
29 avril 2020 à 13:30
bonjour, tu n'expliques ni ce que tu fais, ni comment tu le fais.
la requête est-elle définie dans Access et exécutée depuis Excel?
dans ce cas, il est peut-être préférable, au lieu de la modifier, de la définir dans le code VBA sous Excel.
0
Piloux_0613 Messages postés 3 Date d'inscription mercredi 29 avril 2020 Statut Membre Dernière intervention 29 avril 2020
29 avril 2020 à 14:31
En fait j'exploite cette requête via Power Query.
Mon objectif est de changer le code de la requête Access, que Excel envoie à la base de donnée le nouveau code, code que j'aurais défini dans VBA.
Quelque chose comme:
Dim Code as string
Code = "SELECT *" & vbCrLf & _
"FROM [S15_2020]" & vbCrLf & _
"UNION SELECT *" & vbCrLf & _
"FROM [S16_2020];"
Set Coderequete = Code


J'ai juste a changer la variable Code et executer le programme pour redéfinir le code SQL de la requête
0
yg_be Messages postés 22713 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 22 avril 2024 1 474
29 avril 2020 à 15:38
je ne suis pas convaincu que c'est la bonne chose à faire, et voici un exemple dont tu peux peut-être t'inspirer:
Private Sub yy()
Dim qr As QueryDef, sourcesql As String
Set qr = CurrentDb.QueryDefs("nom de la requête")
sourcesql = "SELECT ..."
qr.sql = sourcesql
End Sub

l'exemple est pour du VBA dans Access, je suppose que tu pourras facilement l'adapter pour le faire à partir de Excel.
0
yg_be Messages postés 22713 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 22 avril 2024 1 474 > yg_be Messages postés 22713 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 22 avril 2024
29 avril 2020 à 16:15
dans excel:
Private Sub yy()
Dim db As DAO.Database, chem As String, qr As DAO.QueryDef, sourcesql As String
chem = ThisWorkbook.Path + "\ccm.accdb"
Set db = OpenDatabase(chem)
Set qr = db.QueryDefs("nom de la requête")
sourcesql = "SELECT ... "
qr.Sql = sourcesql
End Sub
0
Piloux_0613 Messages postés 3 Date d'inscription mercredi 29 avril 2020 Statut Membre Dernière intervention 29 avril 2020
29 avril 2020 à 19:11
Parfait, merci beaucoup, ça marche
J'y serais surement pas arrivé sans ton aide
0