Il est possible de lancer une requete SQL sur une base MySQL à l’aide de connecteur ODBC et de MS Query. Avec du code VBA, il est alors possible d’automatiser des imports de données et de créer des requêtes de manière dynamique.
Nous allons voir comment faire en prenant l’exemple d’une requête qui doit être effectuée chaque jour pour un reporting. La requête change chaque jour car les dates doivent être actualisées. Il faut donc préalablement déclarer les variables qui seront utilisées pour créer le texte de la requête en tenant compte des bonnes dates qui seront contenues dans des variables (une date peut être actualisée à l’ouverture d’excel avec la fonction AUJOURDHUI() ou TODAY() ). Ci-dessous le code VBA correspondant :
Dim Requete As String
Dim DateDebut As String
Dim DateFin As String
Dim Onglet As StringDateDebut = ActiveSheet.Range(« A1 »).Value
DateFin = ActiveSheet.Range(« A2 »).Value
Requete = « select * from MaTable where date between » & DateDebut & » and » & DateFinActiveWorkbook.Worksheets.Add
Onglet = « Tableau » & ActiveSheet.NameWith ActiveSheet.ListObjects.Add(SourceType:=0, Source:= »ODBC;DSN=MYSQL; », _
Destination:=Range(« $A$1 »)).QueryTable
.CommandText = Requete
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.BackgroundQuery = True
.RefreshStyle = xlInsertDeleteCells
.SavePassword = False
.SaveData = True
.AdjustColumnWidth = True
.RefreshPeriod = 0
.PreserveColumnInfo = True
.ListObject.DisplayName = Onglet
.Refresh BackgroundQuery:=False
End With
Commentaire sur “Comment importer automatiquement des données de base MySQL avec Excel ?”
Merci beaucoup, pour ce partage d’information, que j’ai trouvé après plusieurs recherche sur le net,
s’est la seule qui était simple et rapide à mettre en oeuvre.