Comment importer automatiquement des données de base MySQL avec Excel ?

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 String

DateDebut = ActiveSheet.Range(« A1 »).Value
DateFin = ActiveSheet.Range(« A2 »).Value
Requete = « select * from MaTable where date between  » & DateDebut &  » and  » & DateFin

ActiveWorkbook.Worksheets.Add
Onglet = « Tableau » & ActiveSheet.Name

With 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

0.00 avg. rating (0% score) - 0 votes

Laissez un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Commentaire sur “Comment importer automatiquement des données de base MySQL avec Excel ?”