lancement de requête SQL via VBA

Bradvid

XLDnaute Occasionnel
Bonjour à Tous,

Je souhaiterais lancer une requête en code VBA à l'ouverture d'un fichier.

Est-ce possible?

Merci pour votre aide.
 
C

Compte Supprimé 979

Guest
Re : lancement de requête SQL via VBA

Salut Bradvid,

En utilisant l'enregistreur de macro et le menu "Données" -> "Données externes" -> "Créer une requête", voilà ce que l'on obtient :
Code:
With ActiveSheet.QueryTables.Add(Connection:=Array(Array( _
        "ODBC;DSN=MS Access Database;DBQ=C:\ESSAI\MaBase.mdb;DefaultDir=C:\ESSAI;DriverId=25;FIL=MS Access;Ma" _
        ), Array("xBufferSize=2048;PageTimeout=5;")), Destination:=Range("A1"))
        .CommandText = Array( _
        "SELECT `Tbl Commandes`.NumCpte, `Tbl Commandes`.NumAff, `Tbl Commandes`.RefCde, `Tbl Commandes`.DateCde" & Chr(13) & "" & Chr(10) & "FROM `C:\ESSAI\MaBase`.`Tbl Commandes` `Tbl Commandes`" & Chr(13) & "" & Chr(10) & "WHERE (`Tbl Commande" _
        , "s`.NumCpte='XXXX99')" & Chr(13) & "" & Chr(10) & "ORDER BY `Tbl Commandes`.NumCpte")
        .Name = "Ma requête ESSAI"
        .FieldNames = True
        .RowNumbers = False
        .FillAdjacentFormulas = False
        .PreserveFormatting = True
        .RefreshOnFileOpen = False
        .BackgroundQuery = True
        .RefreshStyle = xlInsertDeleteCells
        .SavePassword = False
        .SaveData = True
        .AdjustColumnWidth = True
        .RefreshPeriod = 0
        .PreserveColumnInfo = True
        .Refresh BackgroundQuery:=False
    End With
End Sub

La syntaxe est, je pense, assez claire :eek:

A adapter selon tes besoins ;)

A+
 

Statistiques des forums

Discussions
312 213
Messages
2 086 307
Membres
103 174
dernier inscrit
OBUTT