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

Résolu
Piloux_0613 Messages postés 3 Date d'inscription   Statut Membre Dernière intervention   -  
Piloux_0613 Messages postés 3 Date d'inscription   Statut Membre Dernière intervention   -
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 23541 Date d'inscription   Statut Contributeur Dernière intervention   Ambassadeur 1 584
 
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   Statut Membre Dernière intervention  
 
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 23541 Date d'inscription   Statut Contributeur Dernière intervention   1 584
 
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 23541 Date d'inscription   Statut Contributeur Dernière intervention   1 584 > yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention  
 
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   Statut Membre Dernière intervention  
 
Parfait, merci beaucoup, ça marche
J'y serais surement pas arrivé sans ton aide
0